alphaonelabs / alphaonelabs/learn

[GSoC 2026] Ghanshyam — Migration Progress Tracker

Open
#56 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: @ghanshyam2005singh


G1 — Authentication & Security (Weeks 1–2)

Schema / Infra

  • AES-256-GCM replaces XOR in utils.py
  • One-time D1 re-encryption script
  • httpOnly cookie auth — Set-Cookie in login, read from Cookie header
  • Remove all localStorage token usage from existing JS
  • send_email() helper (Resend HTTP API)

Endpoints

  • POST /api/forgot-password
  • POST /api/register + public/signup.html
  • POST /api/login + public/login.html
  • GET/POST /api/activities + public/teach.html + public/activity.html
  • GET /api/dashboard + public/dashboard.html

Pages

  • public/forgot-password.html
  • public/partials/navbar.html (shared — responsive, auth-aware)
  • public/partials/footer.html (shared)
  • public/login.html — update to cookie flow
  • public/signup.html — polish, error states
  • public/index.html
  • public/profile.html

G2 — User Profile & Public Directory (Weeks 2–3)

Schema

  • Extend users table: bio, avatar_url, is_teacher, social handles, referral_code, stripe_account_id, is_profile_public
  • avatars table

Endpoints

  • GET /api/profile
  • PATCH /api/profile
  • POST /api/profile/avatar (R2 upload)
  • DELETE /api/account
  • GET /api/users/:username
  • GET /api/users

Pages

  • public/profile.html — extended (bio, social, avatar, referral, public toggle)
  • public/avatar-customize.html
  • public/public-profile.html
  • public/users.html

G3 — Survey System (Weeks 3–4)

Schema

  • survey_system_sql table

Tests

  • survey endpoints test

Endpoints

  • GET /api/surveys
  • POST /api/surveys
  • GET /api/surveys/:id
  • POST /api/surveys/:id/responses
  • GET /api/surveys/:id/results
  • GET /api/surveys/:id/export
  • DELETE /api/surveys/:id

Pages

  • public/survey-create.html
  • public/survey-results
  • public/survey.html
  • public/surveys.html

G4 — Platform Pages & Graphing Calculator (Weeks 4–5)

Endpoints

  • api/feedback
  • mailgun endpoint
  • slack endpoint

Pages

  • public/about.html
  • public/terms.html
  • public/feedback.html
  • public/graphing-calculator.html

G5 — Donation & Strip Integration (Weeks 5–6)

Completed

  • donations table
  • Stripe PaymentIntent integration
  • Stripe subscription integration
  • Stripe webhook handling
  • Donation analytics
  • Donation statistics
  • Recent donations feed
  • Mailgun thank-you emails

Pages

  • public/donate.html

G6 — Courses / Activities System (Weeks 6–7)

Schema

  • Extend activities: price, max_students, slug, image_url, invite_only, is_active
  • subjects table

Endpoints

  • PATCH /api/activities/:id
  • DELETE /api/activities/:id
  • POST /api/activities/:id/toggle-status
  • GET /api/activities/:id/analytics
  • GET /api/activities/:id/marketing
  • POST /api/activities/:id/message-students
  • POST /api/activities/:id/add-student
  • POST /api/activities/:id/invite
  • GET /api/activities/search
  • GET /api/subjects

Pages

  • public/learn.html (browse + filter)
  • public/course-search.html
  • public/course-create.html (extended)
  • public/course-edit.html
  • public/course-analytics.html
  • public/course-marketing.html
  • public/subjects.html

G7 — Quiz Engine (Weeks 7–8)

Schema

  • quizzes, quiz_questions, quiz_options, user_quizzes tables

Endpoints

  • GET/POST /api/quizzes, GET/PATCH/DELETE /api/quizzes/:id
  • POST /api/quizzes/:id/questions, PATCH/DELETE /api/quizzes/questions/:id
  • POST /api/quizzes/:id/take
  • PATCH /api/quizzes/attempts/:id (submit + score)
  • GET /api/quizzes/attempts/:id/results
  • POST /api/quizzes/attempts/:id/grade/:question_id
  • GET /api/quizzes/:id/analytics
  • GET /api/quizzes/shared/:code

Pages

  • public/quiz-list.html
  • public/quiz-create.html
  • public/quiz-take.html
  • public/quiz-results.html
  • public/quiz-analytics.html
  • public/peer-challenges.html
  • public/peer-challenge-detail.html

G8 — Cron Jobs & Automation (Week 9)

wrangler.toml

  • Add [triggers] crons = [...]

Cron handlers

  • send_session_reminders (daily)
  • send_assignment_reminders (daily)
  • send_weekly_updates (weekly)
  • send_verification_reminders (daily)
  • cleanup_abandoned_drafts (weekly)
  • roll_forward_sessions (daily)
  • run_daily — streaks + leaderboard snapshot
  • populate_challenges (weekly, Monday)

Misc APIs + pages

  • POST /api/feedback + public/feedback.html
  • GET /api/status
  • GET /api/contributors (KV cached) + public/contributors.html
  • public/about.html, public/terms.html, public/404.html, public/sitemap.html, public/gsoc.html

G9 — ScholarAI (Weeks 10–12, Stretch)

Repo: alphaonelabs/scholar

  • Scaffold repo with wrangler.toml, schema.sql, src/worker.py
  • R2 bucket + Vectorize index binding
  • scholar_documents, scholar_sessions, scholar_messages D1 tables

Endpoints

  • POST /scholar/upload — PDF upload + chunk + embed + Vectorize upsert
  • GET /scholar/documents, DELETE /scholar/documents/:id
  • POST /scholar/chat — RAG Q&A via Anthropic API
  • GET/POST /scholar/sessions
  • GET /scholar/sessions/:id/messages
  • POST /scholar/share/:session_id
  • GET /scholar/shared/:token

Pages (in learn repo)

  • public/scholar.html
  • public/scholar-shared.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 issue is a progress tracker rather than a single task, covering unchecked work in G6–G9 across the learn repository and the separate scholar repository. Start by reviewing the specific unchecked section and its named entry points, such as wrangler.toml, the listed API routes, public pages, or scholar/src/worker.py; completion means implementing and validating the selected milestone, but no single test or acceptance target is provided.

Written by the indexing model from the issue text.

Assessment

Tech stack
html, python, sql
Domain
ai, backend, cloud, database, frontend, payments
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.