This is the server-side component of the Drink Master project, developed using the Express framework in a Node.js environment. It relies on MongoDB as its database and utilizes Cloudinary for storing images. The server offers the following functionalities:
User Authentication and Management
Authentication and deauthentication of users: This involves processes
for user login and logout.
Recording user information in the database: Storing user profiles, including
usernames and email addresses.
Allowing modifications to user profiles within a user collection: This encompasses
the ability to update user details and perform other user-related tasks.
Recipe Handling
Sorting existing recipes: Implementing various methods for organizing recipes based
on criteria such as popularity, rating, or category.
Recipe filtering: Providing options for users to refine their recipe search based
on factors like ingredients, recipe category, age preferences, and more.
Enabling users to add recipes to their favorites: Allowing users to save their
preferred recipes to their profiles.
Incorporating new recipes into the database: Providing functionality for authorized
users to include new recipes in the collection, which involves storing comprehensive
recipe information, ingredients, preparation steps, and possibly images.
Node.js: The backend server is constructed with Node.js,
facilitating efficient execution of server-side JavaScript code.
Express: The web application framework, Express, is harnessed to
streamline routing, middleware implementation, and the handling
of HTTP requests.
MongoDB: We employ MongoDB as a NoSQL database to both store
and manage data, offering the advantage of flexibility and
scalability.
Mongoose: Mongoose functions as an Object Data Modeling (ODM)
library tailored for MongoDB. It defines data schemas and facilitates
interactions with the database.
Cloudinary: Meanwhile, Cloudinary is harnessed for cloud-based
image storage, simplifying image management and service within
the application. To initiate its use, follow the provided instructions.
Swagger: Swagger is utilized to simplify the documentation of APIs,
enhancing developers' comprehension and utilization of API endpoints.
Postman: For testing and interacting with our APIs, we employ Postman.
Postman is a versatile tool that allows developers to send requests
to API endpoints, inspect responses, and automate various testing scenarios.
For comprehensive API documentation and testing, you can access the Swagger API Documentation. Please note that the initial loading time might be extended, as the backend deployment relies on a free render.com service.