Sail Kokokahi

Centralized system for monitoring volunteer hours for Sail Kokokahi


Project maintained by Sail-Kokokahi Hosted on GitHub Pages — Theme by mattgraham

Sail Kokokahi


sail-kokokahi

Table of contents

Team Contract

Team Members: Ethan Christman, John Holt, Jett Perry

Deployment


See our project deployed at Vercel here

Overview


Sail Kokokahi is a social/recreation club established in 2022 as a way to establish contact among people who share the love of recreational boat sailing. They are located at Kaneohe Bay on Oahu, Hawaii and need a way to enforce their “Work, Play, Pay” policy. This policy was designed to ensure that each and every member of the club contributes to the clubs growth through social engagement and volunteer work. Each member is expected to meet the annual quota of 6 hours through work such as:

If members do not meet the quota of 6 hours they will be billed at 20 dollars per unfulfilled hour. The problem with enforcing this policy resides in the members volunteer hours being tracked manually. Some members are unsure if they have met the quota for the year, while others are not fulfilling the commitment at all.

To solve this problem, our team will work torwards making a web application to mangage and monitor the volunteer hours contributed by each club member. The web application will enable members to monitor their own volunteer hours, and allow administrators to track and automate the billing process for members with unfulfilled volunteer hours.

Developer Guide


  1. Clone repository with Github Desktop.
  2. cd into the /sail-kokokahi folder.
  3. Install Next.js if needed (see step 1 here).
  4. Run npm run dev to start the app locally. The app should start running in a few minutes, and the output should look similar to this:
PS C:\Users\minec\Desktop\sail-kokokahi> npm run dev

> nextjs-application-template-1@0.1.0 dev 
> next dev

  ▲ Next.js 14.2.10
  - Local:        http://localhost:3000   
  - Environments: .env.local, .env        

 ✓ Starting...

=> App running at: http://localhost:3000/
   Type Control-C twice to stop.

To run eslint, run npm run lint.

User Guide


Upon visiting our website you will land on the initial landing page, from here you are required to sign in before being able to access any of the websites member or admin features.

Member User Guide

After signing in as a member, one of the pages you will be able to access is the member dashboard. On the member dashboard, you can see your own “pending” or “approved” hours. You can also view upcoming events that administrative users create.

On the event sign-up page users can see upcoming events and details about events that admins can create. You can also sign up for events to let admins know that you are planning to attend.

Members have access to the settings page where they can change their basic profile information if needed.

Admin User Guide

After signing in as an admin, one of the pages you will be able to access is the admin dashboard. On the admin dashboard you can see a table of all members in the database. The table displays the users approved hours, pending hours, and allows for admins to approve or deny pending hours. You will also see a chart that displays data for users with accounts that have been in the system for under a year.

On the add event page, you can create events for users to view, sign-up, and check into.

When you create an event via the add event page, your event will now be visible on the admin events page. This page provides admins with a QR code that they can print out to allow users to easily check into events. The page also allows admins to delete events once they are no longer needed.

The event analytics page provides admin users with data on the events that users have checked into via the event QR code on the events page, and events that users have signed up for.

Mockup Pages



Milestone 1


M1 Progress Page

Milestone 2


M2 Progress Page

Milestone 3


M3 Progress Page

Community Feedback


Jacob

Jacob commends the website’s simplicity and readability, finding great interest in the event analytics page. He suggests that having a way to notify users of upcoming events via the phone number that can be linked to user accounts would be beneficial.

Christin

Christin finds the website easy to navigate but raises concerns about account creation. She mentions how users can create accounts to skew admin data and analytics pages without penalty.

Gabriel

Gabriel appreciates what the website offers but notes the small navbar buttons. He prefers a larger and easier to see navigation bar to make for easy use of the website.

Brock

Brock praises the website’s user-friendly interface but questions the necessity of a phone number upon account creation. Brock believes that having more options for members such as email or phone notifications to remind them of events can make the website significantly more useful.

Savannah

Savannah loves the functionality of the website and all the options that admin users have but questions the format of the admin dashboard. She is confused by the need for both a table and a chart, and thinks that the new user data should be on a separate page to improve readability when 50+ users are added to the system.