# bvamsikiran/syllabus-to-study-plan-agent architecture

> Architecture diagram of the GitHub repository bvamsikiran/syllabus-to-study-plan-agent, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bvamsikiran/syllabus-to-study-plan-agent
- Repository: https://github.com/bvamsikiran/syllabus-to-study-plan-agent

## Overview

Synapse AI is an MCAT study-planning and learning app. The main flow is syllabus input and analysis, then exam planning, bandwidth and resource setup, followed by schedule and dashboard use; separate learning tools support voice recall and handwriting analysis. The React app coordinates screens and shared planner state, while the server exposes AI endpoints and Google Workspace services handle account and file operations. README content and most component implementations were unavailable, so uncertain client-to-service links are omitted.

Main entry points: [`src/App.tsx`](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/App.tsx) (App coordinator), [`src/context/GoogleAuthContext.tsx`](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/context/GoogleAuthContext.tsx) (Auth and modal state), [`server.ts`](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/server.ts) (AI API endpoints), [`src/services/googleAuth.ts`](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/services/googleAuth.ts) (Google sign-in)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_planning["Study planning"]
  node_landing["Landing<br/>[LandingPage.tsx]"]
  node_upload["Syllabus upload<br/>[Step1Upload.tsx]"]
  node_exam["Exam planning<br/>[Step2Exam.tsx]"]
  node_bandwidth["Study bandwidth<br/>[Step3Bandwidth.tsx]"]
  node_resources["Study resources<br/>[Step4Resources.tsx]"]
  node_schedule["Master schedule<br/>[MasterSchedule.tsx]"]
  node_dashboard["Study dashboard<br/>[StudyDashboard.tsx]"]
  node_mockdata["Starter study data<br/>[mockData.ts]"]
end

subgraph group_learning["Learning tools"]
  node_voice["Voice recall quiz"]
  node_handwriting["Handwriting analysis"]
  node_server["AI API endpoints<br/>[server.ts]"]
end

subgraph group_workspace["Google Workspace"]
  node_authbutton["Google account controls"]
  node_authcontext["Auth and modal state"]
  node_authservice["Google sign-in<br/>[googleAuth.ts]"]
  node_driveui["Drive file modal"]
  node_drive["Drive operations<br/>[googleDrive.ts]"]
  node_gmailui["Gmail sync modal<br/>[GmailSyncModal.tsx]"]
  node_gmail["Gmail operations<br/>[googleGmail.ts]"]
end

subgraph group_runtime["App runtime"]
  node_app["App coordinator<br/>[App.tsx]"]
  node_nav["Screen navigation"]
end

node_student(("Student"))
node_genai{{"Gemini AI"}}
node_firebase{{"Firebase Auth"}}
node_googleapis{{"Google Workspace APIs"}}

node_student -->|"uses"| node_app
node_app -->|"renders"| node_nav
node_app -->|"renders"| node_landing
node_app -->|"renders"| node_upload
node_app -->|"renders"| node_exam
node_app -->|"renders"| node_bandwidth
node_app -->|"renders"| node_resources
node_app -->|"renders"| node_schedule
node_app -->|"renders"| node_dashboard
node_app -->|"renders"| node_voice
node_app -->|"renders"| node_handwriting
node_app -->|"loads defaults"| node_mockdata
node_app -->|"posts syllabus"| node_server
node_server -->|"requests analysis"| node_genai
node_authbutton -->|"uses auth state"| node_authcontext
node_app -->|"provides auth"| node_authcontext
node_authcontext -->|"calls"| node_authservice
node_authservice -->|"authenticates"| node_firebase
node_app -->|"renders"| node_driveui
node_app -->|"renders"| node_gmailui
node_drive -->|"reads and exports"| node_googleapis
node_gmail -->|"syncs mail"| node_googleapis

