Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

ย 

History

112 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

VolunteerTracker

Android Volunteer Management System

VolunteerTracker is an Android application designed to help organizations manage events, coordinate volunteers, track service hours, and verify completed volunteer work.

The application was originally developed as a group project for COMP 4200 โ€” Mobile Application Development at the University of Windsor, with the broader goal of evolving into a multi-organization volunteer-management platform.


๐Ÿ“ฑ Overview

VolunteerTracker connects volunteers and organization administrators through a structured volunteer-hour workflow.

Volunteers can:

  • create an account and sign in,
  • join or select organizations,
  • discover scheduled events and tasks,
  • track volunteer time,
  • view previously submitted hours,
  • set volunteer-hour goals, and
  • monitor progress toward those goals.

Administrators can:

  • manage organizations,
  • create events,
  • create volunteer tasks,
  • review submitted volunteer logs,
  • approve or reject volunteer hours, and
  • monitor volunteer participation.

โœจ Key Features

๐Ÿ‘ฅ Role-Based Accounts

Users can register as either:

  • Volunteer
  • Administrator

The application directs users to functionality appropriate for their role.

๐Ÿข Organization Management

Administrators can create and manage organizations, while users can select the organization they are currently participating in.

This structure was designed with future multi-organization and multi-city support in mind.

๐Ÿ“… Events & Tasks

Administrators can create:

  • volunteer events,
  • event dates and times,
  • organization-specific activities, and
  • individual volunteer tasks.

Volunteers can browse scheduled opportunities and select the task they want to complete.

โฑ๏ธ Volunteer Hour Tracking

The app includes a check-in / check-out workflow for recording volunteer service.

When a volunteer checks in:

  1. the timer begins tracking the session,
  2. the application updates the displayed time every second,
  3. the volunteer checks out when finished,
  4. the elapsed time is converted into volunteer hours, and
  5. a new volunteer log is created with a Pending status.

โœ… Admin Verification

Submitted volunteer hours are not immediately treated as verified.

Instead:

Volunteer Completes Task
          โ†“
Checks Out
          โ†“
Volunteer Log Created
          โ†“
Status: Pending
          โ†“
Administrator Review
       โ†™        โ†˜
   Approve      Reject
      โ†“
Verified Volunteer Hours

Approved hours are added to the volunteer's progress and history.

๐Ÿ“Š Goal & Progress Tracking

Volunteers can set a target number of service hours and monitor their approved hours through the dashboard.

๐Ÿ—‚๏ธ Volunteer History

Volunteers can view previous service sessions and track their volunteer activity over time.


๐Ÿ–ผ๏ธ Screenshots

Admin Dashboard

The administrator dashboard provides quick access to organization, event, task, and volunteer-log management.

VolunteerTracker admin dashboard

Organization Selection

Users can select the organization they are currently volunteering with or administering.

VolunteerTracker organization selection screen

Event & Task Management

Administrators can create events and tasks for volunteers.

VolunteerTracker event creation screen

Volunteer Hour Workflow

Volunteers can check in, track their service time, check out, and submit their hours for administrator approval.

VolunteerTracker volunteer hour tracking workflow

๐Ÿ”„ Application Workflow

                         User
                           โ”‚
                           โ–ผ
                     Authentication
                           โ”‚
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ–ผ                 โ–ผ
              Volunteer           Admin
                  โ”‚                 โ”‚
                  โ–ผ                 โ”œโ”€โ”€ Create Organization
          Select Organization       โ”œโ”€โ”€ Create Event
                  โ”‚                 โ”œโ”€โ”€ Create Task
                  โ–ผ                 โ””โ”€โ”€ Review Volunteer Logs
             Browse Events                    โ”‚
                  โ”‚                           โ”‚
                  โ–ผ                           โ”‚
             Select Task                      โ”‚
                  โ”‚                           โ”‚
                  โ–ผ                           โ”‚
               Check In                       โ”‚
                  โ”‚                           โ”‚
                  โ–ผ                           โ”‚
              Track Time                      โ”‚
                  โ”‚                           โ”‚
                  โ–ผ                           โ”‚
              Check Out                       โ”‚
                  โ”‚                           โ”‚
                  โ–ผ                           โ”‚
           Pending Hour Log โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
                  โ–ผ
             Admin Review
             โ†™          โ†˜
        Approved       Rejected
            โ”‚
            โ–ผ
      Volunteer History
      + Progress Update

๐Ÿ› ๏ธ Tech Stack

