|
|
- export const USERS = {
- 1: {
- id: 1,
- email: 'test@angular-university.io',
- password: 'test'
- }
-
- };
-
-
- export const COURSES: any = {
-
- 4: {
- id: 4,
- description: 'NgRx (with NgRx Data) - The Complete Guide',
- longDescription: 'Learn the modern Ngrx Ecosystem, including NgRx Data, Store, Effects, Router Store, Ngrx Entity, and Dev Tools.',
- iconUrl: 'https://angular-university.s3-us-west-1.amazonaws.com/course-images/ngrx-v2.png',
- category: 'BEGINNER',
- lessonsCount: 10,
- seqNo: 0,
- url: 'ngrx-course'
- },
-
- 2: {
- id: 2,
- description: 'Angular Core Deep Dive',
- longDescription: 'A detailed walk-through of the most important part of Angular - the Core and Common modules',
- iconUrl: 'https://s3-us-west-1.amazonaws.com/angular-university/course-images/angular-core-in-depth-small.png',
- lessonsCount: 10,
- category: 'BEGINNER',
- seqNo: 1,
- url: 'angular-core-course'
- },
-
- 3: {
- id: 3,
- description: 'RxJs In Practice Course',
- longDescription: 'Understand the RxJs Observable pattern, learn the RxJs Operators via practical examples',
- iconUrl: 'https://s3-us-west-1.amazonaws.com/angular-university/course-images/rxjs-in-practice-course.png',
- category: 'BEGINNER',
- lessonsCount: 10,
- seqNo: 2,
- url: 'rxjs-course'
- },
-
- 1: {
- id: 1,
- description: 'Serverless Angular with Firebase Course',
- longDescription: 'Serveless Angular with Firestore, Firebase Storage & Hosting, Firebase Cloud Functions & AngularFire',
- iconUrl: 'https://s3-us-west-1.amazonaws.com/angular-university/course-images/serverless-angular-small.png',
- lessonsCount: 10,
- category: 'BEGINNER',
- seqNo: 4,
- url: 'serverless-angular'
- },
-
- /*
-
-
- 5: {
- id: 5,
- description: 'Angular for Beginners',
- longDescription: "Establish a solid layer of fundamentals, learn what's under the hood of Angular",
- iconUrl: 'https://angular-academy.s3.amazonaws.com/thumbnails/angular2-for-beginners-small-v2.png',
- category: 'BEGINNER',
- lessonsCount: 10,
- seqNo: 5,
- url: 'angular-for-beginners'
- },
-
- */
-
- 12: {
- id: 12,
- description: 'Angular Testing Course',
- longDescription: 'In-depth guide to Unit Testing and E2E Testing of Angular Applications',
- iconUrl: 'https://s3-us-west-1.amazonaws.com/angular-university/course-images/angular-testing-small.png',
- category: 'BEGINNER',
- seqNo: 6,
- url: 'angular-testing-course',
- lessonsCount: 10,
- },
-
- 6: {
- id: 6,
- description: 'Angular Security Course - Web Security Fundamentals',
- longDescription: 'Learn Web Security Fundamentals and apply them to defend an Angular / Node Application from multiple types of attacks.',
- iconUrl: 'https://s3-us-west-1.amazonaws.com/angular-university/course-images/security-cover-small-v2.png',
- category: 'ADVANCED',
- lessonsCount: 11,
- seqNo: 7,
- url: 'angular-security-course'
- },
-
- 7: {
- id: 7,
- description: 'Angular PWA - Progressive Web Apps Course',
- longDescription: 'Learn Angular Progressive Web Applications, build the future of the Web Today.',
- iconUrl: 'https://s3-us-west-1.amazonaws.com/angular-university/course-images/angular-pwa-course.png',
- category: 'ADVANCED',
- lessonsCount: 8,
- seqNo: 8,
- url: 'angular-pwa-course'
- },
-
- 8: {
- id: 8,
- description: 'Angular Advanced Library Laboratory: Build Your Own Library',
- longDescription: 'Learn Advanced Angular functionality typically used in Library Development. Advanced Components, Directives, Testing, Npm',
- iconUrl: 'https://angular-academy.s3.amazonaws.com/thumbnails/advanced_angular-small-v3.png',
- category: 'ADVANCED',
- seqNo: 9,
- url: 'angular-advanced-course'
- },
-
- 9: {
- id: 9,
- description: 'The Complete Typescript Course',
- longDescription: 'Complete Guide to Typescript From Scratch: Learn the language in-depth and use it to build a Node REST API.',
- iconUrl: 'https://angular-academy.s3.amazonaws.com/thumbnails/typescript-2-small.png',
- category: 'BEGINNER',
- seqNo: 10,
- url: 'typescript-course'
- },
-
- 10: {
- id: 10,
- description: 'Rxjs and Reactive Patterns Angular Architecture Course',
- longDescription: 'Learn the core RxJs Observable Pattern as well and many other Design Patterns for building Reactive Angular Applications.',
- iconUrl: 'https://s3-us-west-1.amazonaws.com/angular-academy/blog/images/rxjs-reactive-patterns-small.png',
- category: 'BEGINNER',
- seqNo: 11,
- url: 'rxjs-patterns-course'
- },
-
- 11: {
- id: 11,
- description: 'Angular Material Course',
- longDescription: 'Build Applications with the official Angular Widget Library',
- iconUrl: 'https://s3-us-west-1.amazonaws.com/angular-university/course-images/material_design.png',
- category: 'BEGINNER',
- seqNo: 12,
- url: 'angular-material-course'
- }
-
- };
-
-
- export const LESSONS = {
-
- 1: {
- id: 1,
- 'description': 'Angular Tutorial For Beginners - Build Your First App - Hello World Step By Step',
- 'duration': '4:17',
- 'seqNo': 1,
- courseId: 5
- },
- 2: {
- id: 2,
- 'description': 'Building Your First Component - Component Composition',
- 'duration': '2:07',
- 'seqNo': 2,
- courseId: 5
- },
- 3: {
- id: 3,
- 'description': 'Component @Input - How To Pass Input Data To an Component',
- 'duration': '2:33',
- 'seqNo': 3,
- courseId: 5
- },
- 4: {
- id: 4,
- 'description': ' Component Events - Using @Output to create custom events',
- 'duration': '4:44',
- 'seqNo': 4,
- courseId: 5
- },
- 5: {
- id: 5,
- 'description': ' Component Templates - Inline Vs External',
- 'duration': '2:55',
- 'seqNo': 5,
- courseId: 5
- },
- 6: {
- id: 6,
- 'description': 'Styling Components - Learn About Component Style Isolation',
- 'duration': '3:27',
- 'seqNo': 6,
- courseId: 5
- },
- 7: {
- id: 7,
- 'description': ' Component Interaction - Extended Components Example',
- 'duration': '9:22',
- 'seqNo': 7,
- courseId: 5
- },
- 8: {
- id: 8,
- 'description': ' Components Tutorial For Beginners - Components Exercise !',
- 'duration': '1:26',
- 'seqNo': 8,
- courseId: 5
- },
- 9: {
- id: 9,
- 'description': ' Components Tutorial For Beginners - Components Exercise Solution Inside',
- 'duration': '2:08',
- 'seqNo': 9,
- courseId: 5
- },
- 10: {
- id: 10,
- 'description': ' Directives - Inputs, Output Event Emitters and How To Export Template References',
- 'duration': '4:01',
- 'seqNo': 10,
- courseId: 5
- },
-
-
- // Security Course
- 11: {
- id: 11,
- 'description': 'Course Helicopter View',
- 'duration': '08:19',
- 'seqNo': 1,
- courseId: 6
- },
-
- 12: {
- id: 12,
- 'description': 'Installing Git, Node, NPM and Choosing an IDE',
- 'duration': '04:17',
- 'seqNo': 2,
- courseId: 6
- },
-
- 13: {
- id: 13,
- 'description': 'Installing The Lessons Code - Learn Why Its Essential To Use NPM 5',
- 'duration': '06:05',
- 'seqNo': 3,
- courseId: 6
- },
-
- 14: {
- id: 14,
- 'description': 'How To Run Node In TypeScript With Hot Reloading',
- 'duration': '03:57',
- 'seqNo': 4,
- courseId: 6
- },
-
- 15: {
- id: 15,
- 'description': 'Guided Tour Of The Sample Application',
- 'duration': '06:00',
- 'seqNo': 5,
- courseId: 6
- },
- 16: {
- id: 16,
- 'description': 'Client Side Authentication Service - API Design',
- 'duration': '04:53',
- 'seqNo': 6,
- courseId: 6
- },
- 17: {
- id: 17,
- 'description': 'Client Authentication Service - Design and Implementation',
- 'duration': '09:14',
- 'seqNo': 7,
- courseId: 6
- },
- 18: {
- id: 18,
- 'description': 'The New Angular HTTP Client - Doing a POST Call To The Server',
- 'duration': '06:08',
- 'seqNo': 8,
- courseId: 6
- },
- 19: {
- id: 19,
- 'description': 'User Sign Up Server-Side Implementation in Express',
- 'duration': '08:50',
- 'seqNo': 9,
- courseId: 6
- },
- 20: {
- id: 20,
- 'description': 'Introduction To Cryptographic Hashes - A Running Demo',
- 'duration': '05:46',
- 'seqNo': 10,
- courseId: 6
- },
- 21: {
- id: 21,
- 'description': 'Some Interesting Properties Of Hashing Functions - Validating Passwords',
- 'duration': '06:31',
- 'seqNo': 11,
- courseId: 6
- },
-
-
- // PWA course
-
- 22: {
- id: 22,
- 'description': 'Course Kick-Off - Install Node, NPM, IDE And Service Workers Section Code',
- 'duration': '07:19',
- 'seqNo': 1,
- courseId: 7
- },
- 23: {
- id: 23,
- 'description': 'Service Workers In a Nutshell - Service Worker Registration',
- 'duration': '6:59',
- 'seqNo': 2,
- courseId: 7
- },
- 24: {
- id: 24,
- 'description': 'Service Workers Hello World - Lifecycle Part 1 and PWA Chrome Dev Tools',
- 'duration': '7:28',
- 'seqNo': 3,
- courseId: 7
- },
- 25: {
- id: 25,
- 'description': 'Service Workers and Application Versioning - Install & Activate Lifecycle Phases',
- 'duration': '10:17',
- 'seqNo': 4,
- courseId: 7
- },
-
- 26: {
- id: 26,
- 'description': 'Downloading The Offline Page - The Service Worker Installation Phase',
- 'duration': '09:50',
- 'seqNo': 5,
- courseId: 7
- },
- 27: {
- id: 27,
- 'description': 'Introduction to the Cache Storage PWA API',
- 'duration': '04:44',
- 'seqNo': 6,
- courseId: 7
- },
- 28: {
- id: 28,
- 'description': 'View Service Workers HTTP Interception Features In Action',
- 'duration': '06:07',
- 'seqNo': 7,
- courseId: 7
- },
- 29: {
- id: 29,
- 'description': 'Service Workers Error Handling - Serving The Offline Page',
- 'duration': '5:38',
- 'seqNo': 8,
- courseId: 7
- },
-
- // Serverless Angular with Firebase Course
-
- 30: {
- id: 30,
- description: 'Development Environment Setup',
- 'duration': '5:38',
- 'seqNo': 1,
- courseId: 1
- },
-
- 31: {
- id: 31,
- description: 'Introduction to the Firebase Ecosystem',
- 'duration': '5:12',
- 'seqNo': 2,
- courseId: 1
- },
-
- 32: {
- id: 32,
- description: 'Importing Data into Firestore',
- 'duration': '4:07',
- 'seqNo': 3,
- courseId: 1
- },
-
- 33: {
- id: 33,
- description: 'Firestore Documents in Detail',
- 'duration': '7:32',
- 'seqNo': 4,
- courseId: 1
- },
-
- 34: {
- id: 34,
- description: 'Firestore Collections in Detail',
- 'duration': '6:28',
- 'seqNo': 5,
- courseId: 1
- },
-
- 35: {
- id: 35,
- description: 'Firestore Unique Identifiers',
- 'duration': '4:38',
- 'seqNo': 6,
- courseId: 1
- },
-
- 36: {
- id: 36,
- description: 'Querying Firestore Collections',
- 'duration': '7:54',
- 'seqNo': 7,
- courseId: 1
- },
-
- 37: {
- id: 37,
- description: 'Firebase Security Rules In Detail',
- 'duration': '5:31',
- 'seqNo': 8,
- courseId: 1
- },
-
- 38: {
- id: 38,
- description: 'Firebase Cloud Functions In Detail',
- 'duration': '8:19',
- 'seqNo': 9,
- courseId: 1
- },
-
- 39: {
- id: 39,
- description: 'Firebase Storage In Detail',
- 'duration': '7:05',
- 'seqNo': 10,
- courseId: 1
- },
-
-
- // Angular Testing Course
-
- 40: {
- id: 40,
- description: 'Angular Testing Course - Helicopter View',
- 'duration': '5:38',
- 'seqNo': 1,
- courseId: 12
- },
-
- 41: {
- id: 41,
- description: 'Setting Up the Development Environment',
- 'duration': '5:12',
- 'seqNo': 2,
- courseId: 12
- },
-
- 42: {
- id: 42,
- description: 'Introduction to Jasmine, Spies and specs',
- 'duration': '4:07',
- 'seqNo': 3,
- courseId: 12
- },
-
- 43: {
- id: 43,
- description: 'Introduction to Service Testing',
- 'duration': '7:32',
- 'seqNo': 4,
- courseId: 12
- },
-
- 44: {
- id: 44,
- description: 'Settting up the Angular TestBed',
- 'duration': '6:28',
- 'seqNo': 5,
- courseId: 12
- },
-
- 45: {
- id: 45,
- description: 'Mocking Angular HTTP requests',
- 'duration': '4:38',
- 'seqNo': 6,
- courseId: 12
- },
-
- 46: {
- id: 46,
- description: 'Simulating Failing HTTP Requests',
- 'duration': '7:54',
- 'seqNo': 7,
- courseId: 12
- },
-
- 47: {
- id: 47,
- description: 'Introduction to Angular Component Testing',
- 'duration': '5:31',
- 'seqNo': 8,
- courseId: 12
- },
-
- 48: {
- id: 48,
- description: 'Testing Angular Components without the DOM',
- 'duration': '8:19',
- 'seqNo': 9,
- courseId: 12
- },
-
- 49: {
- id: 49,
- description: 'Testing Angular Components with the DOM',
- 'duration': '7:05',
- 'seqNo': 10,
- courseId: 12
- },
-
-
- // Ngrx Course
- 50: {
- id: 50,
- "description": "Welcome to the Angular Ngrx Course",
- "duration": "6:53",
- "seqNo": 1,
- courseId: 4
-
- },
- 51: {
- id: 51,
- "description": "The Angular Ngrx Architecture Course - Helicopter View",
- "duration": "5:52",
- "seqNo": 2,
- courseId: 4
- },
- 52: {
- id: 52,
- "description": "The Origins of Flux - Understanding the Famous Facebook Bug Problem",
- "duration": "8:17",
- "seqNo": 3,
- courseId: 4
- },
- 53: {
- id: 53,
- "description": "Custom Global Events - Why Don't They Scale In Complexity?",
- "duration": "7:47",
- "seqNo": 4,
- courseId: 4
- },
- 54: {
- id: 54,
- "description": "The Flux Architecture - How Does it Solve Facebook Counter Problem?",
- "duration": "9:22",
- "seqNo": 5,
- courseId: 4
- },
- 55: {
- id: 55,
- "description": "Unidirectional Data Flow And The Angular Development Mode",
- "duration": "7:07",
- "seqNo": 6,
- courseId: 4
- },
-
- 56: {
- id: 56,
- "description": "Dispatching an Action - Implementing the Login Component",
- "duration": "4:39",
- "seqNo": 7,
- courseId: 4
- },
- 57: {
- id: 57,
- "description": "Setting Up the Ngrx DevTools - Demo",
- "duration": "4:44",
- "seqNo": 8,
- courseId: 4
- },
- 58: {
- id: 58,
- "description": "Understanding Reducers - Writing Our First Reducer",
- "duration": "9:10",
- "seqNo": 9,
- courseId: 4
- },
- 59: {
- id: 59,
- "description": "How To Define the Store Initial AppState",
- "duration": "9:10",
- "seqNo": 10,
- courseId: 4
- }
-
-
- };
-
-
- export function findCourseById(courseId: number) {
- return COURSES[courseId];
- }
-
- export function findLessonsForCourse(courseId: number) {
- return Object.values(LESSONS).filter(lesson => lesson.courseId == courseId);
- }
-
-
- export function authenticate(email: string, password: string) {
-
- const user: any = Object.values(USERS).find(user => user.email === email);
-
- if (user && user.password == password) {
- return user;
- } else {
- return undefined;
- }
-
- }
|