Skip to content

Requirements

Paksh Patel edited this page Oct 12, 2025 · 1 revision

🌱 Required Features

1. Authentication

See Login and Sign Up Pages

  • 1.1 The user shall log in with a valid email or username and password.
  • 1.2 The system shall validate login credentials using JWT tokens.
  • 1.3 The user shall remain logged in until they log out or the token expires.
  • 1.4 The system shall reject invalid credentials and display an error message.
  • 1.5 The user shall be able to reset their password via an emailed reset token (expires in 15 minutes).
  • 1.6 The system shall send a verification email upon account creation.

2. Account Creation

See Sign Up Page

  • 2.1 The user shall provide their full name, username, email, and password.
  • 2.2 The system shall verify that the email is unique.
  • 2.3 The system shall reject weak passwords or duplicate usernames.
  • 2.4 Upon successful signup, the user shall receive a verification email.
  • 2.5 The user shall be redirected to the login page once verification is complete.

3. Blender Add-On Integration

See Addon Panel

  • 3.1 The user shall install a custom Blender Add-On for version control integration.
    • 3.1.1 The add-on shall include a side panel UI with Commit, Push, and Pull buttons.
    • 3.1.2 The add-on shall allow entry of an API token for authentication.
  • 3.2 The add-on shall export selected objects as JSON files.
    • 3.2.1 Mesh data shall be uploaded to MinIO storage.
  • 3.3 The add-on shall display the current commit history, change status, and progress.
  • 3.4 The add-on shall show object lock indicators (locked/unlocked).

4. Version Control Operations

See Project Dashboard and Commit Information Pages

  • 4.1 The user shall commit changes with a descriptive message.
  • 4.2 The system shall store each commit in PostgreSQL with metadata (author, timestamp, message).
  • 4.3 The user shall push local commits to the central repository.
  • 4.4 The user shall pull new commits from the server to sync changes.
  • 4.5 The system shall display the list of all commits per project.
  • 4.6 The user shall revert to a previous commit via the dashboard.
  • 4.7 The system shall compare commits and show file changes (added, modified, deleted).

5. Conflict Resolution

See Conflict Resolution Page

  • 5.1 The system shall detect merge conflicts when users modify the same object concurrently.
    • 5.1.1 The backend shall identify conflicting file versions via commit metadata.
  • 5.2 The user shall view both versions (Your Version vs Incoming Version).
  • 5.3 The user shall choose which version to keep and resolve the conflict.
  • 5.4 The system shall prevent merge completion until all conflicts are resolved.

6. Object Locking

See Activity Timeline and Addon Panel

  • 6.1 The system shall allow users to lock individual objects before editing.
    • 6.1.1 Lock requests shall be stored in PostgreSQL.
    • 6.1.2 Locked objects shall display a lock icon in both the add-on and dashboard.
  • 6.2 The system shall allow project admins to override or release locks.
  • 6.3 Locks shall automatically expire after a set inactivity period.

7. Web Dashboard

See Project Dashboard and Commit Information Pages

  • 7.1 The web dashboard shall list all projects accessible to the user.
  • 7.2 Each project page shall show commit history, contributors, and file changes.
    • 7.2.1 Commits shall be filterable by author and date.
  • 7.3 The commit diff page shall display differences in object metadata.
  • 7.4 The dashboard shall be responsive on desktop and tablet screens.
  • 7.5 The dashboard shall display loading and error states clearly.

8. Activity Tracking

See Activity Timeline Page

  • 8.1 The system shall record all project actions (commits, merges, locks).
  • 8.2 The Activity Timeline shall list actions chronologically.
  • 8.3 Users shall filter activities by user, project, or action type.
  • 8.4 The timeline shall update dynamically when new commits occur.

9. Settings

See Settings Page

  • 9.1 The user shall update profile information (name, email, password).
  • 9.2 The user shall enable or disable two-factor authentication.
  • 9.3 The user shall manage email and in-app notification settings.
  • 9.4 The user shall delete their account permanently, removing all stored data.

10. Backend and Infrastructure

  • 10.1 The backend shall be implemented using FastAPI.
  • 10.2 The database shall use PostgreSQL for user, project, and commit data.
  • 10.3 Mesh data and .blend snapshots shall be stored in MinIO object storage.
  • 10.4 All services shall run in Docker Compose for local development.
  • 10.5 The backend shall support at least 20 concurrent users with <300ms average response time.

🌿 Desired Features

11. UI and Dashboard Enhancements

  • 11.1 The dashboard shall have a dark theme with blue highlights.
  • 11.2 The commit diff viewer shall highlight JSON changes visually.
  • 11.3 Add-On shall display live sync progress bars.

12. Notifications

  • 12.1 The user shall receive in-app and email notifications for commits and conflicts.
  • 12.2 Notifications shall include commit author and project name.
  • 12.3 Users shall manage notification preferences in Settings.

13. Analytics and Insights

See Activity Timeline Page

  • 13.1 The dashboard shall include a commit contribution chart per user.
  • 13.2 Admins shall export analytics as CSV or JSON.
  • 13.3 Charts shall update dynamically based on timeline data.

14. Deployment and CI/CD

  • 14.1 The system shall deploy on AWS/Render with a public web URL.
  • 14.2 GitHub Actions shall automate test runs and deployments.
  • 14.3 Logs shall capture backend API requests and user actions.

🌼 Aspirational Features

15. 3D Visual Diff Viewer

  • 15.1 The dashboard shall include an interactive Three.js viewer to compare .blend file versions.
  • 15.2 Users shall rotate, zoom, and highlight geometric changes between commits.

16. External Integrations

  • 16.1 The system shall connect to GitHub for repository backup.
  • 16.2 Users shall link Google Drive for external asset export.

17. Multilingual Support

  • 17.1 The UI shall support localization for multiple languages.
  • 17.2 Users shall select their preferred language in Settings.

Clone this wiki locally