Welcome to BigTech: A Case Study, a comprehensive project aimed at understanding and replicating the infrastructure of major tech companies like Amazon. This project is designed to be modular, allowing for in-depth exploration of each component of a large-scale e-commerce platform.
This project aims to deepen my knowledge and learning by researching how these features are implemented in software from major companies. To achieve this, I will attempt to recreate Amazon's system, exploring the best practices and techniques used in developing successful e-commerce platforms.
Note: This project is primarily intended for educational purposes, including my own learning journey. I am not affiliated with Amazon, Google, Facebook, or any other big tech company. I am undertaking this project solely to improve my knowledge. Therefore, implementations may not mirror those of industry giants like Amazon, but I will strive to do my best. This also allows beginners to study and learn from the project. Contributions and feedback are always welcome!
technologies: Typescript, fastify, docker, prisma, postgresql, JwtToken, bcrypt, nodemailer.
The authentication module handles user sign-up, login, and security features such as password hashing, multi-factor authentication, Role-based authentication and session management.
- User registration
- Verification by email
- User login
- Login with email and password
- Password recovery
- Send password recovery by email
- Implementation of security questions
- Role-based authentication
- Create some roles such as user, admin, guest
- Access control to different parts of the application based on user roles
- Tokens and sessions
- User session management
- JWT
- Security
- Encrypted credentials
technologies: Typescript, firebase, fastify, docker, prisma, postgresql, nodemailer.
This module focuses on handling product data and functionality independently. It includes product listing, categorization, inventory management, and search functionality without relying on user management.
- Product Listing
- Create new product
- Update existing product
- Delete product
- View product details
- Product Categorization
- Create new category
- Update existing category
- Delete category
- Assign products to categories
- Inventory Management
- Track product stock levels
- Update stock levels
- Notify when stock is low
- Product Search Functionality
- Implement search by product name
- Implement search by category
- Implement search by attributes (e.g., price, brand)
- Product Reviews and Ratings
- Add product reviews
- Edit product reviews
- Delete product reviews
- Rate products
- Product Images
- Upload product images
- Update product images
- Delete product images
- Price Management
- Set product prices
- Update product prices
- Apply discounts and promotions
The order processing module manages the lifecycle of an order from cart to checkout, payment processing, and order confirmation.
-
Cart Management
- Add items to cart
- Remove items from cart
- Update item quantities in cart
- View cart items
- Clear cart
-
Checkout Process
- Initiate checkout
- Apply discount codes
- Collect order details
-
Payment Processing
- Integrate with a payment gateway (e.g., Stripe)
- Handle payment authorization
- Capture payment
-
Messaging and Notifications
- Send order confirmation email