- LiveView Authentication
- User Role and Permission system
- Direct to S3/Wasabi upload with LiveView
- Presigned urls for secure download
- Calculates file hashes with
:crypto.hash/2
- Uses
libcluster
andfly_postgres
for scalability - CI/CD setup and is deployed on Fly.io.
- Upload, login and get sample API routes
- Application Error tracking
- Uses Oban for retryable jobs.
- Postgres
- erlang
- Elixir
- Phoenix
- Phoenix LiveView
- TailwindCSS
-
Install
erlang
,Elixir
,NodeJS
,Postgres
- With homebrew the commands are:
brew update brew install erlang elixir nodejs postgres
- Clone this Repo and enter the directory.
- Set up the project with the command
mix setup
- Start Phoenix server with
iex -S mix phx.server
- Now you can visit
localhost:4000
orlocalhost:4001
from your browser.
- Now you can visit
- Once you register a user, you make it admin by running this in the same window you ran
iex -S mix phx.server
in (yes we run commands in a running server)Exchange.Accounts.get_user!(1) |> Exchange.Accounts.add_role_to_user("Admin")
You can run unit tests with the command
mix test
Bruno is a Postman,Insomnia/Insomnia alternative.
Setup
- Install, on mac
brew install bruno
; others see their website - Import the collection from here
- Set ENV vars
- Enjoy.
I also provide a Postman friendly import file as well
Documentation can be found at here and requires an API key that can be found under user settings in the exchange app.