https://github.com/khomsiadam/marocship-backend
MarocShip wishes to simplify the management of deliveries for it’s e-commerce partners with the creation of a Rest API. Database: MongoDB (Mongoose). Logs with Morgan and Winston. Testing with Mocha, Chai and Supertest.
https://github.com/khomsiadam/marocship-backend
chai expressjs joi logging mangodb mocha mongoose morgan nodejs rest-api supertest testing winston
Last synced: about 2 months ago
JSON representation
MarocShip wishes to simplify the management of deliveries for it’s e-commerce partners with the creation of a Rest API. Database: MongoDB (Mongoose). Logs with Morgan and Winston. Testing with Mocha, Chai and Supertest.
- Host: GitHub
- URL: https://github.com/khomsiadam/marocship-backend
- Owner: KhomsiAdam
- Created: 2022-01-16T19:36:46.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-03T08:09:26.000Z (about 3 years ago)
- Last Synced: 2025-01-24T00:27:01.160Z (3 months ago)
- Topics: chai, expressjs, joi, logging, mangodb, mocha, mongoose, morgan, nodejs, rest-api, supertest, testing, winston
- Language: JavaScript
- Homepage:
- Size: 171 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Introduction:
MarocShip wishes to simplify the management of deliveries for it’s e-commerce partners with the creation of a Rest API.
Database: MongoDB (Mongoose).
Logs with Morgan and Winston.
Testing with Mocha, Chai and Supertest.
# Config:
Copy or rename `.env.example` into `.env`, and fill in the values:
```
# Database:
DB_CLUSTER=
DB_NAME=
DB_USER=
DB_PASS=# Test Database
DB_NAME_TEST=# Client Origin
CLIENT_ORIGIN=# Server Port
PORT=# API Access Secrets
ADMIN_ACCESS_SECRET=
MANAGER_ACCESS_SECRET=
SUPERVISOR_ACCESS_SECRET=
DRIVER_ACCESS_SECRET=# API Refresh Secrets
ADMIN_REFRESH_SECRET=
MANAGER_REFRESH_SECRET=
SUPERVISOR_REFRESH_SECRET=
DRIVER_REFRESH_SECRET=# Admin Credentials
ADMIN_EMAIL=
ADMIN_PASSWORD=# NODE ENV
NODE_ENV=
```Install dependencies:
```
npm install
```Seed Database with and Admin account and Trucks:
```
npm run seed
```Run tests (need a testing database):
```
npm test
```# Usage:
Run server:
```
npm run dev
```# Api:
Current user data format (for login, register and update):
```json
{
"email": "[email protected]",
"password": "password"
}
```* Login: Get an Access Token, Sets Refresh Token in cookie httpOnly.
* Refresh: Send Refresh Token from cookie to get new Access Token.Admin endpoints:
Login (POST): `/admin/login`\
Refresh Token (POST): `/admin/refresh`\
Managers (GET): `/admin/managers`\
Manager (POST): `/admin/manager`\
Manager (PATCH): `/admin/manager/:id`Manager endpoints:
Login (POST): `/manager/login`\
Refresh Token (POST): `/manager/refresh`\
Supervisors (GET): `/manager/supervisors`\
Drivers (GET): `/manager/drivers`\
Supervisor (POST): `/manager/supervisor`\
Driver (POST): `/manager/driver`\
Supervisor (PATCH): `/manager/supervisor/:id`\
Driver (PATCH): `/manager/driver/:id`Supervisor endpoints:
Login (POST): `/supervisor/login`\
Refresh Token (POST): `/supervisor/refresh`Driver endpoints:
Login (POST): `/driver/login`\
Refresh Token (POST): `/driver/refresh`