# jayeemmmm0930/bsswstreamlit architecture

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

- Interactive diagram: https://gitdiagram.com/jayeemmmm0930/bsswstreamlit
- Repository: https://github.com/jayeemmmm0930/bsswstreamlit

## Overview

This is a Streamlit registrar and academic-performance dashboard for administrators, faculty, and students. Users log in, enter a role-specific dashboard, and select reports for enrollment, academic standing, grades, curriculum progress, and student performance; many views offer charts or exports. The sampled code shows collection loading from a local pickle cache with MongoDB fallback, and role checks in the login and report views. Most page implementations and some navigation wiring were not sampled, so those feature links reflect the sidebar’s documented menu rather than inspected page internals.

Main entry points: [`includes/sidebar.py`](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/includes/sidebar.py) (Role navigation), [`app.py`](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/app.py) (Login and roles), [`data_collection.py`](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/data_collection.py) (Collection loader), [`pages/dashboard.py`](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/dashboard.py) (Dashboard entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Access and Navigation"]
  node_login["Login and roles<br/>[app.py]"]
  node_sidebar["Role navigation<br/>[sidebar.py]"]
  node_dashboard["Dashboard entry<br/>[dashboard.py]"]
end

subgraph group_registrar["Registrar Reports"]
  node_academic["Academic standing"]
  node_passfail["Pass/fail distribution<br/>[pass_failed.py]"]
  node_enrollment["Enrollment trends<br/>[enrollment.py]"]
  node_incomplete["Incomplete grades<br/>[inc.py]"]
  node_retention["Retention and dropout<br/>[drop.py]"]
  node_highest["Top performers<br/>[highest.py]"]
  node_curriculum["Curriculum advising<br/>[curriculum_view.py]"]
end

subgraph group_faculty["Faculty Reports"]
  node_classgrade["Class grade distribution<br/>[class_grade.py]"]
  node_progress["Student progress"]
  node_subjectdifficulty["Subject difficulty heatmap"]
  node_intervention["Intervention candidates"]
  node_submission["Grade submission status"]
  node_query["Custom grade queries<br/>[query_builder.py]"]
  node_gradeanalytics["Teacher grade analytics<br/>[grade_analytics.py]"]
end

subgraph group_student["Student Reports"]
  node_transcript["Academic transcript"]
  node_trend["Performance trends"]
  node_studentdifficulty["Subject difficulty ratings"]
  node_comparison["Class average comparison"]
  node_passedsummary["Passed vs failed"]
  node_studentcurriculum["Curriculum and subjects"]
end

subgraph group_data["Data Access"]
  node_collections["Collection loader<br/>[data_collection.py]"]
  node_mongo[("MongoDB")]
  node_cache["Pickle data cache<br/>[data_cache.pkl]"]
end

node_user(("Dashboard user"))

node_user -->|"enters credentials"| node_login
node_login -->|"reads user records"| node_collections
node_login -->|"opens after login"| node_dashboard
node_dashboard -->|"renders navigation"| node_sidebar
node_sidebar -->|"dispatches report"| node_academic
node_sidebar -->|"dispatches report"| node_passfail
node_sidebar -->|"dispatches report"| node_enrollment
node_sidebar -->|"dispatches report"| node_incomplete
node_sidebar -->|"dispatches report"| node_retention
node_sidebar -->|"dispatches report"| node_highest
node_sidebar -->|"dispatches report"| node_curriculum
node_sidebar -->|"dispatches report"| node_classgrade
node_sidebar -->|"dispatches report"| node_progress
node_sidebar -->|"dispatches report"| node_subjectdifficulty
node_sidebar -->|"dispatches report"| node_intervention
node_sidebar -->|"dispatches report"| node_submission
node_sidebar -->|"dispatches report"| node_query
node_sidebar -->|"dispatches report"| node_gradeanalytics
node_sidebar -->|"dispatches report"| node_transcript
node_sidebar -->|"dispatches report"| node_trend
node_sidebar -->|"dispatches report"| node_studentdifficulty
node_sidebar -->|"dispatches report"| node_comparison
node_sidebar -->|"dispatches report"| node_passedsummary
node_sidebar -->|"dispatches report"| node_studentcurriculum
node_collections -->|"loads or saves"| node_cache
node_collections -->|"fetches collections"| node_mongo

click node_login "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/app.py"
click node_sidebar "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/includes/sidebar.py"
click node_dashboard "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/dashboard.py"
click node_collections "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/data_collection.py"
click node_cache "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/data_cache.pkl"
click node_academic "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/student_academic.py"
click node_passfail "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/pass_failed.py"
click node_enrollment "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/enrollment.py"
click node_incomplete "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/inc.py"
click node_retention "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/drop.py"
click node_highest "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/highest.py"
click node_curriculum "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/curriculum_view.py"
click node_classgrade "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/class_grade.py"
click node_progress "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/student_progress_view.py"
click node_subjectdifficulty "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/subject_difficulty.py"
click node_intervention "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/intervention_candidates.py"
click node_submission "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/submission_status.py"
click node_query "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/query_builder.py"
click node_gradeanalytics "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/grade_analytics.py"
click node_transcript "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/transcript_viewer.py"
click node_trend "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/performance_trend.py"
click node_studentdifficulty "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/student_subject_difficulty.py"
click node_comparison "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/comparison_with_class_average.py"
click node_passedsummary "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/passed_vs_failed_summary.py"
click node_studentcurriculum "https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/student_curriculum_viewer.py"

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_login,node_sidebar,node_dashboard,node_user toneBlue
class node_academic,node_passfail,node_enrollment,node_incomplete,node_retention,node_highest,node_curriculum toneAmber
class node_classgrade,node_progress,node_subjectdifficulty,node_intervention,node_submission,node_query,node_gradeanalytics toneMint
class node_transcript,node_trend,node_studentdifficulty,node_comparison,node_passedsummary,node_studentcurriculum toneRose
class node_collections,node_mongo,node_cache toneIndigo
```

## Components

### Access and Navigation

- [Login and roles](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/app.py): `app.py`
- [Role navigation](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/includes/sidebar.py): `includes/sidebar.py`
- [Dashboard entry](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/dashboard.py): `pages/dashboard.py`

### Registrar Reports

- [Academic standing](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/student_academic.py): `pages/student_academic.py`
- [Pass/fail distribution](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/pass_failed.py): `pages/pass_failed.py`
- [Enrollment trends](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/enrollment.py): `pages/enrollment.py`
- [Incomplete grades](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/inc.py): `pages/inc.py`
- [Retention and dropout](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/drop.py): `pages/drop.py`
- [Top performers](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/highest.py): `pages/highest.py`
- [Curriculum advising](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/curriculum_view.py): `pages/curriculum_view.py`

### Faculty Reports

- [Class grade distribution](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/class_grade.py): `pages/class_grade.py`
- [Student progress](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/student_progress_view.py): `pages/student_progress_view.py`
- [Subject difficulty heatmap](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/subject_difficulty.py): `pages/subject_difficulty.py`
- [Intervention candidates](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/intervention_candidates.py): `pages/intervention_candidates.py`
- [Grade submission status](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/submission_status.py): `pages/submission_status.py`
- [Custom grade queries](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/query_builder.py): `pages/query_builder.py`
- [Teacher grade analytics](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/grade_analytics.py): `pages/grade_analytics.py`

### Student Reports

- [Academic transcript](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/transcript_viewer.py): `pages/transcript_viewer.py`
- [Performance trends](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/performance_trend.py): `pages/performance_trend.py`
- [Subject difficulty ratings](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/student_subject_difficulty.py): `pages/student_subject_difficulty.py`
- [Class average comparison](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/comparison_with_class_average.py): `pages/comparison_with_class_average.py`
- [Passed vs failed](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/passed_vs_failed_summary.py): `pages/passed_vs_failed_summary.py`
- [Curriculum and subjects](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/pages/student_curriculum_viewer.py): `pages/student_curriculum_viewer.py`

### Data Access

- [Collection loader](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/data_collection.py): `data_collection.py`
- **MongoDB**
- [Pickle data cache](https://github.com/jayeemmmm0930/bsswstreamlit/blob/main/data_cache.pkl): `data_cache.pkl`

### Other components

- **Dashboard user**

## Connections

- Dashboard user → Login and roles: enters credentials
- Login and roles → Collection loader: reads user records
- Login and roles → Dashboard entry: opens after login
- Dashboard entry → Role navigation: renders navigation
- Role navigation → Academic standing: dispatches report
- Role navigation → Pass/fail distribution: dispatches report
- Role navigation → Enrollment trends: dispatches report
- Role navigation → Incomplete grades: dispatches report
- Role navigation → Retention and dropout: dispatches report
- Role navigation → Top performers: dispatches report
- Role navigation → Curriculum advising: dispatches report
- Role navigation → Class grade distribution: dispatches report
- Role navigation → Student progress: dispatches report
- Role navigation → Subject difficulty heatmap: dispatches report
- Role navigation → Intervention candidates: dispatches report
- Role navigation → Grade submission status: dispatches report
- Role navigation → Custom grade queries: dispatches report
- Role navigation → Teacher grade analytics: dispatches report
- Role navigation → Academic transcript: dispatches report
- Role navigation → Performance trends: dispatches report
- Role navigation → Subject difficulty ratings: dispatches report
- Role navigation → Class average comparison: dispatches report
- Role navigation → Passed vs failed: dispatches report
- Role navigation → Curriculum and subjects: dispatches report
- Collection loader → Pickle data cache: loads or saves
- Collection loader → MongoDB: fetches collections
