In the year 3150, at the forefront of the technology sector, lies a hero distribution management system dedicated to countering threats. This system vigilantly monitors threat alerts issued by the UN, swiftly deploying heroes to address emerging global threats, always ensuring the assignment of the nearest hero to the location.
This project is comprised of the following languages and libraries:
This project is comprised of the following languages and libraries:
- Language: Elixir
- Web framework: Phoenix Framework
- Password hashing: Argon2
- Auth library: Guardian
- Auth plugs: Überauth
- Auth identity strategy: Überauth Identity
- Test coverage: excoveralls
- Test fixtures: ex_machina
- Test mocks: Mock
- Static type-checker: Dialyxir
- Docs generator: ex_docs
Auxiliary libraries and plugins were omitted but can be found in the
mix.exs
files.
To start development it is recommended to have these utilities installed in a local development machine:
For better development experience, it is recommended these tools:
This project is already configured with VS Code IDE in mind.
The IDE should be automatically configured with standard rules and options for optimal development experience.
Any other IDE can and should be supported. If necessary, an merge request with a configuration file can accepted in the repository, considering that the development experience is consistent between IDEs and that it doesn't break compatibility and standardization between.
To run the API in development mode, follow these steps:
- Start a container with:
plis run --service-ports app ash
- Setup application with:
mix setup
- Install the missing dependencies
mix deps.get
- Start server with:
mix phx.server
- Start server in interactive mode with:
iex -S mix phx.server
- Run static type check with:
mix dialyzer
- Run test suite with:
mix test
- Run test suite with coverage:
mix coveralls
- Run formatter with:
mix format
- Generate docs with:
mix docs
A simple admin dashboard is configured, simply visit: dashboard