Tutorial: https://www.youtube.com/watch?v=44mOnnt5pic&list=WL&index=1&t=2s
RADIO - Requirements, Architecture, Data Models, Implementation, Optimisation
- Requirements - gather all requirements
- Functional requirements
- Module Wise
- Authentication & User Management
- Product Listing
- Pricing & Subscription
- Payment Gateway
- Cart
- Account Management
- Feature Wise
- Search
- Filter
- Details
- Product Review
- Add/remove items to cart
- Video Streaming - Dash.js, Shaka Player
- Non-Functional Requirements
- Availability
- Devices - Mobile/Desktop/Tablets
- Responsive/Adaptive
- Offline Support
- Accessibility - support for disabled people, international people in local language
- Performance - Web Vitals, CSR/SSR
- Security
- Caching
- Logging & monitoring
- Testing
- Scope - Prioritisation - what least to build, Minimum Viable Product (MVP)
- Tech Choices
- Library/Framework
- State Management
- Caching & Storage
- Offline Support / PWA
- Design System / theming / Design Tokens
- Components: Material UI, Prime React, Headless UI
- Folder Structure
- Packages
- Build Tools - webpack, rollup, turbopack
- Component Architecture
- Routes / Component Diagram
- Component Hierarchy / Component API
- Dependency Tree / Data Sharing
- Data Models, API, Component API/State/Props
- Data Models / State Management
- Backend API
- Component API
- state/props
- event handling
- customisation - theming
- Reusability
- Data source
- Optimisation & Performance
- Accessibility
- Availability
- Security