Tuesday, September 1, 2020

Laravel course materials


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