System Overview
The e-Samwad application is a comprehensive platform designed to enhance student learning outcomes by facilitating effective communication and collaboration among teachers, schools, and parents. It offers a range of features and functionalities that enable efficient information management within educational institutions. Additionally, parents receive important updates and notifications through various channels, including SMS.
Key Features
- Student registration: Manage student information, including registration, details, promotion, and verifiable leaving certificates (SLC).
- ORF (Oral Reading Fluency): Assess students' reading fluency, monitor progress, and provide additional practice.
- *Assessments: Record and track student assessment marks, grades, and progress for different learning objectives.
- Student attendance: Mark and manage student attendance, with offline functionality for low connectivity areas.
- Homework: Enable teachers to apply various filters to select specific homework tasks and send them to parents via messages.
- SMS Module: Send important updates and notifications to parents via SMS.
- Teacher attendance: Mark attendance with geolocation verification for fair tracking.
- Teacher registration: Register teachers with approval from school or admin users.
- Profile: Update personal and professional information, excluding username, and reset password.
- Helpline and FAQ: Access frequently asked questions and helpline numbers for support.
System Architecture
The e-Samwad application follows a hybrid architecture combining MVP (Model-View-Presenter) and MVVM (Model-View-ViewModel) patterns. Dependency Injection (DI) and Reactive Extensions (RX) are used for improved development and maintainability. The application is divided into different Android modules to ensure reusability and offline-enabled features are synchronized using Work Manager.
Integration
The e-Samwad application integrates with various services and APIs, including Hasura for specific modules requiring backend interactions, FusionAuth for user management, login, registration, and token creation functionalities, Posthog for logging services, Firebase Crashlytics for crash reporting and analytics, and SMS services for sending notifications.
Repositories
Network Module(Dependency sub-module)
Program (Project dependencies)
Building Blocks
User Service - To allow users to log into the app
Hasura - To save and retrieve data via Graphql
ODK - To collect information from the users into the form created
API services - Handles most of the APIs
Diksha services - Question bank provider
Quml - For Question loading (Cached version)
Read Along App - Google’s reading fluency checking app(used via intents)
Roles & Permissions
The e-Samwad application consists of high-level roles such as teacher, principal, and school, along with various lower-level designations. Each user is assigned an authentication token upon login, which filters the results on both API layers and Hasura calls based on the role mapped in the JWT. These tokens are generated by the User Service, which acts as a wrapper on top of FusionAuth.