Key Features:
Product Management:
Endpoints to create, read, update, and delete sofa products.
Each product includes details like name, price, description, and stock availability.
2. User Authentication:
Secure user registration and login using JWT (JSON Web Tokens).
Protects sensitive routes, ensuring only authenticated users can perform certain actions.
3. Order Management:
Allows users to place orders, view their order history, and manage their carts.
Includes functionality for processing payments and managing order statuses.
4. Payment and Communication:
Stripe: Integrated for secure payment processing, allowing users to complete transactions effortlessly.
Twilio: Used for sending SMS notifications to users for updates like order confirmations and shipment tracking.
SendGrid: Integrated for sending transactional emails, including order confirmations and account-related notifications.
Technologies Used:
Node.js: The core runtime environment for building the server-side application.
Express.js: Framework for creating robust RESTful APIs, handling routing, and middleware.
MongoDB: NoSQL database used for storing product information, user data, and orders.
JWT: Used for secure user authentication and authorization.
Mongoose: An ODM (Object Data Modeling) library for MongoDB, simplifying database interactions.
Docker: Containerization for seamless deployment and consistency across environments.
Linux (Raspberry Pi): Deployed on a Raspberry Pi running Linux, providing a lightweight and energy-efficient server environment.
API Testing:
Used tools like Postman to test various API endpoints (e.g., CRUD operations for products, user authentication, and order management).