English | ุงูุนุฑุจูุฉ
Parent Communication Register (PCR) is a native Android application engineered for schools, universities, and educational institutions. It streamlines daily student attendance recording, provides real-time attendance telemetry for faculty and administrators, and bridges the gap between schools and parents with direct one-touch cellular telephony integration (CALL_PHONE).
PCR eliminates paper-based attendance registers by offering a secure, offline-first embedded SQLite storage engine with automated session linking, role-based workflows (Admin vs. Faculty), and granular attendance reports.
The application follows an Android architectural model combining ViewBinding, Data Access Objects (DAO) via a centralized DBAdapter, and declarative form validation via Android Saripaar.
graph TD
subgraph Presentation Layer
Auth[LoginActivity] -->|Role: Admin| AdminHome[AdminActivity]
Auth -->|Role: Faculty| FacultyHome[FacultyActivity]
AdminHome --> AddFaculty[AddFacultyActivity]
AdminHome --> AddStudent[AddStudentActivity]
AdminHome --> ManageFaculty[AdminFacultyActivity]
AdminHome --> ViewStudents[StudentActivity]
FacultyHome --> TakeAtt[take_attendance]
FacultyHome --> ViewAtt[Viewattendance_activity]
FacultyHome --> StudentList[StudentActivity]
end
subgraph Business & Service Layer
TakeAtt --> SessionManager[Attendance Session Processor]
StudentList --> TelephonyService[Android Telephony Manager<br/>ACTION_CALL / Direct Phone Alert]
AddFaculty --> Validator[Saripaar Form Validator]
AddStudent --> Validator
end
subgraph Persistence Layer
SessionManager --> DBAdapter[DBAdapter - SQLiteOpenHelper]
AddFaculty --> DBAdapter
AddStudent --> DBAdapter
ViewAtt --> DBAdapter
DBAdapter --> DB[(SQLite Database: Attendance.db)]
end
PCR manages academic records through four normalized relational tables managed by DBAdapter:
erDiagram
FACULTY_TABLE {
int faculty_id PK "AUTOINCREMENT"
string faculty_name
string faculty_qualif
string faculty_mobilenumber
string faculty_address
string faculty_gender
string faculty_Email
string faculty_password
}
STUDENT_TABLE {
int student_id PK "AUTOINCREMENT"
string student_name
string student_gender
string student_mobilenumber
string student_address
string student_dob
string student_class
}
ATTENDANCE_SESSION_TABLE {
int attendance_session_id PK "AUTOINCREMENT"
int attendance_session_faculty_id FK
string attendance_session_class
date attendance_session_date
}
ATTENDANCE_TABLE {
int attendance_session_id FK
int attendance_student_id FK
string attendance_status "Present / Absent"
}
FACULTY_TABLE ||--o{ ATTENDANCE_SESSION_TABLE : "supervises"
ATTENDANCE_SESSION_TABLE ||--|{ ATTENDANCE_TABLE : "contains"
STUDENT_TABLE ||--o{ ATTENDANCE_TABLE : "recorded_in"
- ๐ Dual-Tier Role Based Access Control:
- Administrator Dashboard: Register faculty members, manage instructor credentials, enroll new students with demographic data, and oversee all academic cohorts.
- Faculty Dashboard: Filter by assigned class, initiate daily roll-calls, record presence/absence flags, and inspect historical session logs.
- โก Rapid Roll-Call Attendance Session:
- Automated session creation with timestamp and teacher identifier.
- Quick-toggle status switches (
Present/Absent) with high-contrast UI states.
- ๐ One-Touch Parental Call Dispatch:
- Directly connect faculty members to a student's parent/guardian upon absence using the Android native dialer/telephony stack (
CALL_PHONEintent).
- Directly connect faculty members to a student's parent/guardian upon absence using the Android native dialer/telephony stack (
- ๐ Rule-Based Form Validation:
- Employs Android Saripaar annotation-based validation for email formatting, mobile number lengths, and required profile fields.
- ๐ผ๏ธ Profile Media Ingestion:
- Integrated image picker (
com.github.Drjacky:ImagePicker) and circular image rendering (de.hdodenhof:circleimageview) for avatar customization.
- Integrated image picker (
- ๐ด Offline-First Reliability:
- Zero cloud dependency required for operational core: all transactions commit locally to transactional SQLite with atomic integrity.
| Layer | Technology | Description |
|---|---|---|
| OS Target | Android 5.0 to 14 | minSdk = 21, targetSdk = 34, compileSdk = 34 |
| Language | Java 8 | Modern lambdas, streams, and bytecode desugaring |
| Build Tool | Gradle 8.7 (Kotlin DSL) | build.gradle.kts with Version Catalog libs.versions.toml |
| View Layer | Android ViewBinding | Type-safe view lookups replacing unsafe findViewById |
| UI Components | Google Material Components | Material buttons, CardViews, TextInputLayouts |
| Form Validation | Android Saripaar 2.0.3 |
Declarative field validation engine |
| Image Picker | Drjacky ImagePicker 2.3.22 |
Camera & Gallery profile image capture |
| Avatar Display | CircleImageView 3.1.0 |
Circular avatar masking for students and faculty |
| Local Storage | Android SQLiteOpenHelper | ACID-compliant relational embedded database |
PCR/
โโโ app/
โ โโโ build.gradle.kts # Module-level Gradle configuration (SDK 34)
โ โโโ proguard-rules.pro # R8 / ProGuard optimization rules
โ โโโ src/
โ โโโ main/
โ โ โโโ AndroidManifest.xml # Permissions (CALL_PHONE) & Activity declarations
โ โ โโโ java/com/example/parentcommunicationregistar_app/
โ โ โ โโโ Login_activity.java # Auth gateway (Admin vs Faculty)
โ โ โ โโโ Admin_activity.java # Administrator executive console
โ โ โ โโโ AdminFacultyActivity.java# Faculty registry & roster management
โ โ โ โโโ AddFactultyActivity.java # Instructor registration & validation
โ โ โ โโโ Faculty_Activity.java # Faculty session launcher & tools
โ โ โ โโโ AddStudentActivity.java # Student onboarding & contact registration
โ โ โ โโโ StudentActivity.java # Student directory with direct parental calling
โ โ โ โโโ take_attendance.java # Daily roll-call attendance submission
โ โ โ โโโ Viewattendance_activity.java # Historical records & attendance analytics
โ โ โ โโโ AttendanceAdapter.java # RecyclerView adapter for dynamic roster rows
โ โ โ โโโ HomeFragment.java # Dashboard overview fragment
โ โ โ โโโ bean/ # Data transfer objects (DTOs)
โ โ โ โ โโโ AttendanceBean.java
โ โ โ โ โโโ AttendanceSessionBean.java
โ โ โ โ โโโ FacultyBean.java
โ โ โ โ โโโ StudentBean.java
โ โ โ โ โโโ UserBean.java
โ โ โ โ โโโ ApplicationContext.java
โ โ โ โโโ db/
โ โ โ โโโ DBAdapter.java # Centralized SQLiteOpenHelper & CRUD operations
โ โ โโโ res/ # Vector drawables, layouts, and navigation graphs
โโโ gradle/
โ โโโ libs.versions.toml # Centralized Gradle version catalog
โ โโโ wrapper/ # Gradle wrapper binaries
โโโ build.gradle.kts # Root project build script
โโโ settings.gradle.kts # Plugin repositories & project naming
โโโ README.md
- Android Studio (Hedgehog 2023.1.1 or Ladybug / Jellyfish recommended).
- JDK 17 configured as the Gradle JDK.
- Android SDK API 34 installed via SDK Manager.
git clone https://github.com/Brosfeer/PCR.git
cd PCR# Grant execution permissions to Gradle wrapper
chmod +x gradlew
# Compile debug APK
./gradlew assembleDebugThe compiled APK will be generated at:
app/build/outputs/apk/debug/app-debug.apk
adb install -r app/build/outputs/apk/debug/app-debug.apkุชุทุจูู ุณุฌู ุชูุงุตู ุฃูููุงุก ุงูุฃู
ูุฑ (PCR - Parent Communication Register) ูู ุชุทุจูู ุฃูุฏุฑููุฏ ู
ุชูุงู
ู ู
ูุฌูู ููู
ุคุณุณุงุช ุงูุชุนููู
ูุฉ ูุงูู
ุฏุงุฑุณ ูุฅุฏุงุฑุฉ ุงูุญุถูุฑ ูุงูุบูุงุจ ุงูููู
ู ููุทูุงุจุ ูุฑุจุท ุงููุงุฏุฑ ุงูุชุนููู
ู ุจุฃูููุงุก ุงูุฃู
ูุฑ ุจุดูู ู
ุจุงุดุฑ ุนุจุฑ ุงูุงุชุตุงู ุงููุงุชูู ุงูููุฑู (CALL_PHONE).
- ูุธุงู
ุตูุงุญูุงุช ุซูุงุฆู (Admin / Faculty):
- ููุญุฉ ุชุญูู ุงูุฅุฏุงุฑุฉ: ุฅุถุงูุฉ ูุชุนููู ุงููุงุฏุฑ ุงูุชุนููู ูุ ุชุณุฌูู ุจูุงูุงุช ุงูุทูุงุจุ ูุฅุฏุงุฑุฉ ุงููุตูู.
- ููุญุฉ ุงูู ุนูู : ุชุณุฌูู ุงูุญุถูุฑ ุงูููู ูุ ุฑุตุฏ ุงูุบูุงุจ ูุงูุญุถูุฑุ ูุงุณุชุนุฑุงุถ ุงูุฅุญุตุงุฆูุงุช ุงูุชุงุฑูุฎูุฉ.
- ุงุชุตุงู ู ุจุงุดุฑ ุจุฃูููุงุก ุงูุฃู ูุฑ: ุฅู ูุงููุฉ ุงูุงุชุตุงู ุงูููุฑู ุจุฑูู ููู ุฃู ุฑ ุงูุทุงูุจ ู ุจุงุดุฑุฉ ู ู ุงูุชุทุจูู ุนูุฏ ุฑุตุฏ ุญุงูุฉ ุงูุบูุงุจ ูุชุฃููุฏ ุงูู ุชุงุจุนุฉ.
- ูุงุนุฏุฉ ุจูุงูุงุช SQLite ู ุญููุฉ ู ุฏู ุฌุฉ: ุญูุธ ูุงู ู ุงูุณุฌูุงุช ูุงููุตูู ูุงูุฌูุณุงุช ู ุญููุงู ู ุน ู ูุซูููุฉ ุนุงููุฉ ูุณุฑุนุฉ ูุงุฆูุฉ ุจุฏูู ุงูุญุงุฌุฉ ููุงุชุตุงู ุจุงูุฅูุชุฑูุช.
- ุงูุชุญูู ุงูุฐูู ู ู ุงูุจูุงูุงุช (Saripaar): ุงูุชุญูู ุงูุชููุงุฆู ู ู ุตุญุฉ ุฃุฑูุงู ุงูููุงุชูุ ุงูุจุฑูุฏ ุงูุฅููุชุฑูููุ ูุงูุจูุงูุงุช ุงูุฅูุฒุงู ูุฉ ูุจู ุงูุญูุธ.
- ู ุนู ุงุฑูุฉ Android ViewBinding: ุฑุจุท ุงูุนูุงุตุฑ ุงูุจุฑู ุฌูุฉ ุจุงููุงุฌูุงุช ุจููุงุกุฉ ูุฃู ุงู ูุงู ู ูุชูุงุฏู ู ุดุงูู ุงูุฃุฏุงุก.
Engineered with architectural discipline by Sharaf (@Brosfeer) โ Principal Mobile & Systems Architect & Founder of SayaSky Studio.
- GitHub: @Brosfeer
- Studio: SayaSky Studio (Google Play)
- Specialization: Mobile Systems, Real-Time Telemetry & Clean Architecture
Distributed under the MIT License. See LICENSE for details.