Welcome to my comprehensive Full Stack Application project! This repository is the culmination of my efforts to build a complete application from scratch using Node.js, Express.js, MongoDB, and React. Through this project, I aim to guide you through the entire process of developing a robust backend with Node.js and Express.js, integrating a MongoDB database with Mongoose, and creating a dynamic frontend using React, Vite, and Tailwind CSS.
This project is organized into several key stages, each designed to focus on different aspects of full stack development:
- Create Node.js project from scratch: I started by setting up the foundational structure for the Node.js application.
- Create our first HTTP Route: Developed a basic HTTP route to handle client requests.
- Add MongoDB and Mongoose to Node.js: Integrated MongoDB as the database and used Mongoose for data modeling.
- Create Book model with Mongoose: Defined a schema and model for managing book records in MongoDB.
- Save a new Book with Mongoose: Implemented functionality to add new books to the database.
- Get All Books with Mongoose: Built functionality to retrieve and display all books stored in the database.
- Get One Book by ID with Mongoose: Added the ability to fetch details of a specific book using its unique identifier.
- Update a Book with Mongoose: Enabled updating of existing book records.
- Delete a Book with Mongoose: Added functionality to remove books from the database.
- Refactor Node.js with Express Router: Organized the codebase by using Express Router for better route management.
- CORS policy in Node.js and Express.js: Implemented Cross-Origin Resource Sharing (CORS) to handle requests from different origins.
- Create React project, Vite, Tailwind CSS: Set up the frontend using React, Vite for fast builds, and Tailwind CSS for styling.
- SPA and Add React Router DOM: Developed a Single Page Application (SPA) and used React Router DOM for client-side routing.
- Show Books List in React: Displayed the list of books on the frontend.
- Show Book Details in React: Created a detailed view for individual books.
- Create Book in React: Implemented a form to add new books from the frontend.
- Edit Book in React: Enabled editing of existing books through the frontend.
- Delete Book in React: Provided an option to delete books from the frontend.
- Show Books List as Card: Presented books in a card-based layout for a better visual experience.
- Make Book Card a single component: Refactored the book card into a reusable component.
- Add Book Modal: Introduced modals for enhanced interactivity, such as adding or editing books.
- Improve User Experience (UX) with beautiful alert: Enhanced the user experience with visually appealing alerts and notifications.