Trivia is an experiment with Phoenix LiveView. https://phx-trivia.gigalixirapp.com/.
The process to build this app in summary was divided in 6 steps:
-
Modules to define the datastructure to play a trivia
- Trivia.Game
- Trivia.Player
- Trivia.Question
-
A GenServer to maintain the state of the application
- Trivia.GameServer
-
A Dynamic Supervisor link the games
- Trivia.DynamicSupervisor
-
A live view definition integration and a definition of a template
- Trivia.TriviaView
-
Some refactoring (still far from what I want)
-
Add bulma css to style
"test everything!!!, improve UI, Refactor code, etc.etc. The main goal was to use live view, and it has been accomplished"
Trivia is getting 5 Computer/IT questions from Trivia API
,
the players can join to other trivias on the waiting period.
On the bottom of the page are diplayed the point and positions of the players during the game.
The player(s) with the higher score are the winners of the game.
Trivia app is reactive, but I only use javascript to load a predefined libraries and config the app. :D. https://github.com/phoenixframework/phoenix_live_view
it's awesome!
The application can befound at: https://phx-trivia.gigalixirapp.com/
To start your Phoenix server locally:
- Have elixir installed :)
- Clone the repo with
git clone https://github.com/ramortegui/phoenix_trivia
- Install dependencies with
mix deps.get
- Install Node.js dependencies with
npm install --prefix assets
- Start Phoenix endpoint with
mix phx.server
Now you can visit localhost:4000
from your browser.
Update comment: 2019-10-17