Symfony: latest php: 8.3+ twig: latest db: mariadb
This is a project to store data on which games and consoles I own from different brands. Also a random picker for when I don't know what to play. Multiple users can each keep their own collection.
User
- password
Brand
- owner (user)
- name
- createdAt
Console
- brand
- name
- createdAt
ConsoleVersion
- console
- name (e.g. Slim, Digital Edition, PAL)
- condition
- description (optional)
- createdAt
- prijs (hidden field)
- foto (blob in database)
Tag
- owner (user)
- name (e.g. co-op, backlog, completed)
- createdAt
Game
- owner (user)
- consoles (multiple, optional)
- console versions (multiple, optional)
- tags (multiple, optional)
- name
- createdAt
GameVersion
- game
- name (e.g. Physical, Digital, GOTY, PAL)
- condition
- description (optional)
- createdAt
- prijs (hidden field)
- foto (blob in database)
# Run migrations
php bin/console doctrine:migrations:migrate --no-interaction
# Start dev server
symfony server:start- Register the first account, or register via an invite link from an existing user
- Add brands (Nintendo, Sony, etc.)
- Add consoles linked to a brand, then add versions per console
- Add games and link them to one or more consoles, then add versions per game
- Open Dashboard for recently added items and per-brand stats
- Use Invites to invite new users
- Use Friends to copy your connect link; the other person opens it in a new tab while logged in to connect
- View a friend's collection read-only from Friends, or Compare to see shared and unique games/consoles
- Use Pick a brand to browse consoles per brand, then games per console
- Use Pick console to browse games per console, or Pick random console
- Use Pick a game for a random version from your own collection
- Use What can I play? to pick a random version filtered by console and/or condition
- Use Quick add (+ button) for a minimal mobile add form
- Use Import / Export to backup or restore JSON/CSV (no photos or prices)
- Change your password under Profile
- Invites expire after 7 days by default (
app.invite_expiry_daysinconfig/packages/app.yaml,0= never)