Giter VIP home page Giter VIP logo

odhs's Introduction

Old Dominion Humane Society (ODHS) Medicine Tracker

Purpose

This project is the result of a semesters' worth of collaboration among UMW students. The goal of the project was to create a web application that the Old Dominion Humane Society organization could utilize to make it easier to manage animals and the medicines/medical treatments/vaccines that these animals recieve at the ODHS. At-a-glance features include a web-based calendar of events, event sign up, volunteer registration & login system, reporting system, basic notification system, animal registration/archiving/report generation, and location and service creation.

Authors

The ODHS Medicine Tracker is based on an old open source project named "Homebase". Homebase was originally developed for the Ronald McDonald Houses in Maine and Rhode Island by Oliver Radwan, Maxwell Palmer, Nolan McNair, Taylor Talmage, and Allen Tucker.

Modifications to the original Homebase code were made by the Fall 2022 semester's group of students. That team consisted of Jeremy Buechler, Rebecca Daniel, Luke Gentry, Christopher Herriott, Ryan Persinger, and Jennifer Wells.

A major overhaul to the existing system took place during the Spring 2023 semester, throwing out and restructuring many of the existing database tables. Very little original Homebase code remains. This team consisted of Lauren Knight, Zack Burnley, Matt Nguyen, Rishi Shankar, Alip Yalikun, and Tamra Arant. Every page and feature of the app was changed by this team.

The Gwyneth's Gifts VMS code was modified in the Fall of 2023, revamping the code into the present ODHS Medicine Tracker code. Many of the existing database tables were reused, and many other tables were added. Some portions of the software's functionality were reused from the Gwyneth's Gifts VMS code. Other functions were created to fill the needs of the ODHS Medicine Tracker. The team that made these modifications and changes consisted of Garrett Moore, Artis Hart, Riley Tugeau, Julia Barnes, Ryan Warren, and Collin Rugless.

THE ODHS Medicine Tracker code was modified in the Spring of 2024 as an extension of the medicine tracker, to revamp it back to a Volunteer Management System (VMS) to go along with the tracker. The VMS is meant to help engage and manage volunteers for ODHS. The existing database has been split into two seperate databases (odhsmd and odhsvms). The first database (odhsmd), works with the functionality provided with the Medicine Tracker. The second database (odhsvms), works with the functionality provided with the VMS. Most of the tables were reused in both databases. However, some tables were altered to remove any unused or unnecessary columns. Columns were also added to the existing tables to work with the new capabilities added during this semester. The dbHours table was also added to the odhsvms database, and is used in any new functionality associated with logged volunteer hours. Volunteer and Adoption Center user types have been introduced during this semester. Functionalities provided during this semester include: the processes of logging into the Medicine Tracker or VMS Dashboards based on a user's account type, creating events, viewing the events on a calandar, signing up for events, searching for volunteers, logging hours, deleting logged hours, generating a Volunteer verification form PDF, and the ability to change from light to dark mode. The team that made these modifications and changes consisted of Matthew Kanter, Byron Williamson, John Leitch, Joseph Vogtli, Niko Toro, and John Smith.

User Types

There are four types of users (also referred to as 'roles') within the ODHS.

  1. Main
  2. Admin
  3. Volunteer
  4. Adoption Center

Main's have the ability to manage users, generate reports, assign users to events, reset user passwords, and modify a user's status.

Admin's have all of the abilities that Main's have, but they cannot modify other users information.

Main and Admin accounts have access to both the Medicine Tracker dashoboard and the VMS dashboard, while Volunteer accounts can only access the VMS dashboard.

Adoption Center accounts can only access the Log Hours page once logged in, and have the ability to log a volunteer's hours.

Users of any type can have their status changed by Main's to Inactive to prevent them from signing up for events. Inactive users will also stop appearing in the list of volunteers available to be assigned. Additionally, the reports page allows staff members to filter out inactive users.

There is also a root admin account with username 'vmsroot'. The default password for this account is 'vmsroot', but it must be changed upon initial log in. This account has hardcoded Main privileges but cannot be assigned to events and does not have a user profile. It is crucial that this account be given a strong password and that the password be easily remembered, as it cannot easily be reset. This account should be used for system administration purposes only.

Features

