# tanmayagrawal21/tlp-portal architecture

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

## Overview

ManageTeach is a Django school-management application. Its user-facing workflow includes recording tutor attendance, then viewing tutor logs or student histories; separate routes support student and weekly-record browsing, tutor schedules, and registration. The graph groups these capabilities around Django routing, domain models, and the SQLite database present in the tree. Source excerpts establish view-to-model and route-to-view relationships; database configuration and some template behavior were not sampled, so those connections are left unverified where appropriate.

Main entry points: [`usersOnly/urls.py`](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/urls.py) (Tutor routes), [`main/models.py`](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/models.py) (Student and log data), [`tlp/urls.py`](https://github.com/tanmayagrawal21/tlp-portal/blob/main/tlp/urls.py) (Project routes), [`main/urls.py`](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/urls.py) (Public routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["Web routing"]
  node_django_routes["Project routes<br/>[urls.py]"]
  node_public_routes["Public routes<br/>[urls.py]"]
  node_tutor_routes["Tutor routes<br/>[urls.py]"]
end

subgraph group_records["Attendance and records"]
  node_home["Student directory<br/>[views.py]"]
  node_student_history["Student history<br/>[views.py]"]
  node_weekly_records["Weekly records<br/>[views.py]"]
  node_attendance["Attendance entry<br/>[views.py]"]
  node_tutor_logs["Tutor logs<br/>[views.py]"]
  node_home_template["Home page<br/>[home.html]"]
  node_history_template["Student details page"]
  node_records_template["Records page<br/>[records.html]"]
  node_attendance_template["Attendance page<br/>[attendence.html]"]
  node_logs_template["Tutor logs page<br/>[myLogs.html]"]
end

subgraph group_schedules["Tutor schedules"]
  node_schedule_edit["Edit schedule<br/>[views.py]"]
  node_my_slots["My slots<br/>[views.py]"]
  node_tutor_slots["Tutor slots<br/>[views.py]"]
  node_slot_model["Tutor slot data<br/>[models.py]"]
  node_schedule_template["Schedule editor page"]
  node_slots_template["My slots page<br/>[mySlots.html]"]
  node_tutor_slots_template["Tutor slots page<br/>[tutorSlots.html]"]
end

subgraph group_identity["Accounts and domain data"]
  node_record_models["Student and log data<br/>[models.py]"]
  node_registration["Registration<br/>[views.py]"]
  node_registration_form["Registration form<br/>[forms.py]"]
  node_auth["Django authentication"]
  node_registration_template["Registration page<br/>[register.html]"]
end

node_visitor(("Visitor or tutor"))
node_sqlite[("SQLite database<br/>[db.sqlite3]")]

node_visitor -->|"requests pages"| node_django_routes
node_django_routes -->|"includes routes"| node_public_routes
node_django_routes -->|"includes routes"| node_tutor_routes
node_django_routes -->|"routes registration"| node_registration
node_public_routes -->|"routes home"| node_home
node_public_routes -->|"routes history"| node_student_history
node_public_routes -->|"routes records"| node_weekly_records
node_tutor_routes -->|"routes attendance"| node_attendance
node_tutor_routes -->|"routes logs"| node_tutor_logs
node_tutor_routes -->|"routes schedule edit"| node_schedule_edit
node_tutor_routes -->|"routes slots"| node_my_slots
node_tutor_routes -->|"routes tutor slots"| node_tutor_slots
node_home -->|"queries students"| node_record_models
node_student_history -->|"queries student logs"| node_record_models
node_weekly_records -->|"queries daily logs"| node_record_models
node_attendance -->|"creates attendance logs"| node_record_models
node_tutor_logs -->|"queries tutor logs"| node_record_models
node_attendance -->|"renders"| node_attendance_template
node_tutor_logs -->|"renders"| node_logs_template
node_home -->|"renders"| node_home_template
node_student_history -->|"renders"| node_history_template
node_weekly_records -->|"renders"| node_records_template
node_schedule_edit -->|"replaces tutor slots"| node_slot_model
node_my_slots -->|"queries tutor slots"| node_slot_model
node_tutor_slots -->|"queries all slots"| node_slot_model
node_schedule_edit -->|"renders"| node_schedule_template
node_my_slots -->|"renders"| node_slots_template
node_tutor_slots -->|"renders"| node_tutor_slots_template
node_registration -->|"validates form"| node_registration_form
node_registration -->|"authenticates and logs in"| node_auth
node_registration -->|"renders"| node_registration_template
node_record_models -.->|"persists via ORM"| node_sqlite
node_slot_model -.->|"persists via ORM"| node_sqlite

click node_django_routes "https://github.com/tanmayagrawal21/tlp-portal/blob/main/tlp/urls.py"
click node_public_routes "https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/urls.py"
click node_tutor_routes "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/urls.py"
click node_home "https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/views.py"
click node_student_history "https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/views.py"
click node_weekly_records "https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/views.py"
click node_attendance "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py"
click node_tutor_logs "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py"
click node_record_models "https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/models.py"
click node_schedule_edit "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py"
click node_my_slots "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py"
click node_tutor_slots "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py"
click node_slot_model "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/models.py"
click node_registration "https://github.com/tanmayagrawal21/tlp-portal/blob/main/register/views.py"
click node_registration_form "https://github.com/tanmayagrawal21/tlp-portal/blob/main/register/forms.py"
click node_sqlite "https://github.com/tanmayagrawal21/tlp-portal/blob/main/db.sqlite3"
click node_home_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/templates/main/home.html"
click node_history_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/templates/main/studentDetails.html"
click node_records_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/templates/main/records.html"
click node_attendance_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/attendence.html"
click node_logs_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/myLogs.html"
click node_schedule_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/modifySchedule.html"
click node_slots_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/mySlots.html"
click node_tutor_slots_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/tutorSlots.html"
click node_registration_template "https://github.com/tanmayagrawal21/tlp-portal/blob/main/register/templates/register/register.html"

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_django_routes,node_public_routes,node_tutor_routes toneBlue
class node_home,node_student_history,node_weekly_records,node_attendance,node_tutor_logs,node_home_template,node_history_template,node_records_template,node_attendance_template,node_logs_template,node_sqlite toneAmber
class node_schedule_edit,node_my_slots,node_tutor_slots,node_slot_model,node_schedule_template,node_slots_template,node_tutor_slots_template toneMint
class node_record_models,node_registration,node_registration_form,node_auth,node_registration_template toneRose
class node_visitor toneIndigo
```

## Components

### Web routing

- [Project routes](https://github.com/tanmayagrawal21/tlp-portal/blob/main/tlp/urls.py): `tlp/urls.py`
- [Public routes](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/urls.py): `main/urls.py`
- [Tutor routes](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/urls.py): `usersOnly/urls.py`

### Attendance and records

- [Student directory](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/views.py): `main/views.py`
- [Student history](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/views.py): `main/views.py`
- [Weekly records](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/views.py): `main/views.py`
- [Attendance entry](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py): `usersOnly/views.py`
- [Tutor logs](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py): `usersOnly/views.py`
- [Home page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/templates/main/home.html): `main/templates/main/home.html`
- [Student details page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/templates/main/studentDetails.html): `main/templates/main/studentDetails.html`
- [Records page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/templates/main/records.html): `main/templates/main/records.html`
- [Attendance page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/attendence.html): `usersOnly/templates/usersOnly/attendence.html`
- [Tutor logs page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/myLogs.html): `usersOnly/templates/usersOnly/myLogs.html`

### Tutor schedules

- [Edit schedule](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py): `usersOnly/views.py`
- [My slots](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py): `usersOnly/views.py`
- [Tutor slots](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/views.py): `usersOnly/views.py`
- [Tutor slot data](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/models.py): `usersOnly/models.py`
- [Schedule editor page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/modifySchedule.html): `usersOnly/templates/usersOnly/modifySchedule.html`
- [My slots page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/mySlots.html): `usersOnly/templates/usersOnly/mySlots.html`
- [Tutor slots page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/usersOnly/templates/usersOnly/tutorSlots.html): `usersOnly/templates/usersOnly/tutorSlots.html`

### Accounts and domain data

- [Student and log data](https://github.com/tanmayagrawal21/tlp-portal/blob/main/main/models.py): `main/models.py`
- [Registration](https://github.com/tanmayagrawal21/tlp-portal/blob/main/register/views.py): `register/views.py`
- [Registration form](https://github.com/tanmayagrawal21/tlp-portal/blob/main/register/forms.py): `register/forms.py`
- **Django authentication**
- [Registration page](https://github.com/tanmayagrawal21/tlp-portal/blob/main/register/templates/register/register.html): `register/templates/register/register.html`

### Other components

- **Visitor or tutor**
- [SQLite database](https://github.com/tanmayagrawal21/tlp-portal/blob/main/db.sqlite3): `db.sqlite3`

## Connections

- Visitor or tutor → Project routes: requests pages (evidence: `tlp/urls.py`)
- Project routes → Public routes: includes routes (evidence: `tlp/urls.py`)
- Project routes → Tutor routes: includes routes (evidence: `tlp/urls.py`)
- Project routes → Registration: routes registration (evidence: `tlp/urls.py`)
- Public routes → Student directory: routes home (evidence: `main/urls.py`)
- Public routes → Student history: routes history (evidence: `main/urls.py`)
- Public routes → Weekly records: routes records (evidence: `main/urls.py`)
- Tutor routes → Attendance entry: routes attendance (evidence: `usersOnly/urls.py`)
- Tutor routes → Tutor logs: routes logs (evidence: `usersOnly/urls.py`)
- Tutor routes → Edit schedule: routes schedule edit (evidence: `usersOnly/urls.py`)
- Tutor routes → My slots: routes slots (evidence: `usersOnly/urls.py`)
- Tutor routes → Tutor slots: routes tutor slots (evidence: `usersOnly/urls.py`)
- Student directory → Student and log data: queries students (evidence: `main/views.py`)
- Student history → Student and log data: queries student logs (evidence: `main/views.py`)
- Weekly records → Student and log data: queries daily logs (evidence: `main/views.py`)
- Attendance entry → Student and log data: creates attendance logs (evidence: `usersOnly/views.py`)
- Tutor logs → Student and log data: queries tutor logs (evidence: `usersOnly/views.py`)
- Attendance entry → Attendance page: renders (evidence: `usersOnly/views.py`)
- Tutor logs → Tutor logs page: renders (evidence: `usersOnly/views.py`)
- Student directory → Home page: renders (evidence: `main/views.py`)
- Student history → Student details page: renders (evidence: `main/views.py`)
- Weekly records → Records page: renders (evidence: `main/views.py`)
- Edit schedule → Tutor slot data: replaces tutor slots (evidence: `usersOnly/views.py`)
- My slots → Tutor slot data: queries tutor slots (evidence: `usersOnly/views.py`)
- Tutor slots → Tutor slot data: queries all slots (evidence: `usersOnly/views.py`)
- Edit schedule → Schedule editor page: renders (evidence: `usersOnly/views.py`)
- My slots → My slots page: renders (evidence: `usersOnly/views.py`)
- Tutor slots → Tutor slots page: renders (evidence: `usersOnly/views.py`)
- Registration → Registration form: validates form (evidence: `register/views.py`)
- Registration → Django authentication: authenticates and logs in (evidence: `register/views.py`)
- Registration → Registration page: renders (evidence: `register/views.py`)
- Student and log data → SQLite database: persists via ORM
- Tutor slot data → SQLite database: persists via ORM
