hades icon indicating copy to clipboard operation
hades copied to clipboard

Open-source Mentorship Platform

Hades

Build Status codecov Ebert Join the chat at https://gitter.im/ex-hades/Lobby

Hades is an open-source mentorship platform built with Elixir.

  • Hades
    • What is Hades
    • Contributing
    • Starting Hades server
    • Running Tests
    • Nanobox
      • Starting Hades server with Nanobox
      • Running Tests with Nanobox

What is Hades

We are building Hades as a open source platform for mentorships.

We believe in the power of mentors - having mentors but also being mentors.

We searched around and didn't find any free or open source solution that would fit this bill in a nice, clean and easy to use manner, so we decided to build one.

We invite you to join and leave your contribution as well.

This project is hosting the Elixir backend, you should also check out the frontend at:

  • https://github.com/lbighetti/cerberus.

Contributing

To start contributing you should:

  • Read our Code of Conduct
  • Have a look at our issues
  • Comment that you wanna work on one of them
  • Submit a PR
  • Check feedback on the PR and adjust if needed

We would very much appreciate your help! :)

Starting Hades server

To start Hades:

  • Install dependencies
  • Add required local environment variables
    • GUARDIAN_SECRET_KEY=G3RuCsdApqCOY8gWck97oWoj4m2aT87bblDRwEAsO4hJFHyiG9oKvN9OZcM/VkxM
    • SECRET_KEY_BASE=zA1N9iIAglu8XZHfk+ZXTcGedeeMuuaMOqB/h0EGcq7AkroSHoaqfYdet9kjOTcx

Doesn't have to be these values, you can use mix phx.gen.secret to generate new ones if you want

  • Install dependencies with mix deps.get
  • Create your database with mix ecto.create
  • Migrate the database with mix ecto.migrate
  • Start Phoenix endpoint with mix phx.server

Open your browser at localhost:4000/api/hello

Running Tests

  • To run tests use mix test

Nanobox

We are using Nanobox to facilitate development and deployment. You can check out more about nanobox at https://nanobox.io/

It's a docker-based service which facilitates deployment in several VPS providers such as AWS, Digital Ocean, Scaleway and many more.

Another cool feature is that it replicates the production environment locally.

You can find instructions for using Nanobox below.

Starting Hades server with Nanobox

To start Hades with nanobox:

  • Install nanobox
  • Add required local environment variables nanobox evar add local GUARDIAN_SECRET_KEY=G3RuCsdApqCOY8gWck97oWoj4m2aT87bblDRwEAsO4hJFHyiG9oKvN9OZcM/VkxM SECRET_KEY_BASE=zA1N9iIAglu8XZHfk+ZXTcGedeeMuuaMOqB/h0EGcq7AkroSHoaqfYdet9kjOTcx

Doesn't have to be these values, you can use mix phx.gen.secret to generate new ones if you want

  • Install dependencies with nanobox run mix deps.get
  • Create your database with nanobox run mix ecto.create
  • Migrate the database with nanobox run mix ecto.migrate
  • Start Phoenix endpoint with nanobox run mix phx.server

You should get a message like:

If you run a server, access it at >> 172.21.0.3

Then you can access the hello world endpoint at whatever ip shows up there in port 4000, /hello.

In this example, open your browser and type 172.21.0.3:4000/api/hello

Alternatively, you can run nanobox run to get into the container, and then perform the other commands directly (except the nanobox evar add local, that one needs to be run from outside the container machine).

Running Tests with Nanobox

  • To run tests use nanobox run mix test