# gitusermanish/school-portal architecture

> Architecture diagram of the GitHub repository gitusermanish/school-portal, 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/gitusermanish/school-portal
- Repository: https://github.com/gitusermanish/school-portal

## Overview

This is a React school-management portal. The implemented user-to-result flow is account registration or sign-in, Firebase authentication, profile creation or lookup in Firestore, and a successful-authentication view in the app. The README also describes role-based portals, assignments, attendance, classes, and school information, but those feature implementations are not present in the supplied tree or sampled source; they are shown as documented capabilities without inferred runtime connections.

Main entry points: [`src/components/Auth.jsx`](https://github.com/gitusermanish/school-portal/blob/main/src/components/Auth.jsx) (Sign-in / register), [`src/App.jsx`](https://github.com/gitusermanish/school-portal/blob/main/src/App.jsx) (App state), [`src`](https://github.com/gitusermanish/school-portal/tree/main/src) (Student work upload), [`src/firebase.js`](https://github.com/gitusermanish/school-portal/blob/main/src/firebase.js) (Firebase setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity &amp; Profiles"]
  node_app["App state<br/>[App.jsx]"]
  node_auth_ui["Sign-in / register<br/>[Auth.jsx]"]
  node_profile["User profile<br/>[Auth.jsx]"]
  node_welcome["Auth success view<br/>[App.jsx]"]
end

subgraph group_school["School Operations"]
  node_role_portals["Role-based portals"]
  node_assignments["Assignments &amp; homework"]
  node_work_upload["Student work upload"]
  node_attendance["Attendance register"]
  node_classes["Class rosters &amp; schedules"]
  node_calendar["Calendar &amp; directory"]
end

subgraph group_platform["Platform Services"]
  node_firebase_config["Firebase setup<br/>[firebase.js]"]
  node_firebase_auth["Firebase Auth"]
  node_firestore[("Cloud Firestore")]
  node_cloud_storage[("Cloud Storage")]
end

node_user(("School user"))

node_user -->|"opens portal"| node_app
node_app -->|"renders"| node_auth_ui
node_auth_ui -->|"uses clients"| node_firebase_config
node_auth_ui -->|"registers / signs in"| node_firebase_auth
node_auth_ui -->|"writes / reads profile"| node_firestore
node_auth_ui -->|"builds / loads"| node_profile
node_auth_ui -->|"passes successful profile"| node_app
node_app -->|"renders when authenticated"| node_welcome
node_work_upload -.->|"uploads work &#40;documented&#41;"| node_cloud_storage

click node_app "https://github.com/gitusermanish/school-portal/blob/main/src/App.jsx"
click node_auth_ui "https://github.com/gitusermanish/school-portal/blob/main/src/components/Auth.jsx"
click node_firebase_config "https://github.com/gitusermanish/school-portal/blob/main/src/firebase.js"
click node_profile "https://github.com/gitusermanish/school-portal/blob/main/src/components/Auth.jsx"
click node_welcome "https://github.com/gitusermanish/school-portal/blob/main/src/App.jsx"
click node_role_portals "https://github.com/gitusermanish/school-portal/tree/main/src"
click node_assignments "https://github.com/gitusermanish/school-portal/tree/main/src"
click node_work_upload "https://github.com/gitusermanish/school-portal/tree/main/src"
click node_attendance "https://github.com/gitusermanish/school-portal/tree/main/src"
click node_classes "https://github.com/gitusermanish/school-portal/tree/main/src"
click node_calendar "https://github.com/gitusermanish/school-portal/tree/main/src"

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_auth_ui,node_profile,node_welcome,node_user toneBlue
class node_role_portals,node_assignments,node_work_upload,node_attendance,node_classes,node_calendar toneAmber
class node_firebase_config,node_firebase_auth,node_firestore,node_cloud_storage toneMint
```

## Components

### Identity & Profiles

- [App state](https://github.com/gitusermanish/school-portal/blob/main/src/App.jsx): `src/App.jsx`
- [Sign-in / register](https://github.com/gitusermanish/school-portal/blob/main/src/components/Auth.jsx): `src/components/Auth.jsx`
- [User profile](https://github.com/gitusermanish/school-portal/blob/main/src/components/Auth.jsx): `src/components/Auth.jsx`
- [Auth success view](https://github.com/gitusermanish/school-portal/blob/main/src/App.jsx): `src/App.jsx`

### School Operations

- [Role-based portals](https://github.com/gitusermanish/school-portal/tree/main/src): `src`
- [Assignments & homework](https://github.com/gitusermanish/school-portal/tree/main/src): `src`
- [Student work upload](https://github.com/gitusermanish/school-portal/tree/main/src): `src`
- [Attendance register](https://github.com/gitusermanish/school-portal/tree/main/src): `src`
- [Class rosters & schedules](https://github.com/gitusermanish/school-portal/tree/main/src): `src`
- [Calendar & directory](https://github.com/gitusermanish/school-portal/tree/main/src): `src`

### Platform Services

- [Firebase setup](https://github.com/gitusermanish/school-portal/blob/main/src/firebase.js): `src/firebase.js`
- **Firebase Auth**
- **Cloud Firestore**
- **Cloud Storage**

### Other components

- **School user**

## Connections

- School user → App state: opens portal
- App state → Sign-in / register: renders
- Sign-in / register → Firebase setup: uses clients
- Sign-in / register → Firebase Auth: registers / signs in
- Sign-in / register → Cloud Firestore: writes / reads profile
- Sign-in / register → User profile: builds / loads
- Sign-in / register → App state: passes successful profile
- App state → Auth success view: renders when authenticated
- Student work upload → Cloud Storage: uploads work (documented)
