Skip to content

A full-stack Android app using Java and SQLite that facilitates task management between instructors and students, with role-based access for admins, instructors, and students.

License

Notifications You must be signed in to change notification settings

Passion-Over-Pain/CheckIT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

64 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CheckIT - Learning Management System (LMS)

lms

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.


Table of Contents

  1. Project Overview
  2. Group Members
  3. Technologies Used
  4. App Features
  5. App Structure
  6. Installation & Running
  7. Screenshots
  8. Demo Video
  9. Acknowledgements

Project Overview

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.

Group Members

This project was completed by the following group members:


Each member contributed to various aspects of the application including interface design, database logic, role-based access control, activity flow implementation, and testing.

Technologies Used

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.

    App Features

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.

Admin Features

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

Instructor Features

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

Student Features

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

App Structure

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.pro

Each user role has its own dedicated activity and associated layouts, maintaining a clean separation of concerns throughout the app lifecycle.

Installation & Running

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:

Step 1: Download the APK

You can download the latest signed release directly from the Latest Releases section of this GitHub repository.

Step 2: Install on Your Android Device

  1. Transfer the downloaded APK file to your Android phone.
  2. Open the file using your file manager or browser.
  3. If prompted, allow installation from unknown sources (this is required for apps not installed via the Google Play Store).
  4. 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.

Step 3: Launch the App

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.

Screenshots

Below are some screenshots that illustrate the core functionality and user experience across different roles in the application.

1. Login Screen

Allows Admins, Instructors, and Students to securely log in based on their assigned role.


2. Admin Dashboard

Admins can manage Students, Modules, and Instructors from a centralized interface.


3. Add Student Screen

Admins can register students into the system by filling in essential information.


4. Instructor Dashboard

Instructors can view modules and assign tasks to students.


5. View Task Screen

Instructors view the current list of tasks and which student has each task.


6. Student Task View

Students can view all assigned tasks and mark them as completed.

Demo Video

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.

Acknowledgements

  • 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.

About

A full-stack Android app using Java and SQLite that facilitates task management between instructors and students, with role-based access for admins, instructors, and students.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages