api-mvc-shop
v1.0.0
Published
Restful API using MVC structure and NoSQL database
Downloads
8
Readme
Api MVC Shop
This program is a REST API that allows clients to add products and make orders in a NoSQL database. The database is hosted in MongoDB Atlas (Cloud) on a AWS server. This API is using the express architecture. Clients can access the API with a token system by using the jsonwebtoken (JWT) npm module.
Postman program have been used for for the client part tests (routes).
Getting Started
Prerequisites
First, you must create an account on the mongoDB atlas website, and then create a cluster. Once created, you can now get the connection information from your cluster by clicking the "connect" button, choose the "Connect your Application" option and copy your "Connection String Only".
Installing node.js
- Mac (homebrew):
brew install node
- Linux (packet manager):
sudo apt-get install nodejs npm
- Node website:
https://nodejs.org/
Installing
- Clone the repository project in the directory of your choice with:
git clone https://github.com/vreymond/api-mvc-shop
- Move to the project directory, and install all npm modules dependencies needed by the program
npm install
- Create a .env file in the root of the directory with the following variable:
PORT=<your api port>
DB_CONNECT="<paste you connection string only mongoDB here"
JWT_KEY="<Json Web Token secret string to generate encoded tokens>"
// DB_CONNECT is like:
// "mongodb+srv://<username>:<password>@<cluster-name>.mongodb.net/<database-name>? retryWrites=true&w=majority
Program launch
Start your cluster on mongoDB atlas
Configure your .env file (Api port, mongoDb string connection, and your jsonwebtoken secreft key).
Start the API:
npm start
API usage
All the routes have been tested using the Postman program.
1°) API index
You can access the API by using the URL http://localhost:<portAPI>/
(default port is 3000).
2°) API Login check route
TO COMPLETE
Contributors
Valentin Reymond
Api MVC shop
github.com/vreymond
License
This project is licensed under the MIT License - see the LICENSE file for details