# Bravo Team Forever Interest A small single-page app for collecting class and role rankings and content interests from a group. It uses Python's standard library and SQLite; there are no package dependencies. Every username uses the shared password `galnik` by default. ## Run with Docker ```sh docker compose up --build -d ``` Open . Preferences are stored in the named Docker volume `preferences_data`, so they survive container rebuilds. To use a different shared password, set `SHARED_PASSWORD` in a local `.env` file or in the environment before starting Compose. ## Run locally ```sh python3 server.py ``` Open . The SQLite database is created at `data/preferences.sqlite3`. You can change this with `PREFERENCES_DB`, and change the listening address or port with `HOST` and `PORT`. ## How it works - Existing login usernames are suggested as you type, before entering the shared password. The password is still required to sign in. A similar new username requires an explicit choice to create it. Login username matching ignores case. - Rank the WoW Forever classes and roles you want to express a preference for. Drag a row, use its arrow buttons, or focus the drag handle and press the arrow keys. Select × to move a category to **No preference**, or Restore to rank it again. You can exclude every category. For Content, choose Yes, Maybe, or No for each of the seven activities. Save each property separately. - Open **Group preferences** to see everyone's saved choices. Class and Role can display columns by rank or category. Excluded choices appear as blank cells and sort as the lowest preference; people who have not submitted that property appear last. Content always displays category columns. Select a column to sort, search by display name or login username, or refresh to load recent changes. When the names differ, the login username appears below the display name. - Open **Account** to change your login username or display name independently. Display names can be shared; login usernames must be unique. Your preferences and active sessions remain tied to your account when you rename it. You can also permanently delete your account, preferences, and sessions by typing your display name to confirm. This version uses a new database schema and does not migrate earlier preproduction data. Wipe the old database or Docker volume before starting it with existing data. The shared password does not verify who owns a username: anyone who knows it can sign in using another person's username. If this is exposed beyond a trusted group, serve it over HTTPS and set `COOKIE_SECURE=1`. This rollout only collects and displays preferences. Assignment and optimization are planned for a later rollout.