In this assignment, you will be tasked with developing a Book Selling E-commerce Platform. The platform should allow users to browse and purchase books, manage their shopping cart, and track their orders. You will be using React and Tailwind/Chakra UI for the frontend, and Express or NestJS for the backend. The data should be stored in a database. The assignment will assess your ability to design and implement a full-stack application, work with frontend frameworks, handle database operations, and create REST APIs.
- Fork this project repo to your profile and clone it to work on the project.
- Design and implement a Book Selling E-commerce Platform that provides functionality for browsing and purchasing books, managing the shopping cart, and tracking orders.
- The application should have the following functionality:
- Book Catalog: Users should be able to browse and search for books. Each book should have attributes such as title, author, ISBN, price, and availability status.
- Shopping Cart: Users should be able to add books to their shopping cart, view the contents of the cart, update the quantities, and remove items from the cart.
- Checkout: Users should be able to proceed to checkout, provide shipping and payment information, and place an order.
- Use Next.js/React and Tailwind/Chakra UI to build the frontend of the application. Implement user-friendly interfaces to allow users to interact with the system easily.
- Use Express or NestJS to build the backend of the application. Implement REST APIs to handle the CRUD operations for books, shopping cart management, checkout process, and order tracking.
- Use a database for data storage. Design the database schema to store the necessary information for books, shopping carts, and orders. Implement efficient database operations and query strategies to ensure optimal performance.
- Implement authentication and authorization mechanisms to secure the application. Users should be able to register, log in, and log out. Only authenticated users should be able to add items to the cart, proceed to checkout, and view order history.
- Write clean, maintainable, and well-documented code. Follow best practices for code organization, naming conventions, and code formatting.
- Use Git for version control and commit your code regularly to the forked public Git repository in your profile.
- Implement input validation and error handling for the frontend and backend components.
- Implement responsive frontend UI with global state management using Redux, Recoil, or similar libraries.
- Implement pagination or filtering options for browsing books or viewing order history.
- Use of SQL database with ORMs like Prisma or TypeORM is preferred over MongoDB and Mongoose (In the case of this assignment only).
- Implement data seeding or migration scripts for setting up and populating the database.
- Fork this GitHub repository Assignment Repo to your own GitHub account.
- Commit your code regularly and push the changes to your forked repository.
- Do not create a pull request; just submit your forked repository.
- Provide a DOCS.md file with all the technologies used and how to run the program locally.
- Once you have completed the assignment, share the repository URL with us via the submission form.
- Submission Deadline: Friday, July 7, 2023, 4:00 PM
Note: The assignment is intentionally challenging, and you are not expected to complete all the bonus tasks. Focus on delivering high-quality code and meeting the core requirements first.
Check out the discussion section of this repo to ask any related queries or doubts. Good luck with your assignment! If you have any questions, feel free to ask for clarification.