- 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
65 lines
4.0 KiB
Markdown
65 lines
4.0 KiB
Markdown
* 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
|
|
|
|
# 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 |