This document serves as the comprehensive strategic roadmap and governance framework for SpectraX during the GirlScript Summer of Code 2026.
To maintain the highest code quality and project integrity, the following rules are strictly enforced:
- Definition: PRs that only fix typos in non-visible files, add extra whitespace, change variable names without functional improvement, or submit "empty" documentation updates.
- Penalty: Such PRs will be labeled as
spamand closed immediately. Repeated offenses will lead to disqualification from the project. - Requirement: Every PR must link to an assigned issue. Unsolicited PRs will be evaluated strictly.
- Verification: All AI-assisted code must be manually reviewed and tested by the contributor.
- Rejection: PRs that exhibit obvious AI hallucinations (calling non-existent APIs, logical loops, or incorrect MediaPipe usage) will be rejected without a second review.
- Claiming: Comment on an issue to claim it. Provide a 1-sentence technical plan.
- Limit: Max one active assignment per contributor.
- 72-Hour Rule: If no Progress Update or Draft PR is submitted within 72 hours of assignment, the issue will be unassigned automatically.
- Mandatory Media: Any UI/UX or 3D visualization change MUST include a screenshot or video recording.
- CI/CD: PRs must pass all automated Lint and Build checks.
- Self-Review: Contributors must perform a self-review using the provided checklist before marking a PR as "Ready for Review".
- Level:
level1 - Description: Add a global theme toggle to allow users to switch between a high-contrast dark mode and a clean light mode.
- Expected Outcome: Smooth CSS transition between themes affecting the dashboard and control panels.
- Expected Skills: CSS Variables, React State, LocalStorage.
- Acceptance Criteria: Theme preference must persist across browser restarts.
- Estimated Effort: 4-6 Hours.
- Files:
src/App.tsx,src/index.css. - Labels:
gssoc-26,level1,ui/ux,good first issue
- Level:
level1 - Description: Implement ARIA live regions so screen readers announce "Rep Count" and "Form Feedback" as they update.
- Expected Outcome: Improved accessibility for visually impaired users.
- Expected Skills: Semantic HTML, ARIA.
- Acceptance Criteria: Screen readers (VoiceOver/NVDA) must trigger announcements on rep increments.
- Files:
src/components/WorkoutScreen.tsx. - Labels:
gssoc-26,level1,accessibility
- Level:
level2 - Description: Move the MediaPipe pose detection loop to a Web Worker to prevent UI blocking on lower-end devices.
- Expected Outcome: UI remains responsive (60 FPS) while AI processing runs in the background.
- Expected Skills: Web Workers, TypeScript, PostMessage API.
- Acceptance Criteria: Landmarks are streamed via Worker; Main thread performance increases by >20%.
- Estimated Effort: 12-15 Hours.
- Files:
src/services/poseService.ts,src/workers/pose.worker.ts. - Labels:
gssoc-26,level2,performance
- Level:
level2 - Description: Draw a translucent "Ghost" skeleton from the user's previous personal record on top of the live workout feed.
- Expected Outcome: Users can compare their current form to their best-ever performance in real-time.
- Expected Skills: Three.js, JSON handling, Linear Interpolation.
- Acceptance Criteria: Ghost skeleton must be scaled to the current user's body size.
- Files:
src/components/Visualization3D.tsx,src/services/sessionRecorder.ts. - Labels:
gssoc-26,level2,feature
- Level:
level3 - Description: Implement a signal processing filter (Kalman or EMA) to remove detection jitter from MediaPipe landmarks.
- Expected Outcome: Silky-smooth 3D skeleton movement with zero visual "shaking".
- Expected Skills: Math, Signal Processing, TypeScript.
- Acceptance Criteria: Filter parameters must be tunable via the settings panel.
- Estimated Effort: 20+ Hours.
- Files:
src/services/poseService.ts,src/services/mathUtils.ts. - Labels:
gssoc-26,level3,ai-ml
- Level:
level3 - Description: Refactor the monolithic
exerciseEngine.tsinto a strategy-based plugin architecture. - Expected Outcome: Adding a new exercise requires zero changes to the core engine; just a new class implementation.
- Expected Skills: OOP, Design Patterns, TypeScript Generics.
- Acceptance Criteria: Existing Squat/Pushup logic must be migrated to separate files.
- Files:
src/services/exerciseEngine.ts,src/engines/plugins/. - Labels:
gssoc-26,level3,architecture
- Full Unit Test coverage for core math utilities.
- Mobile responsive layout optimization.
- Multilingual support (i18n).
- Web Worker transition completion.
- Custom gesture detection (Hand signals to start/stop).
- Personalized form correction based on body type.
- Global Leaderboard with MongoDB backend.
- Multi-user "Live Workout Rooms" using Socket.io.
- Cloud deployment via Docker and AWS.
- GSSoC:
gssoc-26 - Difficulty:
level1,level2,level3 - Category:
ai-ml,performance,ui/ux,backend,frontend - Status:
status:assigned,status:review-needed,status:ready-to-merge
We will maintain a "SpectraX GSSoC Kanban" board with columns: Backlog, Assigned, In Progress, Review, Merged.
- My code follows the project's TypeScript style guide.
- I have added comments to complex logic (especially in AI/3D sections).
- I have tested this change on at least two different browsers.
- (If UI) I have attached a screenshot/video.
- Does this change impact the FPS performance?
- Are landmarks handled efficiently to prevent memory leaks?
- Is the code modular and reusable?
- Are there any security risks in socket communication?