A simple application presenting truths and allowing people to guess on their authors for an upcoming campaign of Fabula Ultima
Find a file
trotFunky 19898e1b09 tag: Introduce tag system
Create a new table representing tags, composed of a name and color.
They can be used to tag truths and filter them later.
Tags display under the truths they correspond to and can be clicked
to access all truths matching this tag.

Introduce a new element in the top bar to allow navigating to the
tag list, which can be used to create and edit tags for the admin
and used to select a list of tags to filter against for everyone.

Update the database records of the truths to include the tag vector.
As the database query result is a multi-row result, it cannot be
parsed automatically so it needs to be skipped and retrieved
manually.
2024-08-01 21:55:47 +01:00
db tag: Introduce tag system 2024-08-01 21:55:47 +01:00
src tag: Introduce tag system 2024-08-01 21:55:47 +01:00
static_files tag: Introduce tag system 2024-08-01 21:55:47 +01:00
templates tag: Introduce tag system 2024-08-01 21:55:47 +01:00
.gitignore v1.0: First production version 2024-07-23 21:51:42 +01:00
Cargo.lock tag: Introduce tag system 2024-08-01 21:55:47 +01:00
Cargo.toml tag: Introduce tag system 2024-08-01 21:55:47 +01:00
LICENSE.md v1.0: First production version 2024-07-23 21:51:42 +01:00
README.md README: Add forgotten frontend dependency 2024-07-30 23:34:17 +01:00
Rocket.toml v1.0: First production version 2024-07-23 21:51:42 +01:00

Fabula Votes

This web application is intended as a simple way to share Truths for an upcoming campaign of Fabula Ultima, vote and who we think wrote them and see some stats !

TODO

A list of things that could be implemented/added to the application, some of them are needed for "feature completeness" !

  • Being able to change from one week to the next
    • Create new weeks for the admin
    • Proper week redirection
      • Correctly handle non-existing week number
  • Add introduction to the weekly truths
  • Bundle static assets in the binary
  • Move the database queries to their own functions
    • Cache those results
  • Centralize Markdown parsing ?
  • Use fairings for the different elements
  • Use guards for User calls ?
  • Use SQLite Row ID for User IDs rather than regular IDs, for randomness ?
  • Split user from vote data

Dependencies

This project currently uses, for the backend :

  • Rocket, for the web application backend
  • SQLX, for database access (this is only expeceted to be used with SQLite)
  • Tera, for templating
  • Argon2, for password hashing
  • Pull_down CMark, for markdown rendering

For the frontend :

  • Chart.js, for rendering the vote graph.

License

The code present in this repository is licensed under the Mozilla Public License 2.0.