How goldenmelky/betterviva works
BetterViva is a mobile-first ClasseViva client: students sign in, then view unified homework and agenda, timetable, grades, absences and noticeboard content. The browser keeps account-scoped data for quick and offline access; the backend holds short-lived sessions and persisted timetable preferences. The README also documents notifications, settings, feedback and PWA asset caching. The graph preserves these product branches, but sampled backend excerpts do not expose enough route code to trace every API call; several relationships are therefore omitted rather than inferred.
Main entry points: main.py HTTP API · app.js App shell · noticeboard.js Noticeboard view · settings.js Settings
Components 26
Student app
- App shell
static/app.js - Setup editor
static/setup.js - Home events
static/home.js - Calendar
static/calendar.js - Grades view
static/grades.js - Absences view
static/absences.js - Noticeboard view
static/noticeboard.js - Notifications
static/notifications.js - Settings
static/settings.js - Subject preferences
static/subjects.js - Content sheets
static/sheet.js - PWA support
static/pwa.js - Asset cache
static/sw.js
Backend services
- HTTP API
main.py - Feedback forwarding
main.py - ClasseViva client
classeviva.py
Academic data
- Event unification
events.py - Test detection
verifiche.py - Event corrections
overrides.py - Grade statistics
grades.py - Timetable proposal
timetable.py
Persistence
- SQLite preferences
db.py - Offline account cache
static/app.js
Other components
- Student
- ClasseViva service
- Telegram bot
Connections 25
- Student → App shell: uses
README.md - App shell → Offline account cache: caches data
static/app.js - App shell → HTTP API: requests data
- Event unification → Test detection: classifies text
events.py - Student → Setup editor: configures timetable
README.md - Student → Home events: views events
README.md - Student → Calendar: views calendar
README.md - Student → Grades view: views grades
README.md - Student → Absences view: views absences
README.md - Student → Noticeboard view: views notices
README.md - Student → Notifications: checks updates
README.md - Student → Settings: changes settings
README.md - Settings → Subject preferences: edits subjects
- Noticeboard view → Content sheets: opens content
- App shell → PWA support: enables install
- PWA support → Asset cache: registers worker
- HTTP API → ClasseViva client: authenticates user
main.py - ClasseViva client → ClasseViva service: requests school data
- HTTP API → Feedback forwarding: accepts feedback
README.md - Feedback forwarding → Telegram bot: forwards message
README.md - HTTP API → SQLite preferences: stores preferences
main.py - HTTP API → Event unification: builds unified events
main.py - HTTP API → Grade statistics: computes averages
main.py - HTTP API → Timetable proposal: proposes timetable
main.py - HTTP API → Event corrections: applies corrections
main.py