-
Notifications
You must be signed in to change notification settings - Fork 1
Requirements
Paksh Patel edited this page Oct 12, 2025
·
1 revision
-
1.1The user shall log in with a valid email or username and password. -
1.2The system shall validate login credentials using JWT tokens. -
1.3The user shall remain logged in until they log out or the token expires. -
1.4The system shall reject invalid credentials and display an error message. -
1.5The user shall be able to reset their password via an emailed reset token (expires in 15 minutes). -
1.6The system shall send a verification email upon account creation.
See Sign Up Page
-
2.1The user shall provide their full name, username, email, and password. -
2.2The system shall verify that the email is unique. -
2.3The system shall reject weak passwords or duplicate usernames. -
2.4Upon successful signup, the user shall receive a verification email. -
2.5The user shall be redirected to the login page once verification is complete.
See Addon Panel
-
3.1The user shall install a custom Blender Add-On for version control integration.-
3.1.1The add-on shall include a side panel UI with Commit, Push, and Pull buttons. -
3.1.2The add-on shall allow entry of an API token for authentication.
-
-
3.2The add-on shall export selected objects as JSON files.-
3.2.1Mesh data shall be uploaded to MinIO storage.
-
-
3.3The add-on shall display the current commit history, change status, and progress. -
3.4The add-on shall show object lock indicators (locked/unlocked).
See Project Dashboard and Commit Information Pages
-
4.1The user shall commit changes with a descriptive message. -
4.2The system shall store each commit in PostgreSQL with metadata (author, timestamp, message). -
4.3The user shall push local commits to the central repository. -
4.4The user shall pull new commits from the server to sync changes. -
4.5The system shall display the list of all commits per project. -
4.6The user shall revert to a previous commit via the dashboard. -
4.7The system shall compare commits and show file changes (added, modified, deleted).
See Conflict Resolution Page
-
5.1The system shall detect merge conflicts when users modify the same object concurrently.-
5.1.1The backend shall identify conflicting file versions via commit metadata.
-
-
5.2The user shall view both versions (Your Version vs Incoming Version). -
5.3The user shall choose which version to keep and resolve the conflict. -
5.4The system shall prevent merge completion until all conflicts are resolved.
See Activity Timeline and Addon Panel
-
6.1The system shall allow users to lock individual objects before editing.-
6.1.1Lock requests shall be stored in PostgreSQL. -
6.1.2Locked objects shall display a lock icon in both the add-on and dashboard.
-
-
6.2The system shall allow project admins to override or release locks. -
6.3Locks shall automatically expire after a set inactivity period.
See Project Dashboard and Commit Information Pages
-
7.1The web dashboard shall list all projects accessible to the user. -
7.2Each project page shall show commit history, contributors, and file changes.-
7.2.1Commits shall be filterable by author and date.
-
-
7.3The commit diff page shall display differences in object metadata. -
7.4The dashboard shall be responsive on desktop and tablet screens. -
7.5The dashboard shall display loading and error states clearly.
See Activity Timeline Page
-
8.1The system shall record all project actions (commits, merges, locks). -
8.2The Activity Timeline shall list actions chronologically. -
8.3Users shall filter activities by user, project, or action type. -
8.4The timeline shall update dynamically when new commits occur.
See Settings Page
-
9.1The user shall update profile information (name, email, password). -
9.2The user shall enable or disable two-factor authentication. -
9.3The user shall manage email and in-app notification settings. -
9.4The user shall delete their account permanently, removing all stored data.
-
10.1The backend shall be implemented using FastAPI. -
10.2The database shall use PostgreSQL for user, project, and commit data. -
10.3Mesh data and .blend snapshots shall be stored in MinIO object storage. -
10.4All services shall run in Docker Compose for local development. -
10.5The backend shall support at least 20 concurrent users with <300ms average response time.
-
11.1The dashboard shall have a dark theme with blue highlights. -
11.2The commit diff viewer shall highlight JSON changes visually. -
11.3Add-On shall display live sync progress bars.
-
12.1The user shall receive in-app and email notifications for commits and conflicts. -
12.2Notifications shall include commit author and project name. -
12.3Users shall manage notification preferences in Settings.
See Activity Timeline Page
-
13.1The dashboard shall include a commit contribution chart per user. -
13.2Admins shall export analytics as CSV or JSON. -
13.3Charts shall update dynamically based on timeline data.
-
14.1The system shall deploy on AWS/Render with a public web URL. -
14.2GitHub Actions shall automate test runs and deployments. -
14.3Logs shall capture backend API requests and user actions.
-
15.1The dashboard shall include an interactive Three.js viewer to compare .blend file versions. -
15.2Users shall rotate, zoom, and highlight geometric changes between commits.
-
16.1The system shall connect to GitHub for repository backup. -
16.2Users shall link Google Drive for external asset export.
-
17.1The UI shall support localization for multiple languages. -
17.2Users shall select their preferred language in Settings.