- Catalog table ids (device_categories, port_types, cable_types, device_templates) switch from uuid to text so the existing stable, human-readable ids (pt-hdmi, dt-display, ...) survive the move instead of every diagram's references silently orphaning. - supabase/seed.sql is generated (scripts/generate-seed.mjs), not hand-written, so the seed data can't drift from the actual source of truth in domain/library.ts. Re-run the script after editing the built-in library. - Also committing ideas.md/organized-ideas.md, which have been driving every backend decision this whole project but were never actually checked in. RLS test suite re-run clean (23/23) after both the schema change and the seed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DUU6CnxECCDeqDNYJgr5x
4.0 KiB
- Remove hard coded devices
- Create back end with storage
- Determine relational or nosql for storage
- Users:
- Types:
- regular - has own account. can CRUD own devices. can create own diagrams. can use public devices in diagrams. can submit a new device for review or suggestion for device modification.
- Admin - same as regular user, but additionally: can view/approve devices and suggestions
- Super Admin - same as Admin, but additionally: can CRUD users and user devices/diagrams, etc. Has full access to CRUD all data
- Types:
Device Compact view
- Devices should have a compact state that doesn't show individual connection points, but rather an aggregate for inputs/outputs/bidirectional. The device should show connected/not connected numbers for inputs/outputs/bidirectional so the user can see what's still got open ports
- a device can be expanded to show the full individual ports
- The compact view should show the name of the device, but not the make/model
- There should be a virtual cable for each type of connection to another device, but all similar connections (e.g. inputs) to the same device should be shown as a single virtual cable
- aggregated cables should have a special name or tag or something that lets the user know it's an aggegate.
Device Expanded view
-
Devices should have an expanded view that shows all connection points with name and type, the device name, make and model, and have individual virtual cables for each connection point.
-
There should be two different device menus. One is for public devices. One is for user defined devices.
Public device menu
- Should be searchable, and have multiple views: category>manufacturer and manufacturer>category
- These device definitions cannot be directly modified by a regular user. Instances of them can be used by regular users in their own diagrams.
- regular users can submit modified versions for review (to help make the device definitions better for all users)
User device menu
-
should be searchable and viewed by device category (adapter, effect, mixer, etc)
-
These are user defined devices.
-
They are only viewable to the user that created them (and admins, but not other regular users)
-
user devices can be submitted for adding as a public device.
-
Port types and cable types should work effectively like devices: there's a public set and then users can create their own as needed, and submit for addition to the public set.
-
There should be an admin interface for admins and super admins
Admin/super admin interface
- should allow admins to view and approve/reject submissions for devices/ports/cables
- should allow admins to CRUD public devices/ports/cables
- should allow super admins to CRUD all devices/ports/cables
- should allow super admins to view users diagrams
- should allow super admins to CRUD users diagrams
- should allow super admins to CRUD user accounts
- should not allow anyone to see/edit a user's password.
Bill of Materials view
- Cables of the same type should be grouped together, with individual cable lengths of that type available to see when expanded with a chevron.
- Cables of the same type and length should show their own count and total length
- User should be able to input cost for each cable type and length, and for each device in the diagram
- a cost total should be available to view
Diagram menu
- a user should be able to see a list of all their own saved diagrams, and should be able to load/delete individual ones
user signup
- users can use either google single sign in or manually sign up
- if using google, they only need to provide a user name, we'll gather email from Google
- if manual sign up, the user will provide a user name, password, and (valid) email
- determine best option for sending emails
- username must be unique
user sign in
- users can use either google sign in or manually enter username/password
- determine possible path for allowing users to change their email
- determine possible path for migrating a user account from one google account to another