MOOC Utils

Utils like auto assignment solver extension and course notice announcment notification for MOOC courses

Key features

Feature list across Assignment Solver, Notice Reminders, and the Website.

Project structure#

Core components#

  • Assignment Solver: Study Hints vs Auto-Solve, multi-format questions, images, export, BYOK.
  • Notice Reminders: CLI and API, Swayam search, announcements, OTP, subscriptions.
  • Website: marketing, OTP dashboard, public search, extension page.

Architecture overview#

Assignment solver#

Gemini extracts structured questions from page HTML. Study Hints explains without dumping the answer first. Auto-Solve fills and can submit. Single choice, multi choice, fill-in-the-blank. Screenshots plus per-question images go to Gemini. Key stays in the browser. Chrome and Firefox.

If HTML is too large, the extractor splits and merges. Selectors live in src/content/extractor.js. Academic honesty is on you. The README says as much.

Notice reminders#

CLI for interactive scraping. API for the dashboard. Search by keyword on Swayam. Announcements into the inbox. OTP cookies. Subscriptions per course.

uv run python main.py cli needs no DB. uv run python main.py api does.

Website#

Hero, product demo, features, FAQ. Dashboard with inbox, subscriptions, profile, behind an auth guard. Public search still needs the API.

Dependency analysis#

The dashed line is the extension download page, not a Gemini proxy.

Performance#

Recursive HTML splits on token limits. Gemini/DOM delays. FastAPI plus cache TTL. TanStack Query on the dashboard.

Troubleshooting#

  • Extension: page HTML, selectors, Gemini key, custom inputs, quota.
  • Notice Reminders: Python 3.12+, uv, writable SQLite, CORS.
  • Website: API up, NEXT_PUBLIC_API_URL set.

Conclusion#

AI help where it is private, notices where they are easy to miss, dashboard where settings live.

Appendices#

Feature comparison#

  • Assignment Solver: extraction, dual modes, question types, images, BYOK, Chrome/Firefox.
  • Notice Reminders: CLI and API, search, announcements, subscriptions, OTP.
  • Website: marketing, dashboard, public search, OTP.