# student-dev0826/citecschedulingapp architecture

> Architecture diagram of the GitHub repository student-dev0826/citecschedulingapp, 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/student-dev0826/citecschedulingapp
- Repository: https://github.com/student-dev0826/citecschedulingapp

## Overview

CitecScheduling is an Android scheduling app with a PHP/MySQL backend. Its visible product areas cover student and faculty access, booking and appointment workflows, schedules, availability, faculty schedule transfers, and profile functions. The sampled backend confirms registration and login APIs using a shared database connection; the Android implementation and scheduling API behavior were not excerpted, so those connections are shown only as unverified dashed links. The repository provides no README description.

Main entry points: [`app/src/main/java/com/example/citecschedulingapp/network/ApiService.java`](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/network/ApiService.java) (API client), [`app/src/main/java/com/example/citecschedulingapp/HomeActivity.java`](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/HomeActivity.java) (Student home), [`app/src/main/java/com/example/citecschedulingapp/ScheduleRepository.java`](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/ScheduleRepository.java) (Schedule data access), [`app/src/main/java/com/example/citecschedulingapp/FacultyHomeActivity.java`](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/FacultyHomeActivity.java) (Faculty home)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mobile_access["Mobile Access"]
  node_login["Sign in<br/>[LoginActivity.java]"]
  node_registration["Registration"]
  node_password_recovery["Password recovery"]
  node_session["Session management"]
  node_student_home["Student home<br/>[HomeActivity.java]"]
end

subgraph group_student_scheduling["Student Scheduling"]
  node_booking["Book appointments<br/>[BookFragment.java]"]
  node_appointments["Appointments"]
  node_student_schedule["Student schedule"]
  node_student_profile["Student profile"]
  node_schedule_repository["Schedule data access"]
end

subgraph group_faculty_tools["Faculty Tools"]
  node_faculty_home["Faculty home"]
  node_faculty_availability["Availability"]
  node_faculty_schedule["Faculty schedule"]
  node_faculty_transfer["Schedule transfer"]
end

subgraph group_backend_data["Backend and Data"]
  node_api_client["API client<br/>[ApiService.java]"]
  node_login_api["Login API<br/>[login.php]"]
  node_register_api["Registration API<br/>[register.php]"]
  node_database_connection["Database connection<br/>[database.php]"]
  node_database[("Scheduling database<br/>[database.sql]")]
end

node_user(("App user"))

node_login_api -->|"opens connection"| node_database_connection
node_register_api -->|"opens connection"| node_database_connection
node_user -.->|"uses"| node_login
node_user -.->|"uses"| node_registration
node_user -.->|"uses"| node_password_recovery
node_login -.->|"starts session"| node_session
node_registration -.->|"submits account"| node_api_client
node_login -.->|"sends credentials"| node_api_client
node_api_client -.->|"requests login"| node_login_api
node_api_client -.->|"requests registration"| node_register_api
node_student_home -.->|"opens booking"| node_booking
node_student_home -.->|"opens appointments"| node_appointments
node_student_home -.->|"opens schedule"| node_student_schedule
node_student_home -.->|"opens profile"| node_student_profile
node_booking -.->|"uses schedule data"| node_schedule_repository
node_appointments -.->|"uses schedule data"| node_schedule_repository
node_student_schedule -.->|"uses schedule data"| node_schedule_repository
node_schedule_repository -.->|"requests data"| node_api_client
node_faculty_home -.->|"opens availability"| node_faculty_availability
node_faculty_home -.->|"opens schedule"| node_faculty_schedule
node_faculty_home -.->|"opens transfers"| node_faculty_transfer
node_faculty_availability -.->|"requests data"| node_api_client
node_faculty_schedule -.->|"requests data"| node_api_client
node_faculty_transfer -.->|"requests transfer"| node_api_client
node_database_connection -.->|"connects to"| node_database

