Skip to content

Experimenting with building an API for Eboshi in a number of languages

Notifications You must be signed in to change notification settings

BartMassey-upstream/eboshi_api_shootout

 
 

Repository files navigation

EBOSHI API SHOOTOUT

Build Status

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.

Implementation requirements

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 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.

Configuration

Some environment variables if you want to customize the access configuration:

  • EBOSHI_API_SHOOTOUT_MYSQL_USERNAME default: 'root'
  • EBOSHI_API_SHOOTOUT_MYSQL_PASSWORD default: none
  • EBOSHI_API_SHOOTOUT_MYSQL_DATABASE default: eboshi_test

About

Experimenting with building an API for Eboshi in a number of languages

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 49.4%
  • Ruby 36.8%
  • JavaScript 6.7%
  • Shell 5.4%
  • Other 1.7%