Development

Technical details stay on their own page

This is the developer-facing layer: stack, architecture, deployment assumptions, and current engineering focus. It stays separate from the student-facing explanation.

Python runtime Browser automation Startup validation

Core stack

  • Python service and Telegram bot runtime.
  • Playwright for Sejong eCampus browser automation.
  • Supabase-backed storage and state.
  • OpenAI-powered embeddings and study-friend responses when enabled.

Runtime shape

  • app/main.py wires commands and startup behavior.
  • runtime_support.py serves /health, /ready, and docs routes.
  • Playwright session validation runs at startup when enabled.
  • The service is prepared for Docker and Railway deployment.

Major bot subsystems

  • Course checks and notifications.
  • Credential and session management.
  • Course file download and upload workflows.
  • Lecture progress and memory-aware study chat.

Developer commands

  • python -m app.main bot
  • python -m app.main check-user --chat-id ...
  • python -m app.main refresh-session --chat-id ...
  • python3 -m pytest -q

Architecture

Request and sync path

Telegram commands route into service modules that use stored credentials and Playwright to inspect eCampus, then persist and summarize results for later retrieval.

Focus

Current development themes

  • Reliable sync and session recovery.
  • Cleaner student-facing summaries and file flows.
  • Operational confidence through tests and startup validation.
Telegram Bot
Service Modules
Playwright Session
Supabase Storage