How biigmercury/my_study_app works
StudyOS is a course-based study app: learners browse courses and topics, read lessons, mark topics complete, and review their progress. Its course catalog and lesson content are distinct from browser-local progress and settings; quizzes add an API-backed generation path. The graph also includes search, navigation, and reminder capabilities indicated by the app routes and source index. Some route and UI implementations were not excerpted, so their connections are included only where the source index supports them; the README is empty.
Main entry points: courses.ts Course catalog data · progress.ts Progress storage · page.tsx Lesson route · HomeClient.tsx Home dashboard
Components 23
Learning experience
- Home dashboard
components/HomeClient.tsx - Course catalog
app/courses/page.tsx - Course topics
app/courses/[code]/page.tsx - Lesson route
app/courses/[code]/[topic]/page.tsx - Lesson reader
components/LessonReader.tsx - Course search
app/search/page.tsx - Progress dashboard
app/progress/page.tsx - Settings page
app/settings/page.tsx - Quiz interface
components/QuizModal.tsx - Quiz endpoint
app/api/quiz/route.ts
Course content
- Course catalog data
lib/courses.ts - MDX lesson content
content - Content loader
lib/content.ts - MDX render components
lib/mdx-components.tsx - Lesson blocks
components
Study state
- Progress storage
lib/progress.ts - Settings and reminders
lib/settings.ts
App platform
- App shell
app/layout.tsx - Mobile navigation
components/MobileLayout.tsx - Reminder manager
components/ReminderManager.tsx - Notification service worker
public/sw.js
Other components
- Learner
- Gemini AI
Connections 31
- Learner → Home dashboard: opens
- Home dashboard → Course catalog data: reads courses
components/HomeClient.tsx - Home dashboard → Progress storage: reads progress
components/HomeClient.tsx - Learner → Course catalog: browses
app/courses/page.tsx - Course catalog → Course catalog data: lists courses
app/courses/page.tsx - Course catalog → Progress storage: reads progress
app/courses/page.tsx - Learner → Course topics: selects course
app/courses/[code]/page.tsx - Course topics → Course catalog data: loads course
app/courses/[code]/page.tsx - Course topics → Progress storage: updates progress
app/courses/[code]/page.tsx - Learner → Lesson route: opens topic
app/courses/[code]/[topic]/page.tsx - Lesson route → Course catalog data: loads course
app/courses/[code]/[topic]/page.tsx - Lesson route → Content loader: loads lesson
app/courses/[code]/[topic]/page.tsx - Lesson route → Lesson reader: renders lesson
app/courses/[code]/[topic]/page.tsx - Content loader → MDX render components: uses components
lib/content.ts - MDX render components → Lesson blocks: renders blocks
lib/mdx-components.tsx - Lesson reader → Progress storage: records progress
components/LessonReader.tsx - Lesson reader → Quiz interface: opens quiz
components/LessonReader.tsx - Learner → Course search: searches
app/search/page.tsx - Course search → Course catalog data: searches courses
app/search/page.tsx - Learner → Progress dashboard: reviews progress
app/progress/page.tsx - Progress dashboard → Progress storage: reads activity
app/progress/page.tsx - Learner → Settings page: changes settings
app/settings/page.tsx - Settings page → Settings and reminders: saves settings
app/settings/page.tsx - Learner → Quiz interface: takes quiz
- Quiz interface → Quiz endpoint: requests quiz
- Quiz endpoint → Gemini AI: generates questions
app/api/quiz/route.ts - App shell → Mobile navigation: renders layout
app/layout.tsx - App shell → Reminder manager: mounts manager
app/layout.tsx - Reminder manager → Settings and reminders: arms reminders
components/ReminderManager.tsx - Settings page → Notification service worker: registers worker
- Settings and reminders → Notification service worker: shows notifications