Below is an in-depth list of features that were implemented within the system

  • User Registration And Log In
  • Home Screens
    • Medicine Tracker Dashboard (Main and Admin only)
    • Volunteer Management System Dashboard (Main, Admin, Volunteer only)
    • Adoption Center Accounts Go Directly To Log Hours Page After Login
  • User Management
    • Create Main, Admin, Volunteer, Adoption Center accounts (Main and Admin only)
    • Change Own Password
    • View volunteer hours (print-friendly)
    • Modify Profile
    • Modify User Status (Main only)
    • Modify User Role (AKA access level) (Main only)
    • Reset password
    • User Search (Main and Admin only)
  • Appointments And Appointment Management (Main and Admin only)
    • Calendar With Appointment Listings
    • Calendar Day View With Appointment Listings
    • Appointment Search
    • Appointment Details Page
    • Volunteer Event Sign Up
    • Assign Volunteer To Event
    • View Appointment Roster (print-friendly)
    • Modify Appointment Details
    • Create New Appointment
    • Delete Appointment
    • Complete Appointment
  • Reports (print-friendly)
    • General Animal Reports
  • Animal Management (Main and Admin only)
    • Create Animals
    • Modify Animals
    • Delete Animals
    • Archive Animals
    • Search Animals In The Database
  • Services (Main and Admin only)
    • Create Service
    • Delete Service
  • Locations (Main and Admin only)
    • Create Location
    • Delete Location
  • Volunteer Management
    • Log Volunteer Hours
    • View Logged Volunteer Hours (Main, Admin), (Volunteers can view their own hours)
    • Delete Logged Volunteer Hours (Main, Admin), (Volunteers can delete their own hours)
    • Generate PDF Verification Form Of Logged Hours
    • Forgot Username Assistance Link
  • Events
    • Create Events (Main and Admin only)
    • View Events Calandar
    • Sign Up For Events
    • Delete Events (Main and Admin only)
    • Modify Events (Main and Admin only)
  • Display Format
    • Light And Dark Mode Switch

Design Documentation

Several types of diagrams describing the design of the ODHS Medicine Tracker and Volunteer Management System, including sequence diagrams and use case diagrams, are available. Please contact Dr. Polack for access.

"localhost" Installation

Below are the steps required to run the project on your local machine for development and/or testing purposes.

  1. Download and install XAMPP
  2. Open a terminal/command prompt and change directory to your XAMPP install's htdocs folder
  • For Mac, the htdocs path is /Applications/XAMPP/xamppfiles/htdocs
  • For Ubuntu, the htdocs path is /opt/lampp/htdocs/
  • For Windows, the htdocs path is C:\xampp\htdocs
  1. Clone the ODHS Medicine Tracker repo by running the following command: git clone https://github.com/mkantrr/ODHS.git
  2. Start the XAMPP MySQL server and Apache server
  3. Open the PHPMyAdmin console by navigating to http://localhost/phpmyadmin/
  4. Create a new database named odhsmd. With the database created, navigate to it by clicking on it in the lefthand pane
  5. Import the odhsmd.sql file located in htdocs/ODHS/sql into this new database
  6. Create another new database named odhsvms. With the database created, navigate to it by clicking on it in the lefthand pane
  7. Import the odhsvms.sql file located in htdocs/ODHS/sql into this new database
  8. Navigate to http://localhost/ODHS/login.php
  9. Log into the root user account using the username vmsroot with password vmsroot and clicking on the 'Log in' button.
  10. Once logged in, create a new user by clicking on "Go to Volunteer Management System Dashboard" then clicking "Create Account"
  11. When filling out the New Account Registration form, ensure to fill out every field.
    • The E-Mail Address entered for the new account will be the username for that account.
    • The Account Type sets what type of user the person will be, which then determines what permissions they have.
    • Once all fields are filled out properly click on the "Submit" button.
  12. You can now click "Log Out" on the top right of the page and log in to the account you just created by entering the account's email in the "username" field along with the password you set for that account.

Installation is now complete.

Reset Root User Credentials

