# technoyashvardhan/slotsync-cs architecture

> Architecture diagram of the GitHub repository technoyashvardhan/slotsync-cs, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/technoyashvardhan/slotsync-cs
- Repository: https://github.com/technoyashvardhan/slotsync-cs

## Overview

SlotSync CS is a browser-based departmental timetable and free-slot scheduling application. Users load or import schedule data, explore weekly and department-wide availability, and reserve one-off or recurring sessions after conflict checks. The README also documents CSV/PDF reporting and Gemini-assisted timetable questions and booking suggestions. The supplied excerpts confirm the app’s CSV parsing and demo-data loading, booking conflict checks, schedule inversion logic, and Gemini API calls; several view-to-service connections are documented capabilities but their implementation wiring was not sampled.

Main entry points: [`src/App.tsx`](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/App.tsx) (Application Shell), [`src/utils/timeUtils.ts`](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/timeUtils.ts) (Time Utilities), [`src/utils/csvParser.ts`](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/csvParser.ts) (CSV Parser), [`src/components/BookingModal.tsx`](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/BookingModal.tsx) (Booking Form)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_application["Application UI"]
  node_app["Application Shell<br/>[App.tsx]"]
  node_dashboard["Dashboard<br/>[DashboardView.tsx]"]
  node_finder["Free-Slot Finder<br/>[SlotFinderView.tsx]"]
  node_weekly["Weekly Timetable"]
  node_timeline["Schedule Matrix"]
  node_data_view["Data Center"]
end

subgraph group_schedule["Schedule Engine"]
  node_schedule_types["Schedule Types<br/>[schedule.ts]"]
  node_csv_parser["CSV Parser<br/>[csvParser.ts]"]
  node_schedule_engine["Slot Inversion<br/>[scheduleEngine.ts]"]
  node_time_utils["Time Utilities<br/>[timeUtils.ts]"]
  node_mock_data["Demo Schedule<br/>[mockData.ts]"]
end

subgraph group_booking["Booking and Conflicts"]
  node_booking_modal["Booking Form<br/>[BookingModal.tsx]"]
  node_conflicts["Conflict Checker<br/>[conflictChecker.ts]"]
end

subgraph group_integrations["AI and Reporting"]
  node_ai_modal["AI Copilot"]
  node_gemini["Gemini Service<br/>[geminiService.ts]"]
  node_markdown["Markdown Renderer<br/>[MarkdownView.tsx]"]
  node_exports["Schedule Export<br/>[exportUtils.ts]"]
end

node_user(("Department User"))
node_gemini_api{{"Google Gemini API"}}

node_user -->|"uses"| node_app
node_app -->|"shows"| node_dashboard
node_app -->|"shows"| node_finder
node_app -->|"shows"| node_weekly
node_app -->|"shows"| node_timeline
node_app -->|"shows"| node_data_view
node_app -->|"opens"| node_booking_modal
node_app -->|"opens"| node_ai_modal
node_app -->|"parses schedule"| node_csv_parser
node_app -->|"loads demo"| node_mock_data
node_csv_parser -->|"validates times"| node_time_utils
node_csv_parser -->|"produces rows"| node_schedule_types
node_schedule_engine -->|"formats slots"| node_time_utils
node_finder -->|"finds openings"| node_schedule_engine
node_booking_modal -->|"checks availability"| node_conflicts
node_conflicts -->|"checks intervals"| node_time_utils
node_booking_modal -->|"uses schedule data"| node_schedule_types
node_timeline -->|"renders schedule"| node_schedule_types
node_weekly -->|"gets week dates"| node_time_utils
node_ai_modal -->|"requests assistance"| node_gemini
node_gemini -.->|"sends prompts"| node_gemini_api
node_gemini -->|"returns response"| node_markdown
node_data_view -->|"exports reports"| node_exports

