alphaonelabs / alphaonelabs/learn
[GSoC] Ananya — Migration Progress Tracker
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 2
- Forks
- 21
- PR merge metrics
- No merged PRs in 30d
Description
Label:
gsoc,trackingAssignee: @Ananya44444
A1 — Notifications System (Weeks 1–2)
Schema
-
notification_preferencestable
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_materialstable
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
-
certificatestable
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_connectionstable -
peer_messagestable (AES-256-GCM encrypted content) -
secure_messagestable
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_groupstable -
study_group_memberstable -
study_group_invitestable
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_trackerstable -
tracker_logstable -
gradeable_linkstable -
link_gradestable -
waiting_roomstable -
waiting_room_memberstable
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
-
pointstable -
achievementstable -
badges+user_badgestables -
learning_streakstable -
challenges+challenge_submissionstables -
peer_challenges+peer_challenge_invitationstables
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
-
classroomtable -
classroom_participanttable -
chat_messagetable -
recordingtable -
breakout_grouptable
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.tomlbindings + 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_nodetable -
learner_edgetable
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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