In the event of being locked out of the root user, the following steps will allow resetting the root user's login credentials:

  1. Create a new account on the ODHS website from your local host with "vmsroot" as the username and password.
  2. Using the PHPMyAdmin console, go to 'dbPersons' table in the 'odhsmd' database, and find the account named "vmsroot".
  3. Edit the values for vmsroot:
  • id = vmsroot
  • venue = portland
  • first_name = vmsroot
  • state = VA
  • email = vmsroot
  • password (do not change this, it should already be set to 'vmsroot' from when you created the account. You are seeing an encrypted hash value of the password.)
  • force_password_change = 0
  • gender (leave this blank)
  • type (leave this blank)
  • All other values should be set to "N/A"
  1. Press "Go"
  2. You may now log in with the username and password vmsroot

Platform

Dr. Polack chose SiteGround as the platform on which to host the project. Below are some guides on how to manage the live project.

SiteGround Dashboard

Access to the SiteGround Dashboard requires a SiteGround account with access. Access is managed by Dr. Polack.

SiteGround Dashboard:

Follow these steps to transfter your localhost version of the ODHS code to Siteground.

  1. Create an SSH key. https://www.siteground.com/kb/access-site-ssh-connection/
  2. If you don't already have one, create a branch on github called 'siteground'
  3. Ensure the changes made to your branch have been merged with main.
  4. Make a new Pull Request for siteground branch from main, and merge ensuring no conflicts.
  5. git checkout siteground
  6. git pull
  7. The SiteGround dashboard will provide you with the username, hostname, and port to run your SSH command on. This should be in the following format: ssh <username>@<hostname> -p<port number>
  8. Once you have successfully gained SSH access to the siteground server, navigate to www/<website_domain>/public_html
  9. Run rm -rf * to remove all uploaded code files being hosted so we can replace them with the updated files (Be very careful with this command ensure you are in the public_html/ folder).
  10. Exit out of your SSH connection, and run the following scp command from within the ODHS folder. This will take all the code in the ODHS directory and copy all files from your local machine to SiteGround: scp -P <port number> -r ./ <username>@<hostname>:~/www/<website_domain>/public_html

Adding Database to SiteGround

  1. Once logged into SiteGround, go into the 'Site' tab.
  2. Select 'MySQL'
  3. Under 'DATABASES' you'll see 'Create new Database', enter 'odhsvms' and click 'CREATE DATABASE' button.
  4. Under 'Manage Databases' click on the vertical three dots to the right of 'odhsvms' and select 'Import Database Dump'
  5. Search for where you have saved the odhsmd.sql file.
  6. If you don't have odhsmd.sql saved anywhere, you can export the database from the PHPMyAdmin console and save it to your desktop.
  7. Follow this same process for the odhsvms database.

External Libraries and APIs

The only outside library utilized by the ODHS Medicine Tracker is the jQuery library. The version of jQuery used by the system is stored locally within the repo, within the lib folder. jQuery was used to implement form validation and the hiding/showing of certain page elements.

Potential Improvements

Below is a list of improvements that could be made to the system in subsequent semesters.

  • The system could generate emails and send them to users (would require access to an @odhs.com email address)
    • For user email verification
    • For password reset
    • For nofications/messages received (see below)
  • The notification system could be turned into a full-fledged messaging system
    • The existing dbMessages table is set up to allow this
  • Reports
    • Additional reports could be added
    • Visual components could be added (graphs)
  • If a better webhosting option was chosen, file upload for pictures and documents would be better than having to use outside resources such as Google Docs or imgur for file upload
  • Implement a way to view volunteer statistics.
    • Graphs, plots, or charts showing the volunteer hours logged per month/year, average number of volunteers who have logged per year/month. etc.
  • Implement a way for volunteers to provide feedback/ideas to better improve the flow of the adoption process.
    • Only Admin and Main accounts should be able to view the feedback.
  • Implement a "Threads" feature that allows Main/Admin accounts to post resources, articles, or announcements to the ODHS website.
  • Implement a system in which volunteers can earn badges by completing volunteer milestones based on the amount of volunteer hours logged.

License

The project remains under the GNU General Public License v3.0.

Acknowledgements

Thank you to Dr. Polack for the chance to work on this exciting project. A lot of love went into making it!

odhs's People

Contributors

byronwill avatar mkantrr avatar gustavgoldman avatar nikt1357 avatar hyperdrivehydra avatar jappolack avatar jvogtli avatar jsmith62-umw avatar

Watchers

 avatar

Forkers

hyperdrivehydra

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.