MyFoodStreet API is a comprehensive food ordering system built with Node.js, Express, and AWS DynamoDB. It provides APIs for managing users, restaurants, menus, carts, and orders.
Users can place order from multiple restaurants in one go at their favorite food street!! 🤩
- User Authentication and Authorization
- Restaurant Management
- Menu Management
- Cart Management
- Order Management
- Node.js (see package.json for version)
- AWS NoSQL Workbench (required for running dynamoDB locally)
git clone https://github.com/Gunavel/my-food-street.git
cd my-food-street
npm install
Install AWS NoSQL Workbench and create a new local connection.
Setup your environment variables in a .env
file in the root directory. You'll need to specify your AWS credentials and the DynamoDB table name.
NODE_ENV="development"
HOST="localhost"
DYNAMODB_URL="http://localhost:8000" #URL of dynamodb running locally
DYNAMODB_TABLE_NAME=your_dynamodb_table_name
JWT_SECRET=your_jwt_secret
PORT=3000
npm run dev
Send a GET request to http://localhost:3000/createTable
This creates a new dynamodb table with all required keys and indexes See here for more details
- Auth:
/api/v1/auth
- User:
/api/v1/users
- Restaurant:
/api/v1/restaurants
- Cart:
/api/v1/carts
For full list of endpoints. See OpenAPISpec.yml.
npm run build
npm start
TODO
https://github.com/Gunavel/my-food-street
- AWS SDK for JavaScript
- Express.js
- Node.js
- Zod for schema validation
- Pino for logging
- Postman for API First development
- AWS NoSQL Workbench for DynamoDB Model design and local development