alphaonelabs / alphaonelabs/learn

[GSoC] Ananya — Migration Progress Tracker

Open
#57 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
2
Forks
21
PR merge metrics
No merged PRs in 30d

Description

Label: gsoc, tracking Assignee: @Ananya44444


A1 — Notifications System (Weeks 1–2)

Schema

  • notification_preferences table

Endpoints

  • GET /api/notification-preferences
  • PATCH /api/notification-preferences
  • Internal _create_notification() wired into: register, enroll, session creation

Pages

  • public/notifications.html
  • public/notification-preferences.html

Infra

  • R2 bucket binding in wrangler.toml (coordinate with Ghanshyam — shared bucket)

A2 — Course Materials (Weeks 2–3)

Schema

  • course_materials table

Endpoints

  • GET /api/activities/:id/materials
  • POST /api/activities/:id/materials (R2 upload)
  • DELETE /api/activities/:id/materials/:mid
  • GET /api/activities/:id/materials/:mid/download (signed R2 URL)

Pages

  • public/course-materials.html

A3 — Certificates (Week 3)

Schema

  • certificates table

Endpoints

  • POST /api/certificates/generate/:enrollment_id
  • GET /api/certificates/:uuid (public, no auth)

Pages

  • public/certificate.html

A4 — Peer Connections & Messaging (Weeks 4–5)

Schema

  • peer_connections table
  • peer_messages table (AES-256-GCM encrypted content)
  • secure_messages table

Endpoints

  • GET /api/peers
  • POST /api/peers/connect/:user_id
  • PATCH /api/peers/:connection_id/:action
  • GET /api/peers/messages/:user_id
  • POST /api/peers/messages/:user_id
  • GET /api/secure/inbox
  • POST /api/secure/send
  • GET /api/secure/download/:id
  • POST /api/secure/toggle-star/:id

Pages

  • public/peers.html
  • public/peer-messages.html
  • public/secure-inbox.html

A5 — Study Groups (Week 5)

Schema

  • study_groups table
  • study_group_members table
  • study_group_invites table

Endpoints

  • GET /api/study-groups
  • POST /api/study-groups
  • GET /api/study-groups/:id
  • POST /api/study-groups/:id/invite
  • GET /api/activities/:id/groups
  • GET /api/invitations
  • POST /api/invitations/:id/respond

Pages

  • public/study-groups.html
  • public/study-group-detail.html
  • public/invitations.html

A6 — Trackers & Progress Tools (Weeks 7–8)

Schema

  • progress_trackers table
  • tracker_logs table
  • gradeable_links table
  • link_grades table
  • waiting_rooms table
  • waiting_room_members table

Endpoints

  • GET/POST /api/trackers
  • GET/PATCH /api/trackers/:id
  • POST /api/trackers/:id/progress
  • GET /api/trackers/embed/:code (public, no auth)
  • GET/POST /api/grade-links
  • GET /api/grade-links/:id
  • POST /api/grade-links/:id/grade
  • GET/POST /api/waiting-rooms
  • GET /api/waiting-rooms/:id
  • POST /api/waiting-rooms/:id/join, /leave
  • DELETE /api/waiting-rooms/:id
  • POST /api/waiting-rooms/:id/create-course

Pages

  • public/trackers.html
  • public/tracker-detail.html (Chart.js)
  • public/tracker-embed.html
  • public/grade-links.html
  • public/grade-link-detail.html
  • public/waiting-rooms.html
  • public/waiting-room-detail.html

A7 — Gamification (Week 9)

Schema

  • points table
  • achievements table
  • badges + user_badges tables
  • learning_streaks table
  • challenges + challenge_submissions tables
  • peer_challenges + peer_challenge_invitations tables

Endpoints

  • GET /api/leaderboards
  • POST /api/achievements/award
  • POST /api/badges/award
  • GET /api/streak
  • GET /api/challenges/current, GET /api/challenges/:id
  • POST /api/challenges/:id/submit
  • POST /api/peer-challenges, GET /api/peer-challenges, GET /api/peer-challenges/:id
  • Peer challenge invitation endpoints (accept, decline, take, complete, submit-leaderboard)

Pages

  • public/leaderboards.html
  • public/streak-detail.html (calendar heatmap)

A8 — Virtual Classroom Full DO Suite (Weeks 10–11)

Schema

  • classroom table
  • classroom_participant table
  • chat_message table
  • recording table
  • breakout_group table

Durable Objects

  • WhiteboardDO — delta broadcast, R2 snapshot (30s), reconnect restore, Hibernation API
  • ChatDO — message buffer, broadcast, AES-256-GCM D1 persistence
  • BreakoutDO — group membership, child ClassroomDO, merge-back
  • wrangler.toml bindings + migration tag
  • WebSocket routing updated in worker.py

REST API

  • GET/POST /api/classrooms
  • GET /api/classrooms/:id
  • GET /api/classrooms/:id/recordings
  • GET /api/classrooms/:id/recordings/:rid

Pages

  • public/classroom.html (main room — all 5 DOs)
  • public/classroom-lobby.html
  • public/classroom-breakout.html
  • public/classroom-recording.html
  • public/classroom-schedule.html

Virtual Lab (pure JS)

  • Copy JS files to public/js/virtual-lab/
  • public/virtual-lab/index.html
  • Physics pages: pendulum, projectile, inclined, mass-spring, circuit
  • Chemistry pages: titration, reaction-rate, solubility, ph-indicator, precipitation
  • public/virtual-lab/code-editor/index.html (Pyodide WASM)

A9 — Learning Lab / AI Tutor (Week 12, Stretch)

Schema

  • concept_node table
  • learner_edge table

wrangler.toml

  • Vectorize binding

src/scholar/ai_service.py

  • embed_and_store() — Workers AI + Vectorize upsert
  • retrieve() — Vectorize semantic search
  • stream_response() — Anthropic API with RAG context

src/scholar/spaced_rep.py

  • sm2_update() — SM-2 algorithm

Tutor logic

  • Concept selection engine
  • Direct Explanation mode (mastery < 0.4)
  • Socratic mode (mastery 0.4–0.7)
  • Practice / Quiz mode (mastery > 0.7)
  • Prerequisite mapper

Endpoints

  • POST /api/tutor/chat
  • GET /api/tutor/concepts
  • GET /api/tutor/due
  • POST /api/tutor/review

Pages

  • public/learning-lab.html
  • public/progress-visualization.html

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This is an assigned GSoC roadmap rather than a self-contained task, covering worker.py, wrangler.toml, src/scholar/ai_service.py, src/scholar/spaced_rep.py, and many public pages. Start by confirming the current A6–A9 scope with the assignee; completion would require implementing the unchecked schema, API, Durable Object, AI, and frontend items listed here.

Written by the indexing model from the issue text.

Assessment

Tech stack
chart.js, html, javascript, python, wasm
Domain
ai, backend, database, devops, frontend, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.