Skip to the content.

Project: Musicians of Manoa

Musicians of Manoa Logo
musiciansofmanoa

Table of Contents

Overview

The problem: Many UH students have musical talents, but there is no easy way for them to find others with similar tastes and compatible musical abilities. Thus, they cannot experience the fun of informal jam sessions which could progress into performing musical groups.

The solution: The Campus Jam application allows students to login and create a profile indicating their musical tastes, their musical capabilities, and their musical goals (from occasional, informal jam sessions to performing bands). The profile can also include links to YouTube videos or SoundCloud tracks with examples of their musicianship.

Development Team

Dominic Deuz
Josh Hicks
Christian Iha
Dahyun Kwon
Samantha Limon

Team Contract
Team Bonding
Github Organization

Approach

Once a profile is created, others can browse the profiles filtered by specific tastes, capabilities, and goals to find compatible musicians to contact.

Students can also set up notifications to find out automatically when a profile is created that satisfies criteria that they specify.

Admins can monitor the site for inappropriate content, and create new categories of musical tastes, capabilities, and goals.

Note: if you choose this idea for your final project, you cannot name it “Campus Jam”. Come up with a different name for your final project.

Website Guide

Landing Page

The landing page is presented to users when they visit the top-level URL to the site. This page presents basic information about the project and buttons that will take them to other commonly used pages.

Landing Page 1
Landing Page 2

Sign In/Sign Up

Click on the "Login" button in the upper right corner of the navbar, then select "Sign in" if you already have an account created, if not you can create an account by clicking "Sign up" instead.

Sign In Page

The "Sign up" page allows the user to customize their profile by providing attributes such as their musical goals, instruments & experience levels, and musical tastes.

Creating User Page

Creating User Page: Select Musical Taste

View/Edit Profile Page

Click on the "View/Edit Profile" button in the upper right corner of the navbar after logging in, User can see their own Profile page and can edit their information.

View/Edit Profile Page

Upcoming Jams Page

After logging in, there are more links shown in the navbar: "Feed", "Create a Jam", and "Search". Hitting the "Feed" link will take you to the Upcoming Jams Page, where you can see the upcoming jam sessions available.

Upcoming Jams Page

Search Page

There is also a "Search" link in the navbar. Hitting this link will take you to the Search page, where you can search for other profiles or jam sessions.

Search Page

Profile Search Page

Clicking the "Profiles" card on the Search Page will take you to the "Profile Search Page", where users can search for other user profiles.

Profile Search Page

User's Profile and Review Creation Page

Clicking the "View Profile" Button on the Search Profiles Page will take you to the "Profile Page", where users can see detailed Profile Information and Reivews and can leave review to the user.

Profile Page

Jam Search Page

Clicking the "Jam" card on the Search Page will take you to the "Jam Search Page", where users can search for jam sessions hosted by other users. Also, users can attend a jam session by clicking "Attend Jam".

Jam Search Page

Attending Jams Page

Once the user clicks the "Attend Jam" button on the Jam Information Card, their jam is saved onto the "Attending Jams Page." The user can also delete this Jam session if they decide to not attend it anymore or if it's a past Jam session.

Attending Jams Page

Jam Information Page

Hitting the "Create a Jam" link will take you to the Jam Information page, where you can fill in information for a musical jam session which will be posted to the website for other musicians to view.

Jam Information Page

Edit Musical Goals / Tastes / Experience Pages

Musical goals, musical tastes, and musical experience levels are all pieces of information acquired from users when creating their account. This allows jam organizers and fellow musicians to find musicians with specific skills and inclinations. For simplicity, the options for each are limited by site administrators and can be edited on this page.

Edit Goals Page
Edit Tastes Page
Edit Experience Page

Admin Dashboard Page

By clicking on the "Admin" tab in the navbar, Admins have the ability to edit experience levels, musical goals, and musical tastes. They can also view all of the signed in users.

Admin Dashboard Page

