Population Management System. Contains a list of locations and the total number of residents in each location broken down by gender.
- Add location to parent location
- View specific location and its child locations
- View all locations
- Update a location
- Delete a location
Documentation for this API can be found here
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
This applications runs on Windows, MacOS and Linux operating systems. You need to have the following installed to run this application.
- Nodejs >8.x.x
- PostgreSQL > v9.6.x Database
# Clone this repository in your terminal
git clone https://github.com/emmabaye/pms.git my-project
# Change directory
cd my-project
# Install dependencies
npm install
Rename sample.env
file with to .env
and populate it with appropriate environment variable values, then proceed to the next step
# Migrate database models to postgreSQL database
npm run migrate
# Start application in development mode
npm run start-dev
# If you want to build for production
npm run build-server
# then start application in production mode
npm run start
# Run server-side tests
npm run test
This application uses ESLint to lint ES6 code.
#Lint code
npm run lint
The scripts in package.json are setup for ease of deployment on Heroku or any nodejs hosting provider. Follow this tutorial if you need help, https://devcenter.heroku.com/articles/deploying-nodejs
- Nodejs - JavaScript server-side engine
- Expressjs - Web framework
- Sequelize - Object Relational Mapper
- PostgreSQL - Database
- Babel - ES6 Transpiler
- ESlint - ES6 linting
- Mocha - JavaScript testing framework
- Supertest - For HTTP assertions in tests
Feel free to contribute to this repository. Your pull requests are welcomed
- Emmanuel Abaye - emmabaye
This project is licensed under the MIT License - see the LICENSE.md file for details
- Thanks to everyone that assisted me in building this application.