click node_app "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/App.tsx"
click node_dashboard "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/DashboardView.tsx"
click node_finder "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/SlotFinderView.tsx"
click node_weekly "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/WeeklyTimetableView.tsx"
click node_timeline "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/TimelineVisualizer.tsx"
click node_data_view "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/DataManagementView.tsx"
click node_schedule_types "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/types/schedule.ts"
click node_csv_parser "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/csvParser.ts"
click node_schedule_engine "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/scheduleEngine.ts"
click node_time_utils "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/timeUtils.ts"
click node_mock_data "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/data/mockData.ts"
click node_booking_modal "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/BookingModal.tsx"
click node_conflicts "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/conflictChecker.ts"
click node_ai_modal "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/GeminiAssistantModal.tsx"
click node_gemini "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/services/geminiService.ts"
click node_markdown "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/MarkdownView.tsx"
click node_exports "https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/exportUtils.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_app,node_dashboard,node_finder,node_weekly,node_timeline,node_data_view,node_user toneBlue
class node_schedule_types,node_csv_parser,node_schedule_engine,node_time_utils,node_mock_data toneAmber
class node_booking_modal,node_conflicts,node_gemini_api toneMint
class node_ai_modal,node_gemini,node_markdown,node_exports toneRose
```

## Components

### Application UI

- [Application Shell](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/App.tsx): `src/App.tsx`
- [Dashboard](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/DashboardView.tsx): `src/components/DashboardView.tsx`
- [Free-Slot Finder](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/SlotFinderView.tsx): `src/components/SlotFinderView.tsx`
- [Weekly Timetable](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/WeeklyTimetableView.tsx): `src/components/WeeklyTimetableView.tsx`
- [Schedule Matrix](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/TimelineVisualizer.tsx): `src/components/TimelineVisualizer.tsx`
- [Data Center](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/DataManagementView.tsx): `src/components/DataManagementView.tsx`

### Schedule Engine

- [Schedule Types](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/types/schedule.ts): `src/types/schedule.ts`
- [CSV Parser](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/csvParser.ts): `src/utils/csvParser.ts`
- [Slot Inversion](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/scheduleEngine.ts): `src/utils/scheduleEngine.ts`
- [Time Utilities](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/timeUtils.ts): `src/utils/timeUtils.ts`
- [Demo Schedule](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/data/mockData.ts): `src/data/mockData.ts`

### Booking and Conflicts

- [Booking Form](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/BookingModal.tsx): `src/components/BookingModal.tsx`
- [Conflict Checker](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/conflictChecker.ts): `src/utils/conflictChecker.ts`

### AI and Reporting

- [AI Copilot](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/GeminiAssistantModal.tsx): `src/components/GeminiAssistantModal.tsx`
- [Gemini Service](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/services/geminiService.ts): `src/services/geminiService.ts`
- [Markdown Renderer](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/components/MarkdownView.tsx): `src/components/MarkdownView.tsx`
- [Schedule Export](https://github.com/technoyashvardhan/slotsync-cs/blob/main/src/utils/exportUtils.ts): `src/utils/exportUtils.ts`

### Other components

- **Department User**
- **Google Gemini API**

## Connections

- Department User → Application Shell: uses
- Application Shell → Dashboard: shows
- Application Shell → Free-Slot Finder: shows
- Application Shell → Weekly Timetable: shows
- Application Shell → Schedule Matrix: shows
- Application Shell → Data Center: shows
- Application Shell → Booking Form: opens
- Application Shell → AI Copilot: opens
- Application Shell → CSV Parser: parses schedule
- Application Shell → Demo Schedule: loads demo
- CSV Parser → Time Utilities: validates times
- CSV Parser → Schedule Types: produces rows
- Slot Inversion → Time Utilities: formats slots
- Free-Slot Finder → Slot Inversion: finds openings
- Booking Form → Conflict Checker: checks availability
- Conflict Checker → Time Utilities: checks intervals
- Booking Form → Schedule Types: uses schedule data
- Schedule Matrix → Schedule Types: renders schedule
- Weekly Timetable → Time Utilities: gets week dates
- AI Copilot → Gemini Service: requests assistance
- Gemini Service → Google Gemini API: sends prompts
- Gemini Service → Markdown Renderer: returns response
- Data Center → Schedule Export: exports reports
