Tip
CheckIT is an Android app for managing student tasks with role-based login for Admin, Instructor, and Student. You can download the latest release of the app directly from the Releases section.
- Project Overview
- Group Members
- Technologies Used
- App Features
- App Structure
- Installation & Running
- Screenshots
- Demo Video
- Acknowledgements
This Android application was developed to support streamlined task management for students within an academic environment. The application features a role-based login system, enabling three distinct user typesβAdmin, Instructor, and Studentβto access specific functionalities tailored to their roles.
- Admins can manage core academic entities including student records, module data, and instructor accounts.
- Instructors are able to create and assign academic tasks to students.
- Students can log in to view their assigned tasks and update their task completion status.
The application was built entirely using Java in Android Studio, and all major functionalities are distributed across dedicated activities. A navigation-based interface ensures ease of access, with a clean UI supported by custom layouts and drawable assets.
To ensure security and access control, we implemented a login activity that validates user credentials and redirects them to their respective dashboards.
This system is ideal for academic environments looking for a lightweight, offline-capable mobile LMS that simplifies the interaction between students, instructors, and administrators.
This project was completed by the following group members:
-
Jasmin Storm

GitHub Profile: Jasmin's GitHub -
Juanette Viljoen

GitHub Profile: Juanette's GitHub -
Mthi Mzimba
-
Tinotenda Mhedziso

GitHub Profile: Tinotenda's GitHub
Each member contributed to various aspects of the application including interface design, database logic, role-based access control, activity flow implementation, and testing.
This project was developed using the following technologies and tools:
-
Java
Primary programming language used to implement all backend logic, data handling, and user interface interactions within the Android application. -
Android Studio
The official IDE for Android development, used for coding, debugging, testing, and managing the project structure. -
XML (Extensible Markup Language)
Used extensively to define UI layouts, custom styles, and drawable resources across the application. -
SQLite (via SQLiteOpenHelper)
Embedded relational database used for storing and managing persistent data such as user accounts, tasks, students, instructors, and modules. -
Gradle
Build automation system used to manage project dependencies and compile the application. -
Android SDK
Provides the necessary libraries and APIs required to build and run Android applications on physical devices or emulators. -
Git & GitHub
Used for version control and collaborative development. The repository also includes a signed APK for direct installation. -
Material Design Guidelines
Followed for UI/UX practices to ensure consistency and responsiveness across devices.
The Learning Management System (LMS) is designed to provide distinct functionalities based on the role of the user. Upon logging in, users are directed to their respective dashboards which provide tailored access and operations.
Admins are responsible for managing system records and have access to the following features:
- Create new student records (including ID, name, surname, and date of birth)
- Create new instructor records
- Create new module records (including module name and duration)
- View, update, or delete existing students, instructors, and modules
- Central dashboard to manage all administrative tasks
Instructors are responsible for managing student tasks and have access to the following features:
- Create tasks assigned to students (with task name, due date, and associated module)
- View, update, or delete previously created tasks
- Dashboard displaying all current tasks and student information
Students use the system primarily to manage their assigned tasks:
- View a list of tasks assigned by instructors
- Mark tasks as complete or incomplete
- Access personal dashboard with task list and completion statuses
The application is organized into modular components, separating core logic, UI layouts, and assets for maintainability. Below is a high-level overview of the structure:
π app/
βββ π src/
β βββ π main/
β β βββ π java/com/example/learningmanagementsystem/
β β β βββ Activities: Each screen in the app (e.g., Login.java, AdminDashboard.java)
β β β βββ Models: Data classes (Student.java, Module.java, Task.java)
β β β βββ Adapters: Custom adapters for ListViews (e.g., StudentAdapter.java)
β β β βββ DatabaseManager.java: Handles all SQLite database operations
β β βββ π res/
β β β βββ drawable/: App images and icons
β β β βββ layout/: XML UI layouts for each activity
β β β βββ mipmap/: App launcher icons for various screen sizes
β β β βββ values/: App colors, themes, and strings
β β βββ AndroidManifest.xml
β
βββ π release/
β βββ Signed APK builds for distribution
β
βββ build.gradle.kts
βββ settings.gradle.kts
βββ proguard-rules.proEach user role has its own dedicated activity and associated layouts, maintaining a clean separation of concerns throughout the app lifecycle.
The application has been packaged and signed as an APK for easy installation on Android devices. Follow the steps below to install and run the app:
You can download the latest signed release directly from the Latest Releases section of this GitHub repository.
- Transfer the downloaded APK file to your Android phone.
- Open the file using your file manager or browser.
- If prompted, allow installation from unknown sources (this is required for apps not installed via the Google Play Store).
- Complete the installation process.
Note: Some security tools like Avast or Google Play Protect may warn that the app is from an unknown developer. This is expected and safe to bypass for testing purposes. Our APK is signed and verified for demonstration use only.
Once installed, launch the app from your deviceβs application drawer. You can log in using dummy data for the Admin: Email: admin Password: password
Once logged in you can create students and instructors whom you will login with the respective credentials.
Below are some screenshots that illustrate the core functionality and user experience across different roles in the application.
Allows Admins, Instructors, and Students to securely log in based on their assigned role.
Admins can manage Students, Modules, and Instructors from a centralized interface.
Admins can register students into the system by filling in essential information.
Instructors can view modules and assign tasks to students.
Instructors view the current list of tasks and which student has each task.
Students can view all assigned tasks and mark them as completed.
A short demonstration video has been recorded to showcase the key features and functionality of our Learning Management System Android app. The video walks through the experience of each role: Admin, Instructor, and Student. (Coming Soon)
Click here to watch the demo video
The video covers:
- Role-based login
- Creating and managing students, modules, and instructors
- Task creation and management by instructors
- Student task views and completion flow
Note: The demo video is under 5 minutes as per assignment requirements.
- Canva: For providing design templates for images.
- Pexels: For royalty-free images used in the app.
- Flaticon: For offering free icons used in the app interface.
- Android Developers: For their comprehensive guides and tutorials that greatly helped during development.








