generated from RCDD-202303-TUR-BEW/backend-capstone-template
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #123 from AsliSema/update-readme-draft-1
Update README.md
- Loading branch information
Showing
1 changed file
with
214 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 1,214 @@ | ||
# backend-capstone-template | ||
# Byte and Bite B&B Capstone Backend Project | ||
|
||
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. | ||
|
||
<br /> | ||
|
||
## Table of Contents | ||
|
||
- [Project Overview](#project-overview) | ||
- [Tech Stack](#tech-stack) | ||
- [Project Features](#project-features) | ||
- [Project Design](#design) | ||
- [Functionality](#functionality) | ||
- [Installation](#installation) | ||
- [Contributing](#contributing) | ||
- [Team Members](#team) | ||
- [Contact US](#Contact_us) | ||
|
||
<br /> | ||
|
||
## Project Overview | ||
|
||
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. | ||
<br /> | ||
🔗 [Homepage](https://byteandbite.onrender.com) | ||
<br /> | ||
🔗 [API Documentation](https://byteandbite.onrender.com/api/docs/) | ||
|
||
<br /> | ||
|
||
## Tech Stack | ||
|
||
### ➡️ Used Technologies: | ||
|
||
<table> | ||
<tr> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original-wordmark.svg" alt="Node.js" /> | ||
<br>Node.js | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/mongodb/mongodb-original.svg" alt="MongoDB" /> | ||
<br>MongoDB | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Swagger-logo.png?20170812110931" alt="Swagger" /> | ||
<br>Swagger | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/express/express-original-wordmark.svg" alt="Express.js" /> | ||
<br>Express.js | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/jest/jest-plain.svg" alt="Jest" /> | ||
<br>Jest | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://repository-images.githubusercontent.com/1272424/d1995000-0ab7-11ea-8ed3-04a082c36b0d" alt="nodemailer" /> | ||
<br>Nodemailer | ||
</td> | ||
</tr> | ||
<tr> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/typescript/typescript-original.svg" alt="TypeScript" /> | ||
<br>TypeScript | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/tailwindcss/tailwindcss-plain.svg" alt="Tailwind CSS" /> | ||
<br>Tailwind CSS | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/vscode/vscode-original.svg" alt="vscode" /> | ||
<br>Vscode | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/git/git-original.svg" alt="git" /> | ||
<br>Git | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.worldvectorlogo.com/logos/jwt-3.svg" alt="jwt" /> | ||
<br>JWT | ||
</td> | ||
<td align="center"> | ||
<img width="80px" src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/github/github-original.svg" alt="github" /> | ||
<br>Github | ||
</td> | ||
</tr> | ||
</table> | ||
|
||
<br /> | ||
|
||
### ➡️ Used Packages: | ||
|
||
<table> | ||
<tr> | ||
<td align="center"> | ||
<p> mongoose </p> | ||
</td> | ||
<td align="center"> | ||
<p> jsonwebtoken </p> | ||
</td> | ||
<td align="center"> | ||
<p> passport </p> | ||
</td> | ||
<td align="center"> | ||
<p> bcrypt </p> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td align="center"> | ||
<p> swagger-jsdoc </p> | ||
</td> | ||
<td align="center"> | ||
<p> swagger-ui-express </p> | ||
</td> | ||
<td align="center"> | ||
<p> express-async-handler </p> | ||
</td> | ||
<td align="center"> | ||
<p> http-status-codes </p> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td align="center"> | ||
<p> supertest </p> | ||
</td> | ||
<td align="center"> | ||
<p> express-validator </p> | ||
</td> | ||
<td align="center"> | ||
<p> turkey-neighbourhoods </p> | ||
</td> | ||
<td align="center"> | ||
<p> mongoose </p> | ||
</td> | ||
</tr> | ||
</table> | ||
<br /> | ||
|
||
## Project Features | ||
|
||
- 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. | ||
|
||
<br /> | ||
|
||
## Project Design | ||
|
||
### ➡️ Entity-Relationship Diagram (ERD) | ||
|
||
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: | ||
<br /> | ||
🔗 [Database design](https://www.figma.com/file/2LFORVZMP6cjBH9JvXeVML/DB-Schema-Design?type=design&mode=design&t=gqa5Oq9e3ej3AX0t-1) | ||
|
||
|
||
### ➡️ Architecture 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: | ||
<br /> | ||
🔗 [Architecture design](https://www.figma.com/file/MrXH16NsjHrchEP3Bct6PK/Architecture-Diagram?type=whiteboard&t=gqa5Oq9e3ej3AX0t-1 | ||
) | ||
|
||
<br /> | ||
|
||
## Functionality | ||
|
||
To contribute to this project, you can follow these steps: | ||
|
||
1. Clone the repository | ||
2. Install dependencies: `npm install` | ||
3. Set up environment variables for database connection and authentication. | ||
4. Run the application: `npm start` | ||
|
||
<br /> | ||
|
||
## Contributing | ||
|
||
We welcome contributions from the community! Feel free to submit issues and pull requests. | ||
|
||
<br /> | ||
|
||
## Team Members | ||
|
||
Meet the team members who contributed to this project: | ||
|
||
--------------------------------------------------------------------------- | ||
| Name | GitHub Profile | | ||
|-----------------------|-------------------------------------------------| | ||
| Asli Sema Gultekin | [AsliSema](https://github.com/AsliSema) | | ||
| AHMAD RAMIN SOLEYMAN | [Rsmk-code](https://github.com/Rsmk-code) | | ||
| Khaled Naes | [Khaled6120](https://github.com/Khaled6120) | | ||
| Berra Mahmut | [baraah-berra](https://github.com/baraah-berra) | | ||
| M.NOUR KRIMESH | [nourkrimesh](https://github.com/nourkrimesh) | | ||
|
||
<br /> | ||
|
||
## Contact With B&B Team | ||
|
||
Email: [email protected] |