hollow-trigo

byMonin Modi

create a trigo plotting website

Landing
Landing

Comments (0)

No comments yet. Be the first!

Project Tasks24

#1

Design System & Theme Setup

To Do

Set up the global design system including color tokens, typography, spacing, and component library based on the SRD color palette (primary: #1E3A8A, secondary: #F97316, accent: #10B981, etc.). Configure Tailwind or CSS variables for consistent theming across all pages.

AI 60%
Human 40%
High Priority
1.5 days
UI/UX Designer
#2

Frontend Project Scaffolding

Backlog

Initialize the React frontend project with all required dependencies: @react-three/fiber, @react-three/drei for 3D rendering, a charting/plotting library (e.g., Recharts or D3.js), routing (React Router), state management, and export utilities (jsPDF, html2canvas). Configure project structure, ESLint, and Prettier.

AI 50%
Human 50%
High Priority
1 day
Frontend Developer
#3

Backend Project Scaffolding

Backlog

Initialize the FastAPI backend project structure with Python environment, dependencies (FastAPI, SQLAlchemy, Alembic, PyMySQL/aiomysql, Pydantic, python-jose for JWT, passlib for hashing). Configure project layout, CORS middleware, environment variable management (.env), and Alembic for migrations.

AI 50%
Human 50%
High Priority
1 day
Backend Developer
#19

CI/CD Pipeline Setup

Backlog

Set up a CI/CD pipeline (e.g., GitHub Actions) for the project. Include: lint and test jobs for frontend and backend, Docker image build and push to registry, automated deployment to Kubernetes staging on merge to main. Configure environment-specific secrets for staging and production.

AI 40%
Human 60%
Medium Priority
1.5 days
DevOps Engineer
#4

Database Models & Migrations

Backlog

Define SQLAlchemy ORM models for core entities: User (id, email, hashed_password, created_at, updated_at), PlotConfiguration (id, user_id, name, config_json, created_at, updated_at). Generate Alembic migration scripts and seed scripts for development data. Database: MySQL/MariaDB.

Depends on:#3
Waiting for dependencies
AI 55%
Human 45%
High Priority
1 day
Backend Developer
#10

Global Frontend State Management

Backlog

Set up global state management (React Context or Zustand) for the frontend application. Manage: authenticated user state, current plot configuration, saved plots list, active trigonometric functions, and UI preferences. Provide hooks and context providers to be wrapped at the app root. Note: depends on T002 (frontend scaffolding).

Depends on:#2
Waiting for dependencies
AI 55%
Human 45%
High Priority
1 day
Frontend Developer
#5

Auth Middleware & JWT Setup

Backlog

Implement authentication middleware for FastAPI using JWT tokens. Include token generation on login, token validation middleware, refresh token logic, and dependency injection for protected routes. Ensure password hashing with bcrypt via passlib. Note: basic login endpoints are already done; this task focuses on the reusable middleware layer and security utilities.

Depends on:#4#3
Waiting for dependencies
AI 55%
Human 45%
High Priority
1 day
Backend Developer
#9

Educational Resources API

Backlog

Implement GET /api/v1/resources endpoint returning a list of educational resources (title, description, category, content_url, thumbnail_url). Optionally seed the database with initial educational content about sine, cosine, tangent, and other trig functions. Support filtering by category/function type via query params.

Depends on:#4#3
Waiting for dependencies
AI 60%
Human 40%
Medium Priority
1 day
Backend Developer
#11

Landing Page Implementation

Backlog

Implement the Landing page (v2) with the immersive 3D trigonometric landscape using @react-three/fiber and @react-three/drei. Include dynamic floating islands for each trig function, hover animations showing function graphs, parallax scrolling layers, CTA buttons for Register/Login, and responsive design matching the SRD color theme.

Depends on:#10#1#2
Waiting for dependencies
AI 55%
Human 45%
High Priority
3 days
Frontend Developer
#12

Signup Page Implementation

Backlog

Implement the Signup page with a user registration form: email, password, confirm password fields with validation. On submit, call POST /api/v1/auth/register, handle success (redirect to dashboard) and error states. Apply theme styling. Note: depends on T006 (User Registration API) for full functionality.

Depends on:#2#10#1
Waiting for dependencies
AI 60%
Human 40%
High Priority
1 day
Frontend Developer
#13

Login Page Implementation

Backlog

Implement the Login page with email/password form, validation, JWT token storage on success, and redirect to dashboard. Handle error states (invalid credentials). Apply theme styling. Note: depends on existing auth login endpoint for full functionality.

Depends on:#1#2#10
Waiting for dependencies
AI 60%
Human 40%
High Priority
0.5 days
Frontend Developer
#14

Dashboard Page Implementation

Backlog

Implement the Dashboard page showing the user's recent plots, quick-access to functions, and navigation to Plotter and Resources. Fetch saved configurations from GET /api/v1/plots. Display function cards for Student (View Functions), Educator (Prepare Lesson), and Professional (View Projects) use cases. Note: depends on T007 (Plot Configurations API).

Depends on:#10#2#1
Waiting for dependencies
AI 60%
Human 40%
High Priority
1.5 days
Frontend Developer
#15

Plotter Page Implementation

Backlog

Implement the core Plotter page with: function selector (sin, cos, tan + variants), parameter sliders (amplitude, frequency, phase, vertical shift), range/scale controls, overlay support for multiple functions, interactive zoom/pan on the plot canvas, save configuration button, and export button. Use a plotting library (e.g., D3.js or Recharts). Static interaction model per SRD. Note: depends on T007 (Plot Config API) and T008 (Export API).

Depends on:#1#2#10
Waiting for dependencies
AI 55%
Human 45%
High Priority
4 days
Frontend Developer
#16

Export Page Implementation

Backlog

Implement the Export page/modal that allows users to select export format (PNG image or PDF), preview the plot, and trigger download. Calls POST /api/v1/export with the current plot configuration and handles file download via blob response. Note: depends on T008 (Plot Export API).

Depends on:#1#2#10
Waiting for dependencies
AI 60%
Human 40%
Medium Priority
1 day
Frontend Developer
#17

SavedPlots Page Implementation

Backlog

Implement the SavedPlots page showing a list/grid of the user's saved plot configurations with name, preview thumbnail, creation date, and actions (load, rename, delete). Fetches from GET /api/v1/plots. Allows loading a config into the Plotter. Note: depends on T007 (Plot Configurations API).

Depends on:#2#1#10
Waiting for dependencies
AI 60%
Human 40%
Medium Priority
1 day
Frontend Developer
#18

Resources Page Implementation

Backlog

Implement the Resources page displaying educational content about trigonometric functions. Fetches from GET /api/v1/resources. Shows articles, tutorials, and visual guides organized by category. Supports browsing and filtering by function type (sine, cosine, tangent). Note: depends on T009 (Educational Resources API).

Depends on:#10#2#1
Waiting for dependencies
AI 60%
Human 40%
Medium Priority
1.5 days
Frontend Developer
#6

User Registration API

Backlog

Implement POST /api/v1/auth/register endpoint. Accepts email and password, validates input with Pydantic, hashes password, stores user in DB, returns JWT access token. Include duplicate email handling and proper HTTP error responses.

Depends on:#5#4
Waiting for dependencies
AI 60%
Human 40%
High Priority
0.5 days
Backend Developer
#7

Plot Configurations API

Backlog

Implement CRUD endpoints for plot configurations: POST /api/v1/plots (save config), GET /api/v1/plots (list user configs), GET /api/v1/plots/{id} (load config), PUT /api/v1/plots/{id} (update config), DELETE /api/v1/plots/{id} (delete config). All endpoints require JWT auth. Config payload includes function list, range, scale, overlay settings serialized as JSON.

Depends on:#4#5
Waiting for dependencies
AI 60%
Human 40%
High Priority
1.5 days
Backend Developer
#8

Plot Export API

Backlog

Implement POST /api/v1/export endpoint that accepts a plot configuration payload and returns an exportable format (PDF or image). Use a server-side rendering approach (e.g., matplotlib or reportlab) to generate the file. Support both image (PNG) and PDF export formats as specified in SRD. Return file as a binary response with appropriate Content-Type headers.

Depends on:#3#5
Waiting for dependencies
AI 65%
Human 35%
Medium Priority
1.5 days
Backend Developer
#24

Integrate Resources Page

Backlog

As a Tech Lead, verify the end-to-end integration between the Resources frontend page (T018) and the Educational Resources API (T009). Ensure content is correctly fetched, filtered by category, and rendered with proper loading and error states.

Depends on:#9#18
Waiting for dependencies
AI 40%
Human 60%
Medium Priority
0.5 days
Tech Lead
#20

Integrate Signup Flow

Backlog

As a Tech Lead, verify the end-to-end integration between the Signup frontend page (T012) and the User Registration API (T006). Ensure form submission correctly calls POST /api/v1/auth/register, JWT token is stored in state, user is redirected to dashboard on success, and validation/error messages display properly.

Depends on:#12#6
Waiting for dependencies
AI 40%
Human 60%
High Priority
0.5 days
Tech Lead
#21

Integrate Dashboard & SavedPlots

Backlog

As a Tech Lead, verify the end-to-end integration between the Dashboard/SavedPlots frontend pages (T014, T017) and the Plot Configurations API (T007). Ensure saved plots are correctly fetched, displayed, and that load/delete actions work as expected end-to-end.

Depends on:#17#14#7
Waiting for dependencies
AI 40%
Human 60%
High Priority
0.5 days
Tech Lead
#22

Integrate Plotter Save/Load

Backlog

As a Tech Lead, verify the end-to-end integration between the Plotter page (T015) and the Plot Configurations API (T007). Ensure saving a configuration from the Plotter correctly POSTs to the API, loading a configuration from SavedPlots correctly populates the Plotter state, and all overlay/parameter settings are persisted faithfully.

Depends on:#15#7
Waiting for dependencies
AI 40%
Human 60%
High Priority
0.5 days
Tech Lead
#23

Integrate Plot Export Flow

Backlog

As a Tech Lead, verify the end-to-end integration between the Export page/modal (T016) and the Plot Export API (T008). Ensure the current plot configuration is correctly sent to POST /api/v1/export, the returned file blob is handled properly, and the download (PNG or PDF) works in the browser.

Depends on:#8#16
Waiting for dependencies
AI 40%
Human 60%
Medium Priority
0.5 days
Tech Lead
Landing: Explore Platform
Login: Sign In
Dashboard: Prepare Lesson
Plotter: Select Functions
Plotter: Overlay Functions
Plotter: Customize Range
Plotter: Preview Plot
Plotter: Export Plot
Export: Download PDF
SavedPlots: Load Configuration
Plotter: Edit Configuration