MonVieuxGrimoire is a full-stack application designed to manage book collections and ratings. The project involved creating a back-end system that integrates with an existing front-end to deliver a seamless user experience. Users can browse a catalog of books, add new entries, delete unwanted ones, and rate books. The foundation of the API was guided by a pre-defined API specification document.
The back-end was built using Node.js and the Express framework, with MongoDB as the database, connected through Mongoose. CRUD operations for books were implemented via structured data models, middleware, controllers, and routes. Secure user authentication, including signup and login functionality, was achieved through encryption and token-based authentication.
Users should be able to:
- Sign up and log in to the app
- View a list of books
- See detailed information and ratings for each book
- View the top 3 highest-rated books
- Add a new book to the collection
- Rate books
- Live Site URL: See the live page here
- Node.js - for building the server
- Express - as the web framework
- MongoDB - for storing data
- Mongoose - for handling data models and database operations
- REST API - for connecting the front-end and back-end
- Vercel - for deploying and hosting the application
- Set up a Node.js server with the Express framework
- Configure and managing a cloud-hosted MongoDB Atlas database
- Connect the database to the server using Mongoose
- Create an API with full CRUD functionality
- Utilize middleware in Express to handle API requests
- Design and manage data models with Mongoose
- Understand how back-end routing works, execute middleware and controllers in sequence
- Handle image uploads and optimization using
Multer
andSharp
- Implement secure user authentication with
JSON Web Tokens
(JWT
) andBcrypt
for password encryption - Deploy a full-stack application to Vercel for live hosting
- Ensure the login functionality works on the deployed version of the application