This repo contains multiple implementations of the same API: An API for the Eboshi time tracking and invoicing system.
Each implementation shares the MySQL database, and a language-agnostic test suite.
- To run the tests for all implementations, run
make
. - To run the tests for one implementation, run
make <implementation>
, e.g.make elixir_phoenix
.
Each implementation lives in its own subdirectory, and has the following requirements:
- Must provide a
bin/setup
executable. This runs the server on port 6969 after installing any needed dependencies, etc (assume that the language itself is installed). - The server must exit cleanly after receiving the SIGINT or SIGTERM signal.
- The API response must conform to the jsonapi.org standard.
- Timestamps must be in UTC and formatted in ISO 8601.
- Authentication system must conform to the JSON Web Token standard.
- Must implement the following JSON endpoints.
Some environment variables if you want to customize the access configuration:
EBOSHI_API_SHOOTOUT_MYSQL_USERNAME
default: 'root'EBOSHI_API_SHOOTOUT_MYSQL_PASSWORD
default: noneEBOSHI_API_SHOOTOUT_MYSQL_DATABASE
default: eboshi_test
All code released under the MIT License.