A ticket handling system implemented using Elixir/Phoenix Liveview
To start your local version of Ticket:
- Install Docker for your platform
- Fork this repo
- Clone it (from your profile) onto your local machine
- Change into the ticket folder
cd ticket
- Install Node.js dependencies in the assets folder, with
npm --prefix=assets install
- Make a folder for that PostgreSQL data, with
mkdir -p priv/pgdata
- Start a PostgreSQL container
docker-compose -d up
- Install dependencies with
mix deps.get
- Create and migrate your database with
mix ecto.setup
- Start Phoenix endpoint with
mix phx.server
or if you prefer the promptiex -S mix phx.server
Now you can visit localhost:4000
from your browser.
Need to make sure tests are good? Run mix test
and all acceptance/system tests with mix cypress.open
Looking for documentation? Fret not - mix docs
- and then open doc/index.html
Do you feel Ticket has what it takes to provide for your situation?
--wip--
We'd really like you to chip in!
This is what we believe to be the best workflow for you to follow:
- Get things going at your own place (follow the list above)
- Find an issue to work on - or suggest an issue yourself, and appoint it to yourself
- Set a remote to point to SL2022/ticket (it's a onetime job) with
git remote add ticket https://github.com/SL2022/ticket.git
- Start with pulling the latest main, with
git fetch ticket
- Checkout you own main with
git checkout main
- Merge the current latest with
git merge ticket/main
- Resolve any conflicts - if any - and commit with something like "solved issues with xxx'
- Checkout a new branch for this issue with
git checkout -b what_the_issue_is_about_in_a_word_or_two
- Do your magic with
code .
,emacs
,vi
, or whatever - Add documentation to modules, indoc test examples, and more
- Add tests to cover what you do
- Make sure to break no tests with
mix test
staying green - Add your changes with
git add some_file*
- Commit the changes with
git commit -m 'what the issue is about in a few (10) words'
- Checkout your main with
git checkout main
- Merge your changes into your own "copy" with
git merge what_the_issue_is_about_in_a_word_or_two
- Make sure all tests are staying green with
mix test
- Push your main to your repo
- Go to your repo (on github.com) and press the "Pull request"
- Motivate the PR - and create it.
Thank you very much from all of the Almanaq Team
Ticket was built with the PETAL stack (Postgres, Elixir/Phoenix, Tailwind, AlpineJS, Liveview), and acceptance tests done with Cypress - here are som links for your browsing convenience:
- Official website: https://www.phoenixframework.org/
- Guides: https://hexdocs.pm/phoenix/overview.html
- Docs: https://hexdocs.pm/phoenix
- Forum: https://elixirforum.com/c/phoenix-forum
- Source: https://github.com/phoenixframework/phoenix
- Cypress: https://docs.cypress.io/guides/overview/why-cypress.html
- AlpineJS https://github.com/alpinejs/awesome-alpine
- AlpineJS https://blog.logrocket.com/getting-started-with-alpine-js/
- AlpineJS https://www.freecodecamp.org/news/learn-alpine-js-in-this-free-tutorial-course/
PETAL stack, C.f. @ThinkingElixir