Area Technology
Platform Android
Language Java
UI XML Layouts
Database SQLite
Session State SharedPreferences
Lists / Calendars RecyclerView
UI Components CardView
Build System Gradle
Development Environment Android Studio

๐Ÿ—ƒ๏ธ Data Persistence

VolunteerTracker uses SQLite for local persistent storage.

The database stores information such as:

  • user accounts,
  • organizations,
  • events,
  • tasks,
  • volunteer logs,
  • approval status, and
  • volunteer-hour information.

Because the data is stored locally, information remains available after the application is closed and reopened.

SharedPreferences is used for lightweight session state, including information such as the currently logged-in user and selected organization.


๐Ÿงฉ Core Application Components

Authentication

The application verifies user credentials and determines whether the user should enter the volunteer or administrator workflow.

Volunteer Dashboard

Displays:

  • volunteer-hour goals,
  • approved hours,
  • progress information,
  • navigation to events,
  • volunteer logs, and
  • profile information.

Calendar & Event Discovery

The calendar interface displays scheduled events and allows volunteers to browse opportunities by date.

Timer Engine

The volunteer timer uses an Android Handler to update the displayed time during an active volunteer session.

When the volunteer checks out, the elapsed time is calculated and converted into volunteer hours.

Approval Workflow

Administrators review pending volunteer logs before those hours are treated as verified service.


๐Ÿ“ Project Structure

VolunteerTracker/
โ”œโ”€โ”€ app/
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ””โ”€โ”€ main/
โ”‚           โ”œโ”€โ”€ java/
โ”‚           โ”‚   โ””โ”€โ”€ ...
โ”‚           โ”‚       โ”œโ”€โ”€ main_activity.java
โ”‚           โ”‚       โ”œโ”€โ”€ home_activity.java
โ”‚           โ”‚       โ”œโ”€โ”€ date_activity.java
โ”‚           โ”‚       โ”œโ”€โ”€ choose_event.java
โ”‚           โ”‚       โ”œโ”€โ”€ logs_activity.java
โ”‚           โ”‚       โ”œโ”€โ”€ vlog_activity.java
โ”‚           โ”‚       โ”œโ”€โ”€ database_helper.java
โ”‚           โ”‚       โ”œโ”€โ”€ repositories/
โ”‚           โ”‚       โ””โ”€โ”€ adapters/
โ”‚           โ”‚
โ”‚           โ””โ”€โ”€ res/
โ”‚               โ””โ”€โ”€ layout/
โ”‚                   โ””โ”€โ”€ XML layouts
โ”‚
โ”œโ”€โ”€ build.gradle.kts
โ”œโ”€โ”€ settings.gradle.kts
โ””โ”€โ”€ README.md

The exact package structure may vary slightly from the simplified diagram above.


๐Ÿš€ Running the App

Requirements

  • Android Studio
  • Android SDK
  • Java-compatible Android development environment
  • Android emulator or physical Android device

Setup

  1. Clone the repository:
git clone https://github.com/Hadiyahh/VolunteerTracker.git
  1. Open the project in Android Studio.

  2. Allow Gradle to synchronize project dependencies.

  3. Select an Android emulator or connected device.

  4. Run the application.


๐ŸŽ“ Project Origin

VolunteerTracker was originally developed as the final group project for:

COMP 4200 โ€” Mobile Application Development
School of Computer Science
University of Windsor
March 2026

The course version focused on demonstrating Android development concepts including:

  • Java application logic,
  • XML interfaces,
  • SQLite persistence,
  • role-based application flows,
  • RecyclerView components,
  • session management,
  • event management, and
  • volunteer-hour tracking.

The longer-term concept is to evolve VolunteerTracker beyond local SQLite storage into a centralized volunteer-management system capable of supporting multiple organizations and cities.


๐Ÿ”ฎ Future Improvements

The current repository represents the academic prototype.

Potential future development includes:

  • Cloud-hosted backend and centralized database
  • Multi-city and multi-chapter support
  • Secure server-side authentication
  • Role-based access control
  • Organization-wide administrator dashboards
  • Centralized volunteer profiles
  • Improved event and task management
  • Volunteer-hour reporting and exports
  • Push notifications
  • QR-code event check-in
  • Persistent synchronization across devices
  • Production deployment

โš ๏ธ Project Status

VolunteerTracker is an academic prototype and is not currently deployed as a production volunteer-management service.

The existing application demonstrates the core Android workflow and local persistence model. Future versions may expand the project into a centralized system for real organizational use.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages