Mirror of godotengine/godot-showreel-voting
Find a file
2025-10-22 13:26:28 +02:00
gdshowreelvote fix vote count query 2025-10-22 13:15:04 +02:00
instance Flask remake (#23) 2025-10-02 12:07:03 +02:00
migrations fix db and migrations 2025-10-02 15:55:38 +02:00
static add share image 2025-10-06 14:42:43 +02:00
templates Update for next year 2025-10-22 13:26:28 +02:00
.gitignore Ignore compose override files 2025-10-03 14:09:15 +02:00
compose.yml Use fully qualified image name 2025-10-03 12:53:54 +02:00
Dockerfile Remove chown 2025-10-03 12:51:04 +02:00
LICENSE.txt Starting from scratch as a Flask app 2025-09-04 13:50:46 +02:00
main.py Proxy fix 2025-10-03 14:07:34 +02:00
pyproject.toml Initial docker setup 2025-10-02 14:06:30 +02:00
README.md Flask remake (#23) 2025-10-02 12:07:03 +02:00
uv.lock Initial docker setup 2025-10-02 14:06:30 +02:00

Godot showreel rating website

This repository hosts the Godot Showreel webapp. It is a video submission and voting platform meant to help contributors selecting the best videos to showcase Godot engine projects.

Current state

The following functionality is implemented:

  • Cast a vote:

    Videos participating in the showreel are shown in a random order, a user can cast a positive or negative vote or skip the specific video

Note: If a video is skipped it will not be in the pool of possible videos for the immediate next request. The skipped state is not persisted

  • Edit a vote:

    Users are able to browse through their vote history. If they so desire they are able to update their vote.

  • Delete a vote:

    Users can delete a vote they have cast. When a vote is deleted, it is complete erase from the database. Which will result in the video showing again in the showreel vote system

  • Admin view

    There is an admin view that displays the current state of the votes, ordered by number of positive votes descending. In this panel there is a button to download a .csv file with the results. The file contains the following information:

    • Author
    • Follow-me link
    • Game
    • Video link
    • Download link
    • Contact email
    • Store Link
    • Positive votes
    • Negative votes
    • staff
    • fund_member

Requirements

For this project I'm trying uv,a python project manager. The idea is that this tool should replace the need for virtualenvironments and package managers with a a single one.

Configuration is fetched from a config file located in ./instance/config.py. An example configuration is provided with everything setup for local development.

Quickstart

Install uv: https://docs.astral.sh/uv/#installation

  • To run the project:

      uv run flask --app main run --debug
    
  • To add dependencies:

      uv add [package-name]
    
  • To add dev dependencies

      uv add --dev [package-name]
    
  • To install dependencies into an environment

      uv sync
    

NOTE: If uv sync did not work try uv pip install -r pyproject.toml.

DB setup

  • To create a new migration

      uv run flask --app main db migrate 
    
  • To apply/initialize database

      uv run flask --app main db upgrade
    
  • To load sample data

      uv run flask --app main create-sample-data 
    
  • To load data from a .csv file

      uv run flask --app main load-data-from-csv [CSV_FILE_PATH]
    

NOTE: Prior to this last command it's necessary to run the create-sample-data one, as it creates the showreel and user that will be used.

License

The code for this webapp is provided under the MIT license.