Edit Jam Information (Admin)

Only admins have the ability to edit Jam information. They can do so by clicking the "Admin" tab in the navbar, and going to the "Edit Jams" section. Once they click on the "Edit" button, they are redirected to the "Edit Jam Information" form, which edits the existing form data.

Admin Jam Edit Page
Edit Jam Information Page

Developer Guide

This section provides information of interest to Next developers wishing to use this code as a basis for their own development tasks.

Deployment

You can find a live deployment of the website at this link https://musicians-of-manoa.vercel.app.

Installation

First, make sure you have Node installed.
Second, visit the Musicians of Manoa GitHub page, and click the "Use this template" button to create your own repository initialized with a copy of this application. Alternatively, you can download the sources as a zip file or make a fork of the repo. However you do it, download a copy of the repo to your local computer.
Third, after having installed your local copy of the application, cd into the musicians-of-manoa directory with a command terminal and install libraries with:
$ npm install
Fourth, run the system with:
$ npm run dev If everything was successful, you will be able to view the application at http://localhost:3000

Development History

The development process for the Musicians of Manoa project conformed to Issue Driven Project Management practices. These practices include:

The following sections document the development history of BowFolios

Milestone 1

The goal of Milestone 1 was to create as many mockup pages as possible of the necessary pages for our project, the group deciding building the pages using Nextjs from the start to be the easiest approach.

Milestone 1 was managed using Musicians of Manoa Project Board M1

M1 Project Board 24 hours before Milestone 1 was due.

Milestone 2

The goal of Milestone 2 is to connect as many mockup pages as possible to a PostgreSQL database. For forms, this involves ensuring that form data is correctly stored in the Prisma schema tables. For edit forms, this requires verifying that they can retrieve previously entered data and allow modifications as needed.

The pages currently connected to the database include the Jam Search(read), Jam Creation(write), Edit Jam(read and write), and Edit Goals(read) pages.

Milestone 2 was managed using Musicians of Manoa Project Board M2

M2 Project Board

Milestone 3

The goal of Milestone 3 is to refine the database connections and clean up the overall UI.

Milestone 3 was managed using Musicians of Manoa Project Board M3

M3 Project Board

Community Feedback

We are interested in your experience using Musicians of Manoa! If you have any suggestions on how we can improve the application, feel free to fill out our feedback form : Feedback Form (Google Form)

Here are some suggestions we've gotten so far from community members who have used Musicians of Manoa.

Person 1

Person 2

Person 3

Person 4

Person 5

Quality Assurance

ESLint

Musicians of Manoa includes a .eslintrc file to define the coding style adhered to in this application. You can invoke ESLint from the command line as follows:

npm run lint

Here is sample output indicating that no ESLint errors were detected:

> PS E:\ICS314\musicians-of-manoa> npm run lint > > \> nextjs-application-template-1@0.1.0 lint > > \> next lint > > ============= > > WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree. > > You may find that it works just fine, or you may not. > > SUPPORTED TYPESCRIPT VERSIONS: >=4.7.4 <5.6.0 > > YOUR TYPESCRIPT VERSION: 5.6.3 > > Please only submit bug reports when using the officially supported version. > > ============= > ✔ No ESLint warnings or errors

ESLint should run without generating any errors. It's significantly easier to do development with ESLint integrated directly into your IDE (such as IntelliJ).

End to End Testing

Musicians of Manoa uses Playwright to provide automated end-to-end testing.
To run the end-to-end tests in development mode, you must first start up a Musicians of Manoa instance by invoking `npm run dev` in one console window. Then, in another console window, start up the end-to-end tests with:

npm playwright test

If the tests finish successfully, you should see the following in your second console window:

> PS E:\ICS314\musicians-of-manoa> npx playwright test > > Running 6 tests using 6 workers > 6 passed (8.4s) > > To open last HTML report run: > > npx playwright show-report

Possible Enhancements

Here are ideas for more advanced features: