INTRODUCTION
- Introduction to Laravel.
- Course Outline.
- Familiarise with real world web development.
OOP & DESIGN PATTERNS IN PHP
- Basic Object Oriented Programming Concepts
- Why we need design patterns
- The SOLID design principles
- Creational Design Patterns
- Design patterns (Factory, Abstract Factory, Builder Prototype, Singleton, Prototype, Facades)
SETTING UP LARAVEL ENVIRONMENT
The "Conventional" Way - WAMP/XAMPP
- Composer
- Apache
- MYSQL
- Redis
Using Docker (Bonus)
- DOCKER
- NGINX
- MYSQL
- PHP
- Redis
- LINUX
Introduction to Version Controlling System
- Git
- Github Introduction to AWS
- Free tier account in AWS
- AWS Basics (Regions, Availability Zones, IAM, EC2, ELB)
- SSH into your own EC2 instance
UNDERSTANDING LARAVEL ARCHITECTURE CONCEPTS
- Request Lifecycle
- Service Container
- Service Providers
- Facades
- Contracts
SIMPLE TODO APP USING BLADE & BOOTSTRAP
- Database schema design
- Create database tables using migrations
- Configuring Models & Relations
- Web Routing
- Middleware
- Controller
- Authentication
- CRUD with Eloquents & Query Builder
- Views
- Frontend development with blade and JS/JQuery & bootstrap
- Notifications
- Settings
BUILDING AN INSTAGRAM CLONE PART 1 (SYSTEM ANALYSIS)
- Requirements assessment
- Capacity estimations
- Highlevel system & Database design
- Component Design
- Reliability & Consistency
- Performance Optimization Evaluation
BUILDING AN INSTAGRAM CLONE PART 2 (DATABASE AND MODEL CONFIGURATION)
- Schema Design
- Creating migrations using schema definition
- Create and setting up models with relations
BUILDING AN INSTAGRAM CLONE PART 2 (API DEVELOPMENT)
API development in Laravel API Authentication
- OAuth
- Passsport
- Access Tokens Basic API Stuffs
- Routing - API validations & Error Responses Users API
- Sign Up
- Login
- Email Verification (with AWS SES)
- Password Reset (AWS SES)
- Follow/Unfollow user
- User Profile Posts API
- Creating posts - Uploading Images (with AWS S3)
- Optimisation 1: Queue Post Creation (with AWS SQS)
- Fetching posts
- Optimisation 2: Paginate posts
- Rank posts
- Optimisation 3: Schedule post ranking algorithm
- Optimisation 4: Query Caching with Redis
- Post Details Reactions API - Reaction CRUD
- Count Reactions/Post in post list api (Like/Comments)
- Load Reactions in Posts (Dashboard)
- Load paginated comments in post details
BUILDING AN INSTAGRAM CLONE PART 3 (FRONTEND DEVELOPMENT)
- Typescript Basics
- Single Page Application (SPA) vs Server Side Rendering (SSR)
- Setting up SSR with express and nodejs
- Authentication & cookie management
- Express Routing
- Setting up Vue CLI & Vuetify
- Setting up CSS preprocessor (SCSS)
- Configuring API client
- Posting and fetching data with api client
- Component Design
- Data management with VUEX
- Front end Development
- Sing Up/Login Page
- Dashboard with infinite scroll pagination
- Profile Page
- Notifications
- Inbox
- Testing (Unit, E2E)
- Bundling (Webpack) & Production Build
- Continuous integration with CIRCLE CI
DEPLOYMENT AND PERFORMANCE OPTIMISATION
- Deploying in EC2 with manual configuration
- Load Balancing with AWS ELB
CONCLUSION
- Real life software development scenario
- Practical scenario of Agile based development
- Software development etiquettes & manners