click node_login "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/LoginActivity.java"
click node_registration "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/RegisterActivity.java"
click node_password_recovery "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/ForgotPasswordActivity.java"
click node_session "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/SessionManager.java"
click node_student_home "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/HomeActivity.java"
click node_booking "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/BookFragment.java"
click node_appointments "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/AppointmentsFragment.java"
click node_student_schedule "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/ScheduleFragment.java"
click node_student_profile "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/ProfileFragment.java"
click node_schedule_repository "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/ScheduleRepository.java"
click node_faculty_home "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/FacultyHomeActivity.java"
click node_faculty_availability "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/FacultyAvailabilityFragment.java"
click node_faculty_schedule "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/FacultyScheduleFragment.java"
click node_faculty_transfer "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/FacultyTransferFragment.java"
click node_api_client "https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/network/ApiService.java"
click node_login_api "https://github.com/student-dev0826/citecschedulingapp/blob/master/backend/api/login.php"
click node_register_api "https://github.com/student-dev0826/citecschedulingapp/blob/master/backend/api/register.php"
click node_database_connection "https://github.com/student-dev0826/citecschedulingapp/blob/master/backend/api/config/database.php"
click node_database "https://github.com/student-dev0826/citecschedulingapp/blob/master/backend/database.sql"

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_registration,node_password_recovery,node_session,node_student_home,node_user toneBlue
class node_booking,node_appointments,node_student_schedule,node_student_profile,node_schedule_repository toneAmber
class node_faculty_home,node_faculty_availability,node_faculty_schedule,node_faculty_transfer toneMint
class node_api_client,node_login_api,node_register_api,node_database_connection,node_database toneRose
```

## Components

### Mobile Access

- [Sign in](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/LoginActivity.java): `app/src/main/java/com/example/citecschedulingapp/LoginActivity.java`
- [Registration](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/RegisterActivity.java): `app/src/main/java/com/example/citecschedulingapp/RegisterActivity.java`
- [Password recovery](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/ForgotPasswordActivity.java): `app/src/main/java/com/example/citecschedulingapp/ForgotPasswordActivity.java`
- [Session management](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/SessionManager.java): `app/src/main/java/com/example/citecschedulingapp/SessionManager.java`
- [Student home](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/HomeActivity.java): `app/src/main/java/com/example/citecschedulingapp/HomeActivity.java`

### Student Scheduling

- [Book appointments](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/BookFragment.java): `app/src/main/java/com/example/citecschedulingapp/fragment/BookFragment.java`
- [Appointments](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/AppointmentsFragment.java): `app/src/main/java/com/example/citecschedulingapp/fragment/AppointmentsFragment.java`
- [Student schedule](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/ScheduleFragment.java): `app/src/main/java/com/example/citecschedulingapp/fragment/ScheduleFragment.java`
- [Student profile](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/ProfileFragment.java): `app/src/main/java/com/example/citecschedulingapp/fragment/ProfileFragment.java`
- [Schedule data access](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/ScheduleRepository.java): `app/src/main/java/com/example/citecschedulingapp/ScheduleRepository.java`

### Faculty Tools

- [Faculty home](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/FacultyHomeActivity.java): `app/src/main/java/com/example/citecschedulingapp/FacultyHomeActivity.java`
- [Availability](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/FacultyAvailabilityFragment.java): `app/src/main/java/com/example/citecschedulingapp/fragment/FacultyAvailabilityFragment.java`
- [Faculty schedule](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/FacultyScheduleFragment.java): `app/src/main/java/com/example/citecschedulingapp/fragment/FacultyScheduleFragment.java`
- [Schedule transfer](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/fragment/FacultyTransferFragment.java): `app/src/main/java/com/example/citecschedulingapp/fragment/FacultyTransferFragment.java`

### Backend and Data

- [API client](https://github.com/student-dev0826/citecschedulingapp/blob/master/app/src/main/java/com/example/citecschedulingapp/network/ApiService.java): `app/src/main/java/com/example/citecschedulingapp/network/ApiService.java`
- [Login API](https://github.com/student-dev0826/citecschedulingapp/blob/master/backend/api/login.php): `backend/api/login.php`
- [Registration API](https://github.com/student-dev0826/citecschedulingapp/blob/master/backend/api/register.php): `backend/api/register.php`
- [Database connection](https://github.com/student-dev0826/citecschedulingapp/blob/master/backend/api/config/database.php): `backend/api/config/database.php`
- [Scheduling database](https://github.com/student-dev0826/citecschedulingapp/blob/master/backend/database.sql): `backend/database.sql`

### Other components

- **App user**

## Connections

- Login API → Database connection: opens connection (evidence: `backend/api/login.php`)
- Registration API → Database connection: opens connection (evidence: `backend/api/register.php`)
- App user → Sign in: uses
- App user → Registration: uses
- App user → Password recovery: uses
- Sign in → Session management: starts session
- Registration → API client: submits account
- Sign in → API client: sends credentials
- API client → Login API: requests login
- API client → Registration API: requests registration
- Student home → Book appointments: opens booking
- Student home → Appointments: opens appointments
- Student home → Student schedule: opens schedule
- Student home → Student profile: opens profile
- Book appointments → Schedule data access: uses schedule data
- Appointments → Schedule data access: uses schedule data
- Student schedule → Schedule data access: uses schedule data
- Schedule data access → API client: requests data
- Faculty home → Availability: opens availability
- Faculty home → Faculty schedule: opens schedule
- Faculty home → Schedule transfer: opens transfers
- Availability → API client: requests data
- Faculty schedule → API client: requests data
- Schedule transfer → API client: requests transfer
- Database connection → Scheduling database: connects to
