Skip to content

Commit

Permalink
Merge pull request #123 from AsliSema/update-readme-draft-1
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
Khaled6120 authored Aug 13, 2023
2 parents 4239787 038a843 commit 34bb93a
Showing 1 changed file with 214 additions and 1 deletion.
215 changes: 214 additions & 1 deletion README.md
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]

0 comments on commit 34bb93a

Please sign in to comment.