# genotr/mahas architecture

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

- Interactive diagram: https://gitdiagram.com/genotr/mahas
- Repository: https://github.com/genotr/mahas

## Overview

This is a student productivity and campus-life portal: users enter through the app shell, authenticate, and navigate to dashboard and dedicated academic, deadline, learning, wellbeing, advising, and campus-life views. The shell owns shared state and routes view data; task deadlines also use a date helper. The README is generic and documents no feature workflow. Connections below reflect the App and component excerpts or source-index references; unsampled integrations and persistence behavior are not inferred.

Main entry points: [`src/App.tsx`](https://github.com/genotr/mahas/blob/main/src/App.tsx) (App shell and routing), [`src/types.ts`](https://github.com/genotr/mahas/blob/main/src/types.ts) (Domain types and GPA), [`src/components/TugasView.tsx`](https://github.com/genotr/mahas/blob/main/src/components/TugasView.tsx) (Tasks and deadlines), [`src/firebase.ts`](https://github.com/genotr/mahas/blob/main/src/firebase.ts) (Firebase setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["App shell"]
  node_app["App shell and routing<br/>[App.tsx]"]
  node_firebase["Firebase setup<br/>[firebase.ts]"]
  node_dashboard["Home dashboard<br/>[BerandaView.tsx]"]
  node_landing["Landing page<br/>[LandingPage.tsx]"]
  node_browser["Browser entry<br/>[main.tsx]"]
end

subgraph group_study["Study management"]
  node_academics["Academic records<br/>[AkademikView.tsx]"]
  node_tasks["Tasks and deadlines<br/>[TugasView.tsx]"]
  node_datehelper["Deadline date helper<br/>[taskDateHelper.ts]"]
end

subgraph group_support["Learning and wellbeing"]
  node_learning["Study workspace"]
  node_transcription["Text and audio<br/>[TeksSuaraView.tsx]"]
  node_wellbeing["Mental health"]
  node_advising["Guidance simulation"]
end

subgraph group_campus["Campus services"]
  node_campuslife["Campus services<br/>[ZonamuView.tsx]"]
end

subgraph group_foundation["Shared data"]
  node_initialdata["Initial campus data<br/>[data.ts]"]
  node_types["Domain types and GPA<br/>[types.ts]"]
end

node_student(("Student"))
node_firebaseauth{{"Firebase Auth"}}

node_student -->|"opens"| node_browser
node_browser -->|"renders"| node_app
node_app -->|"routes to"| node_landing
node_app -->|"renders"| node_dashboard
node_app -->|"renders"| node_academics
node_app -->|"routes to"| node_tasks
node_app -->|"routes to"| node_learning
node_app -->|"routes to"| node_transcription
node_app -->|"routes to"| node_wellbeing
node_app -->|"routes to"| node_advising
node_app -->|"routes to"| node_campuslife
node_app -->|"uses auth setup"| node_firebase
node_firebase -->|"configures"| node_firebaseauth
node_tasks -->|"syncs deadlines"| node_datehelper
node_app -->|"loads"| node_initialdata
node_app -->|"uses"| node_types
node_tasks -->|"uses"| node_types
node_academics -->|"uses"| node_types
node_learning -->|"uses"| node_types
node_transcription -->|"uses"| node_types
node_wellbeing -->|"uses"| node_types
node_campuslife -->|"uses"| node_types
node_dashboard -->|"uses"| node_types

click node_app "https://github.com/genotr/mahas/blob/main/src/App.tsx"
click node_firebase "https://github.com/genotr/mahas/blob/main/src/firebase.ts"
click node_dashboard "https://github.com/genotr/mahas/blob/main/src/components/BerandaView.tsx"
click node_landing "https://github.com/genotr/mahas/blob/main/src/components/LandingPage.tsx"
click node_academics "https://github.com/genotr/mahas/blob/main/src/components/AkademikView.tsx"
click node_tasks "https://github.com/genotr/mahas/blob/main/src/components/TugasView.tsx"
click node_datehelper "https://github.com/genotr/mahas/blob/main/src/utils/taskDateHelper.ts"
click node_learning "https://github.com/genotr/mahas/blob/main/src/components/RuangBelajarView.tsx"
click node_transcription "https://github.com/genotr/mahas/blob/main/src/components/TeksSuaraView.tsx"
click node_wellbeing "https://github.com/genotr/mahas/blob/main/src/components/MentalHealthView.tsx"
click node_advising "https://github.com/genotr/mahas/blob/main/src/components/SimulasiBimbinganView.tsx"
click node_campuslife "https://github.com/genotr/mahas/blob/main/src/components/ZonamuView.tsx"
click node_initialdata "https://github.com/genotr/mahas/blob/main/src/data.ts"
click node_types "https://github.com/genotr/mahas/blob/main/src/types.ts"
click node_browser "https://github.com/genotr/mahas/blob/main/src/main.tsx"

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_firebase,node_dashboard,node_landing,node_browser toneBlue
class node_academics,node_tasks,node_datehelper toneAmber
class node_learning,node_transcription,node_wellbeing,node_advising toneMint
class node_campuslife toneRose
class node_initialdata,node_types,node_student,node_firebaseauth toneIndigo
```

## Components

### App shell

- [App shell and routing](https://github.com/genotr/mahas/blob/main/src/App.tsx): `src/App.tsx`
- [Firebase setup](https://github.com/genotr/mahas/blob/main/src/firebase.ts): `src/firebase.ts`
- [Home dashboard](https://github.com/genotr/mahas/blob/main/src/components/BerandaView.tsx): `src/components/BerandaView.tsx`
- [Landing page](https://github.com/genotr/mahas/blob/main/src/components/LandingPage.tsx): `src/components/LandingPage.tsx`
- [Browser entry](https://github.com/genotr/mahas/blob/main/src/main.tsx): `src/main.tsx`

### Study management

- [Academic records](https://github.com/genotr/mahas/blob/main/src/components/AkademikView.tsx): `src/components/AkademikView.tsx`
- [Tasks and deadlines](https://github.com/genotr/mahas/blob/main/src/components/TugasView.tsx): `src/components/TugasView.tsx`
- [Deadline date helper](https://github.com/genotr/mahas/blob/main/src/utils/taskDateHelper.ts): `src/utils/taskDateHelper.ts`

### Learning and wellbeing

- [Study workspace](https://github.com/genotr/mahas/blob/main/src/components/RuangBelajarView.tsx): `src/components/RuangBelajarView.tsx`
- [Text and audio](https://github.com/genotr/mahas/blob/main/src/components/TeksSuaraView.tsx): `src/components/TeksSuaraView.tsx`
- [Mental health](https://github.com/genotr/mahas/blob/main/src/components/MentalHealthView.tsx): `src/components/MentalHealthView.tsx`
- [Guidance simulation](https://github.com/genotr/mahas/blob/main/src/components/SimulasiBimbinganView.tsx): `src/components/SimulasiBimbinganView.tsx`

### Campus services

- [Campus services](https://github.com/genotr/mahas/blob/main/src/components/ZonamuView.tsx): `src/components/ZonamuView.tsx`

### Shared data

- [Initial campus data](https://github.com/genotr/mahas/blob/main/src/data.ts): `src/data.ts`
- [Domain types and GPA](https://github.com/genotr/mahas/blob/main/src/types.ts): `src/types.ts`

### Other components

- **Student**
- **Firebase Auth**

## Connections

- Student → Browser entry: opens (evidence: `src/main.tsx`)
- Browser entry → App shell and routing: renders (evidence: `src/main.tsx`)
- App shell and routing → Landing page: routes to (evidence: `src/App.tsx`)
- App shell and routing → Home dashboard: renders (evidence: `src/App.tsx`)
- App shell and routing → Academic records: renders (evidence: `src/App.tsx`)
- App shell and routing → Tasks and deadlines: routes to (evidence: `src/App.tsx`)
- App shell and routing → Study workspace: routes to (evidence: `src/App.tsx`)
- App shell and routing → Text and audio: routes to (evidence: `src/App.tsx`)
- App shell and routing → Mental health: routes to (evidence: `src/App.tsx`)
- App shell and routing → Guidance simulation: routes to (evidence: `src/App.tsx`)
- App shell and routing → Campus services: routes to (evidence: `src/App.tsx`)
- App shell and routing → Firebase setup: uses auth setup (evidence: `src/App.tsx`)
- Firebase setup → Firebase Auth: configures (evidence: `src/firebase.ts`)
- Tasks and deadlines → Deadline date helper: syncs deadlines (evidence: `src/components/TugasView.tsx`)
- App shell and routing → Initial campus data: loads (evidence: `src/App.tsx`)
- App shell and routing → Domain types and GPA: uses (evidence: `src/App.tsx`)
- Tasks and deadlines → Domain types and GPA: uses (evidence: `src/components/TugasView.tsx`)
- Academic records → Domain types and GPA: uses (evidence: `src/components/AkademikView.tsx`)
- Study workspace → Domain types and GPA: uses (evidence: `src/components/RuangBelajarView.tsx`)
- Text and audio → Domain types and GPA: uses (evidence: `src/components/TeksSuaraView.tsx`)
- Mental health → Domain types and GPA: uses (evidence: `src/components/MentalHealthView.tsx`)
- Campus services → Domain types and GPA: uses (evidence: `src/components/ZonamuView.tsx`)
- Home dashboard → Domain types and GPA: uses (evidence: `src/components/BerandaView.tsx`)
