Welcome to B&B! This project aims to connect customers with local cooks who offer delicious homemade food, providing a convenient and diverse culinary experience.
- Project Overview
- Tech Stack
- Project Features
- Project Design
- Functionality
- Installation
- Contributing
- Team Members
- Contact US
The purpose of this website is to connect customers who are seeking homemade food options with local cooks who can provide a variety of dishes. The platform supports local cooks by offering them a platform to showcase their culinary skills while catering to the needs of individuals, such as students, who may not have the time to cook.
🔗 Homepage
🔗 API Documentation
Node.js |
MongoDB |
Swagger |
Express.js |
Jest |
Nodemailer |
TypeScript |
Tailwind CSS |
Vscode |
Git |
JWT |
Github |
mongoose |
jsonwebtoken |
passport |
bcrypt |
swagger-jsdoc |
swagger-ui-express |
express-async-handler |
http-status-codes |
supertest |
express-validator |
turkey-neighbourhoods |
mongoose |
- Home Page: Displaying information about the project including project overview, team members, and project design files.
- Contact-us route: A way for users to get in touch with the platform administrators by sending a message to the admin email.
- User Authentication: Secure signup and login process with options for Google or sign-up/sign-in form.
- User Profile: Users can manage their personal information, profile pictures, and provide a valid location in Turkey.
- Dish Listings: Cooks can post dishes along with images, descriptions, categories, and allergy information.
- Order Management: Users can browse dishes, place orders, and view their order history.
- Cart: Users can add and remove items from their cart before finalizing orders.
- Admin Dashboard: Admin has extra access for managing users, dishes and orders.
We began the project design phase by creating an Entity-Relationship Diagram (ERD) to visualize the database structure. The ERD helps us understand the relationships between different entities and how data flows through the system.
Here's a simplified representation of ERD design:
🔗 Database design
Our project's architecture was meticulously planned to ensure scalability, maintainability, and efficient performance. We designed a high-level overview of the routes and endpoints that we implemented to provide a seamless user experience. The architecture encompasses:
- User Authentication: Implemented using Passport.js with Google strategy.
- Routes and Endpoints: Defined clear routes and endpoints for user authentication, dish management, orders, and user profiles.
- Database Integration: Utilized MongoDB to store user datas, dishes, carts and order informations.
- Admin Dashboard: Created a separate route for Admin to manage users, dishes and orders.
Here's a simplified representation of our architecture:
🔗 Architecture design
To contribute to this project, you can follow these steps:
- Clone the repository
- Install dependencies:
npm install
- Set up environment variables for database connection and authentication.
- Run the application:
npm start
We welcome contributions from the community! Feel free to submit issues and pull requests.
Meet the team members who contributed to this project:
Name | GitHub Profile |
---|---|
Asli Sema Gultekin | AsliSema |
AHMAD RAMIN SOLEYMAN | Rsmk-code |
Khaled Naes | Khaled6120 |
Berra Mahmut | baraah-berra |
M.NOUR KRIMESH | nourkrimesh |
Email: [email protected]