# prosnigdho/smart-calendar architecture

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

- Interactive diagram: https://gitdiagram.com/prosnigdho/smart-calendar
- Repository: https://github.com/prosnigdho/smart-calendar

## Overview

This is a React calendar application with email/Google sign-in, registration, a user-specific event calendar, upcoming-event listing, and profile editing. The principal flow routes users through authentication into the dashboard, where calendar events are loaded and managed in Firestore. The graph also captures dashboard composition and the separate sidebar event query. Source excerpts support these connections; unsampled UI details and any additional capabilities are not inferred.

Main entry points: [`src/components/dashboard/Dashboard.jsx`](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/Dashboard.jsx) (Dashboard), [`src/firebase/Firebase.jsx`](https://github.com/prosnigdho/smart-calendar/blob/main/src/firebase/Firebase.jsx) (Firebase setup), [`src/App.jsx`](https://github.com/prosnigdho/smart-calendar/blob/main/src/App.jsx) (App routes), [`src/components/auth/login/Login.jsx`](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/auth/login/Login.jsx) (Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["App routing"]
  node_app["App routes<br/>[App.jsx]"]
end

subgraph group_identity["Authentication"]
  node_login["Login<br/>[Login.jsx]"]
  node_registration["Registration<br/>[Registration.jsx]"]
end

subgraph group_calendar["Calendar workspace"]
  node_dashboard["Dashboard<br/>[Dashboard.jsx]"]
  node_calendarview["Calendar events"]
  node_sidebar["Upcoming events<br/>[Sidebar.jsx]"]
  node_navbar["Account navbar<br/>[Navbar.jsx]"]
  node_profile["Profile editor<br/>[ProfileModal.jsx]"]
end

subgraph group_backend["Firebase services"]
  node_firebase["Firebase setup<br/>[Firebase.jsx]"]
  node_authservice["Firebase Auth"]
  node_firestore[("Cloud Firestore")]
end

node_user(("User"))

node_user -->|"uses"| node_app
node_app -->|"routes to"| node_login
node_app -->|"routes to"| node_registration
node_app -->|"routes to"| node_dashboard
node_login -->|"requests sign-in"| node_firebase
node_registration -->|"requests registration"| node_firebase
node_login -->|"navigates after sign-in"| node_dashboard
node_dashboard -->|"loads user events"| node_firebase
node_dashboard -->|"renders"| node_navbar
node_dashboard -->|"renders"| node_calendarview
node_dashboard -->|"renders"| node_sidebar
node_dashboard -->|"renders"| node_profile
node_calendarview -->|"reads and writes events"| node_firestore
node_sidebar -->|"reads upcoming events"| node_firestore
node_navbar -->|"requests sign-out"| node_firebase
node_profile -->|"updates profile"| node_firebase
node_firebase -->|"configures"| node_authservice
node_firebase -->|"initializes"| node_firestore

click node_app "https://github.com/prosnigdho/smart-calendar/blob/main/src/App.jsx"
click node_login "https://github.com/prosnigdho/smart-calendar/blob/main/src/components/auth/login/Login.jsx"
click node_registration "https://github.com/prosnigdho/smart-calendar/blob/main/src/components/auth/registration/Registration.jsx"
click node_dashboard "https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/Dashboard.jsx"
click node_calendarview "https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/CalendarSection.jsx"
click node_sidebar "https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/Sidebar.jsx"
click node_navbar "https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/Navbar.jsx"
click node_profile "https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/ProfileModal.jsx"
click node_firebase "https://github.com/prosnigdho/smart-calendar/blob/main/src/firebase/Firebase.jsx"

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_user toneBlue
class node_login,node_registration toneAmber
class node_dashboard,node_calendarview,node_sidebar,node_navbar,node_profile toneMint
class node_firebase,node_authservice,node_firestore toneRose
```

## Components

### App routing

- [App routes](https://github.com/prosnigdho/smart-calendar/blob/main/src/App.jsx): `src/App.jsx`

### Authentication

- [Login](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/auth/login/Login.jsx): `src/components/auth/login/Login.jsx`
- [Registration](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/auth/registration/Registration.jsx): `src/components/auth/registration/Registration.jsx`

### Calendar workspace

- [Dashboard](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/Dashboard.jsx): `src/components/dashboard/Dashboard.jsx`
- [Calendar events](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/CalendarSection.jsx): `src/components/dashboard/CalendarSection.jsx`
- [Upcoming events](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/Sidebar.jsx): `src/components/dashboard/Sidebar.jsx`
- [Account navbar](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/Navbar.jsx): `src/components/dashboard/Navbar.jsx`
- [Profile editor](https://github.com/prosnigdho/smart-calendar/blob/main/src/components/dashboard/ProfileModal.jsx): `src/components/dashboard/ProfileModal.jsx`

### Firebase services

- [Firebase setup](https://github.com/prosnigdho/smart-calendar/blob/main/src/firebase/Firebase.jsx): `src/firebase/Firebase.jsx`
- **Firebase Auth**
- **Cloud Firestore**

### Other components

- **User**

## Connections

- User → App routes: uses
- App routes → Login: routes to (evidence: `src/App.jsx`)
- App routes → Registration: routes to (evidence: `src/App.jsx`)
- App routes → Dashboard: routes to (evidence: `src/App.jsx`)
- Login → Firebase setup: requests sign-in (evidence: `src/components/auth/login/Login.jsx`)
- Registration → Firebase setup: requests registration (evidence: `src/components/auth/registration/Registration.jsx`)
- Login → Dashboard: navigates after sign-in (evidence: `src/components/auth/login/Login.jsx`)
- Dashboard → Firebase setup: loads user events (evidence: `src/components/dashboard/Dashboard.jsx`)
- Dashboard → Account navbar: renders (evidence: `src/components/dashboard/Dashboard.jsx`)
- Dashboard → Calendar events: renders (evidence: `src/components/dashboard/Dashboard.jsx`)
- Dashboard → Upcoming events: renders (evidence: `src/components/dashboard/Dashboard.jsx`)
- Dashboard → Profile editor: renders (evidence: `src/components/dashboard/Dashboard.jsx`)
- Calendar events → Cloud Firestore: reads and writes events (evidence: `src/components/dashboard/CalendarSection.jsx`)
- Upcoming events → Cloud Firestore: reads upcoming events (evidence: `src/components/dashboard/Sidebar.jsx`)
- Account navbar → Firebase setup: requests sign-out (evidence: `src/components/dashboard/Navbar.jsx`)
- Profile editor → Firebase setup: updates profile (evidence: `src/components/dashboard/ProfileModal.jsx`)
- Firebase setup → Firebase Auth: configures (evidence: `src/firebase/Firebase.jsx`)
- Firebase setup → Cloud Firestore: initializes (evidence: `src/firebase/Firebase.jsx`)