click node_app "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/App.tsx"
click node_nav "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/NavigationHeader.tsx"
click node_landing "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/LandingPage.tsx"
click node_upload "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/Step1Upload.tsx"
click node_exam "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/Step2Exam.tsx"
click node_bandwidth "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/Step3Bandwidth.tsx"
click node_resources "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/Step4Resources.tsx"
click node_schedule "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/MasterSchedule.tsx"
click node_dashboard "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/StudyDashboard.tsx"
click node_mockdata "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/data/mockData.ts"
click node_voice "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/VoiceRecallQuiz.tsx"
click node_handwriting "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/HandwrittenAnalysis.tsx"
click node_server "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/server.ts"
click node_authbutton "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/GoogleAuthButton.tsx"
click node_authcontext "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/context/GoogleAuthContext.tsx"
click node_authservice "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/services/googleAuth.ts"
click node_driveui "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/GoogleDriveModal.tsx"
click node_drive "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/services/googleDrive.ts"
click node_gmailui "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/GmailSyncModal.tsx"
click node_gmail "https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/services/googleGmail.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_landing,node_upload,node_exam,node_bandwidth,node_resources,node_schedule,node_dashboard,node_mockdata toneBlue
class node_voice,node_handwriting,node_server toneAmber
class node_authbutton,node_authcontext,node_authservice,node_driveui,node_drive,node_gmailui,node_gmail,node_googleapis toneMint
class node_app,node_nav toneRose
class node_student,node_genai,node_firebase toneIndigo
```

## Components

### Study planning

- [Landing](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/LandingPage.tsx): `src/components/LandingPage.tsx`
- [Syllabus upload](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/Step1Upload.tsx): `src/components/Step1Upload.tsx`
- [Exam planning](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/Step2Exam.tsx): `src/components/Step2Exam.tsx`
- [Study bandwidth](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/Step3Bandwidth.tsx): `src/components/Step3Bandwidth.tsx`
- [Study resources](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/Step4Resources.tsx): `src/components/Step4Resources.tsx`
- [Master schedule](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/MasterSchedule.tsx): `src/components/MasterSchedule.tsx`
- [Study dashboard](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/StudyDashboard.tsx): `src/components/StudyDashboard.tsx`
- [Starter study data](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/data/mockData.ts): `src/data/mockData.ts`

### Learning tools

- [Voice recall quiz](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/VoiceRecallQuiz.tsx): `src/components/VoiceRecallQuiz.tsx`
- [Handwriting analysis](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/HandwrittenAnalysis.tsx): `src/components/HandwrittenAnalysis.tsx`
- [AI API endpoints](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/server.ts): `server.ts`

### Google Workspace

- [Google account controls](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/GoogleAuthButton.tsx): `src/components/GoogleAuthButton.tsx`
- [Auth and modal state](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/context/GoogleAuthContext.tsx): `src/context/GoogleAuthContext.tsx`
- [Google sign-in](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/services/googleAuth.ts): `src/services/googleAuth.ts`
- [Drive file modal](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/GoogleDriveModal.tsx): `src/components/GoogleDriveModal.tsx`
- [Drive operations](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/services/googleDrive.ts): `src/services/googleDrive.ts`
- [Gmail sync modal](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/GmailSyncModal.tsx): `src/components/GmailSyncModal.tsx`
- [Gmail operations](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/services/googleGmail.ts): `src/services/googleGmail.ts`

### App runtime

- [App coordinator](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/App.tsx): `src/App.tsx`
- [Screen navigation](https://github.com/bvamsikiran/syllabus-to-study-plan-agent/blob/main/src/components/NavigationHeader.tsx): `src/components/NavigationHeader.tsx`

### Other components

- **Student**
- **Gemini AI**
- **Firebase Auth**
- **Google Workspace APIs**

## Connections

- Student → App coordinator: uses
- App coordinator → Screen navigation: renders
- App coordinator → Landing: renders
- App coordinator → Syllabus upload: renders
- App coordinator → Exam planning: renders
- App coordinator → Study bandwidth: renders
- App coordinator → Study resources: renders
- App coordinator → Master schedule: renders
- App coordinator → Study dashboard: renders
- App coordinator → Voice recall quiz: renders
- App coordinator → Handwriting analysis: renders
- App coordinator → Starter study data: loads defaults
- App coordinator → AI API endpoints: posts syllabus
- AI API endpoints → Gemini AI: requests analysis
- Google account controls → Auth and modal state: uses auth state
- App coordinator → Auth and modal state: provides auth
- Auth and modal state → Google sign-in: calls
- Google sign-in → Firebase Auth: authenticates
- App coordinator → Drive file modal: renders
- App coordinator → Gmail sync modal: renders
- Drive operations → Google Workspace APIs: reads and exports
- Gmail operations → Google Workspace APIs: syncs mail
