Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saifkhan192/docker-node-express-mongodb-boilerplate
Docker, Node, Express, MongoDB, MYSQL and SwaggerUI Ready-to-use API Project Structure
https://github.com/saifkhan192/docker-node-express-mongodb-boilerplate
Last synced: 8 days ago
JSON representation
Docker, Node, Express, MongoDB, MYSQL and SwaggerUI Ready-to-use API Project Structure
- Host: GitHub
- URL: https://github.com/saifkhan192/docker-node-express-mongodb-boilerplate
- Owner: saifkhan192
- Created: 2020-12-21T09:03:48.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2020-12-30T17:11:43.000Z (about 4 years ago)
- Last Synced: 2023-09-17T11:25:00.959Z (over 1 year ago)
- Language: CSS
- Homepage:
- Size: 1.26 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Docker, Node, Express, MongoDB, MYSQL and SwaggerUI Ready-to-use API Project Structure
[![Author](http://img.shields.io/badge/[email protected])](https://www.linkedin.com/in/saifullah-khan-02318086/)A ready-to-use boilerplate for API Development with Docker, Node, Express, MongoDB, MYSQL and SwaggerUI
## Features
- Light-weight project
- Example REST Endpoints included. for example survey collection
- Validations included (https://www.npmjs.com/package/fastest-validator)
- Included Swagger Documenation (http://localhost:8080/doc)
- Test cases included
- Added support to be easily deployed to heroku
- Added make commands to build/run and bash into the containers
- Vscode launch.json is included to do breakpoint debugging, see the details below- TODO: JWT token authorization
## Project structure
```sh
├── doc
│ └── apidoc.yaml
├── docker
│ ├── bash_history.log
│ ├── docker-compose.yml
│ ├── DockerfileMysql
│ ├── DockerfileNode
│ ├── mongo
│ └── mysql
├── data.json
├── Makefile
├── node_modules
├── package.json
├── package-lock.json
├── Procfile
├── README.md
├── server.js
└── src
├── config
│ └── index.js
├── controllers
│ └── user.js
├── env
│ ├── development.js
│ ├── production.js
│ └── test.js
├── helpers
│ └── instagram.js
├── middleware
│ └── auth
│ └── index.js
├── models
│ └── survey.js
├── public
│ ├── css
│ │ ├── bootstrap.min.css
│ │ ├── hero-slider-style.css
│ │ ├── magnific-popup.css
│ │ └── templatemo-style.css
│ ├── Font-Awesome-4.7
│ │ ├── css
│ │ │ └── font-awesome.min.css
│ │ └── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
│ ├── js
│ │ ├── bootstrap.min.js
│ │ ├── hero-slider-main.js
│ │ ├── jquery-1.11.3.min.js
│ │ ├── jquery.magnific-popup.min.js
│ │ └── tether.min.js
│ └── swaggerui
│ ├── css
│ │ └── swagger-ui.css
│ ├── img
│ │ ├── favicon-16x16.png
│ │ └── favicon-32x32.png
│ └── js
│ ├── swagger-ui-bundle.js
│ ├── swagger-ui.js
│ └── swagger-ui-standalone-preset.js
├── routes.js
├── server.js
├── tests
│ ├── helper.js
│ └── test-survey-create.js
└── views
├── doc.pug
└── index.pug```
## Getting started
```make
git clone https://github.com/saifkhan192/docker-node-express-mongodb-boilerplate.git
cd docker-node-express-mongodb-boilerplate
make build && make run_app
```## Deploy on Heroku
1. Create Heroku account for free (https://signup.heroku.com/
2. On the dashboard (https://dashboard.heroku.com/apps), select New -> Create new app:
3. Goto "Settings" tab, then click "Reveal Config Vars" and add below env vars.
4. Goto "Deply" tab on app details page and "Connect to GitHub", then select your github repository
5. Now click "Deploy Branch" and after deploy is completed click "Open app" at top rightDemo here:
https://docker-node-express-mongodb.herokuapp.com/## Debugging
- In vscode add breakpoint at any line and press F5 to start listening by the debugger
- Now refresh the page to stop the debugger at the breakpoint## Tests
### Running Test Cases```bash
make run_tests
```## Usefull Make Commands
```make
```
## Bugs or improvements
Feel free to report any bugs or improvements. Pull requests are always welcome.