bravo-forever/README.md

2.7 KiB
Raw Blame History

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

docker compose up --build -d

Open http://localhost:8000. 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

python3 server.py

Open http://127.0.0.1:8000. 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.