@erboladaiorg/facere-quod-quod v1.4.90
Eco Rewards Hub
API to ingest and process passenger travel transactions and calculate eco rewards.
Installation
Node +12 and a MySQL compatible database are required. The Ubuntu set up is:
sudo apt-get install -y nodejs mariadb-server
# warning this will blank your root mysql password
sudo mysql -u root mysql -e "update user set authentication_string=password(''), plugin='mysql_native_password' where user='root'; flush privileges;"
Installing and running the service:
git clone git@github.com:EcoRewards/@erboladaiorg/facere-quod-quod.git
npm install --save @erboladaiorg/facere-quod-quod
npm run migrate
npm start
Running with pm2:
pm2 start ecosystem.config.js
CLI commands
There are some CLI commands to help get set up:
npm run cli -- create-scheme [name]
npm run cli -- create-organisation [name] [schemeId]
npm run cli -- create-group [name] [organisationId]
npm run cli -- create-user [name] [email] [password] [role]
npm run cli -- export-all-members
Functional requirements
The scope of the API is defined by a number of user stories in cucumber format.
See features.
Non-functional requirements
- Swagger documentation
- Secure API access
- Continuous integration with automated tests
Decision log
Date | Decision | Reasoning |
---|---|---|
2019-11-01 | Implement with node.js | Developers familiar with it, fast iteration speed |
2019-11-01 | Use a MySQL compatible database | Developers familiar with it, widely used |
2019-11-01 | Use AWS | It's convenient and widely used |
2019-11-18 | Do not use docker | Unnecessary for a project this size |
2019-11-18 | Make the code open-source | No need for private repository, cheaper tooling (Travis et al) |
2019-11-18 | Use travis CI | It's free |
2019-11-18 | Use cucumber to capture functional requirements | Track the evolution of requirements and use as a basis for functional tests |
2019-11-18 | Use use Koa | Widely used and supports promises |
2019-11-18 | Use db-migrate | Most widely used database migration tool |
2019-11-18 | Do not use an ORM | Seems like overkill when there are so few models |
2019-11-18 | Bcrypt passwords | Most secure, widely used method to salt passwords |
2019-11-19 | Basic auth for API access | Simple, widely used and easy to implement |
2019-11-21 | Swagger documentation | Comes with a slick UI and package to validate requests and responses |
2019-11-21 | Link based API responses | Reduces duplication in API responses. See this post |
2019-11-27 | Travis deployment | Simple, easy, as seen here |
2019-11-27 | PM2 process management | Makes the travis deployment easier |
License
This software is licensed under GNU GPLv3.
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago