Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
1f9854f
Update project contributors in README
ccao-angelo Jul 5, 2026
f479660
Mark tasks as completed in milestone1.md
ccao-angelo Jul 5, 2026
19e64d6
Check off completed tasks and update reflections
pinsoegustave Jul 6, 2026
6988346
milestone1 draft
arminerika Jul 6, 2026
88c3046
Merge branch 'main' of arminerika:arminerika/web103_finalproject
arminerika Jul 6, 2026
a3a705d
readme format typo
arminerika Jul 6, 2026
2579cc9
Edit inspiration section in README
caroherrera24 Jul 6, 2026
4e0d0cb
add entity relationship diagram image
caroherrera24 Jul 12, 2026
a755527
milestone2 submission
arminerika Jul 12, 2026
85a15c8
update ERD
caroherrera24 Jul 12, 2026
539a1bf
Format wireframe list for better readability
ccao-angelo Jul 12, 2026
43260c1
fix list format
arminerika Jul 13, 2026
f066df5
Issue #1: project setup, schema, and seed data
arminerika Jul 17, 2026
3f9cf48
Merge pull request #21 from WEB103-Group9/feature/project-setup-schema
arminerika Jul 17, 2026
9b62a52
Issue #2: Artist CRUD API, Directory, and Detail page
builtbyd3v Jul 18, 2026
994458d
Merge pull request #22 from WEB103-Group9/issue-2-artist-crud-directo…
caroherrera24 Jul 18, 2026
6beb861
Issue #3: Follow / Unfollow
builtbyd3v Jul 18, 2026
22cc298
Merge pull request #23 from WEB103-Group9/issue-3-follow-unfollow
arminerika Jul 18, 2026
6ae5dde
finish merch backend
pinsoegustave Jul 19, 2026
85459c8
Issue 5: Add Quick View Slide-out Panel with styles
Jul 19, 2026
5acaa8b
Add profile fields (bio, socials) to GET /api/artists list response
builtbyd3v Jul 19, 2026
5c5cce7
implement getPosts
caroherrera24 Jul 19, 2026
3ca7651
implement create, update, and delete operations for posts
caroherrera24 Jul 20, 2026
aecb411
Merge pull request #24 from WEB103-Group9/fix/artists-list-profile-fi…
arminerika Jul 20, 2026
f0e5d90
added create and edit post form
caroherrera24 Jul 20, 2026
fb9c8ba
Merge pull request #25 from WEB103-Group9/issue5/quick-view-panel
ccao-angelo Jul 20, 2026
1735e98
fix post header styling and add toast for new post published
caroherrera24 Jul 20, 2026
2a5574d
Merge pull request #26 from WEB103-Group9/9-issue-4-artist-posts
caroherrera24 Jul 20, 2026
411b100
milestone 3 submission
arminerika Jul 20, 2026
ba3bbd9
milestone 3 submission readme
arminerika Jul 20, 2026
6d6fa8d
solved merch table errors
pinsoegustave Jul 20, 2026
880be3e
Fix: add CASCADE to reset.js drop statements to handle dependent tables
arminerika Jul 24, 2026
76e428f
clean up leftover vite boilerplate + add sona branding
arminerika Jul 24, 2026
c5a5f2f
Pre-auth cleanup: bug fixes, permission gating, seed data, styling
arminerika Jul 24, 2026
266475c
Merge pull request #28 from WEB103-Group9/fix/pre-auth-cleanup
arminerika Jul 24, 2026
9c13286
update the routes to match user_id
pinsoegustave Jul 24, 2026
1cffb9c
merch page frontend
pinsoegustave Jul 24, 2026
12041b6
Added all forms, merch part on the artist
pinsoegustave Jul 24, 2026
64f049e
Merge branch 'main' into 11-issue-6-merch-features-1-2-people
arminerika Jul 24, 2026
b4001e7
Merge pull request #29 from WEB103-Group9/11-issue-6-merch-features-1…
arminerika Jul 24, 2026
81a5344
add delete button, add empty state for posts section, edit the edit ,…
caroherrera24 Jul 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 71 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,102 @@
# [your app name here]
# Sona

CodePath WEB103 Final Project

Designed and developed by: [your names here]
Designed and developed by:

- Gustave Ntwali
- Abdul Khan
- Carolina Herrera
- Chau Cao
- Dev Goswami
- Armin Erika Polanco

🔗 Link to deployed app:

## About

### Description and Purpose

[text goes here]
**Sona** is a full-stack web app where users can browse artist profiles, follow their favorite artists, view upcoming concert dates, and shop artist merch all in one place.

Music fans often have to juggle multiple platforms to keep up with an artist. From social media for updates, ticketing sites for shows, separate stores for merch. **Sona** exists to bring that experience together in one app, making it easier for fans to stay connected and for artists to reach their community directly.

### Inspiration

[text goes here]
This project builds on ideas from several of our previous coursework projects. Multiple members of our group have worked on music-themed projects earlier in the course that explored artist/music reference content, vinyl and merch customization, and community-oriented spaces. **Sona** brings these ideas together into a single hub where fans can follow artists, engage with a community built around music, and shop artist merch. Furthermore, we take inspiration from existing platforms, such as Ticketmaster and Bandcamp, to build from.

## Tech Stack

Frontend:

Backend:
- Frontend: React (Vite), React Router
- Backend: Express, Node.js, PostgreSQL

## Features

### [Name of Feature 1]
### ✅ Artist Directory

- Browse all artists with genre, bio, and profile image. Search bar w/ Filter by genre.

- ![Artist Directory](https://i.imgur.com/aYOxXjl.gif)

### ✅ Follow Artists

- Users can follow/unfollow artists to build a personalized list of who they're keeping up with, with an optional "notify me on release" toggle.

- ![Follow Artists](https://i.imgur.com/foZSTEV.gif)

### ✅ Artist Posts

Artist Admins can post updates like new merch drops, show announcements, news, etc that will be visible to their followers.

- ![Artist Posts](https://i.imgur.com/Vj749I2.gif)

### ✅ Artist Quick-View Panel

- Slide-out modal showing artist details and discography without navigating away from the current page.

- ![Artist Quick-View Panel](https://i.imgur.com/8dW0ZTp.gif)

### Merch Shop with Filtering

- Browse merch (vinyl, CD, apparel) filtered by artist, genre, or format.

- [gif goes here]

### Order System

- Add merch to a cart and place an order; view order history.

- [gif goes here]

### Concert Listings

- View upcoming shows per artist, filterable by city and/or date.

- [gif goes here]

### Following Feed

- A personalized feed combining posts, upcoming shows, and merch drops from every artist a fan follows.

- [gif goes here]

[short description goes here]
### (Stretch) Spotify Connect

[gif goes here]
- Link a Spotify account to import playlists and generate personalized recommendations.

### [Name of Feature 2]
- [gif goes here]

[short description goes here]
### (Stretch) Sona Mix

[gif goes here]
- Auto-generate a custom playlist from the artists you follow, featured right on your profile.

### [Name of Feature 3]
- [gif goes here]

[short description goes here]
### (Stretch) Real Payment Integration

[gif goes here]
- Real checkout system built on top of the existing order system.

### [ADDITIONAL FEATURES GO HERE - ADD ALL FEATURES HERE IN THE FORMAT ABOVE; you will check these off and add gifs as you complete them]
- [gif goes here]

## Installation Instructions

Expand Down
26 changes: 13 additions & 13 deletions milestones/milestone1.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,27 @@ This document should be completed and submitted during **Unit 5** of this course

This unit, be sure to complete all tasks listed below. To complete a task, place an `x` between the brackets.

- [ ] Read and understand all required features
- [ ] Understand you **must** implement **all** baseline features and **two** custom features
- [ ] In `readme.md`: update app name to your app's name
- [ ] In `readme.md`: add all group members' names
- [ ] In `readme.md`: complete the **Description and Purpose** section
- [ ] In `readme.md`: complete the **Inspiration** section
- [ ] In `readme.md`: list a name and description for all features (minimum 6 for full points) you intend to include in your app (in future units, you will check off features as you complete them and add GIFs demonstrating the features)
- [ ] In `planning/user_stories.md`: add all user stories (minimum 10 for full points)
- [ ] In `planning/user_stories.md`: use 1-3 unique user roles in your user stories
- [ ] In this document, complete all thre questions in the **Reflection** section below
- [x] Read and understand all required features
- [x] Understand you **must** implement **all** baseline features and **two** custom features
- [x] In `readme.md`: update app name to your app's name
- [x] In `readme.md`: add all group members' names
- [x] In `readme.md`: complete the **Description and Purpose** section
- [x] In `readme.md`: complete the **Inspiration** section
- [x] In `readme.md`: list a name and description for all features (minimum 6 for full points) you intend to include in your app (in future units, you will check off features as you complete them and add GIFs demonstrating the features)
- [x] In `planning/user_stories.md`: add all user stories (minimum 10 for full points)
- [x] In `planning/user_stories.md`: use 1-3 unique user roles in your user stories
- [x] In this document, complete all thre questions in the **Reflection** section below

## Reflection

### 1. What went well during this unit?

[👉🏾👉🏾👉🏾 your answer here]
We agreed on a concept quickly.

### 2. What were some challenges your group faced in this unit?

[👉🏾👉🏾👉🏾 your answer here]
Finalizing details across all members can be challenging but we will hopefully implement a better system going forward.

### 3. What additional support will you need in upcoming units as you continue to work on your final project?

[👉🏾👉🏾👉🏾 your answer here]
General guidance on keeping the team coordinated and on track as we move into the more technical milestones.
20 changes: 10 additions & 10 deletions milestones/milestone2.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,24 @@ This document should be completed and submitted during **Unit 6** of this course

This unit, be sure to complete all tasks listed below. To complete a task, place an `x` between the brackets.

- [ ] In `planning/wireframes.md`: add wireframes for at least three pages in your web app.
- [ ] Include a list of pages in your app
- [ ] In `planning/entity_relationship_diagram.md`: add the entity relationship diagram you developed for your database.
- [ ] Your entity relationship diagram should include the tables in your database.
- [ ] Prepare your three-minute pitch presentation, to be presented during Unit 7 (the next unit).
- [ ] You do **not** need to submit any materials in advance of your pitch.
- [ ] In this document, complete all three questions in the **Reflection** section below
- [x] In `planning/wireframes.md`: add wireframes for at least three pages in your web app.
- [x] Include a list of pages in your app
- [x] In `planning/entity_relationship_diagram.md`: add the entity relationship diagram you developed for your database.
- [x] Your entity relationship diagram should include the tables in your database.
- [x] Prepare your three-minute pitch presentation, to be presented during Unit 7 (the next unit).
- [x] You do **not** need to submit any materials in advance of your pitch.
- [x] In this document, complete all three questions in the **Reflection** section below

## Reflection

### 1. What went well during this unit?

[👉🏾👉🏾👉🏾 your answer here]
Our team successesfuly collaborated and made decisions as a group.

### 2. What were some challenges your group faced in this unit?

[👉🏾👉🏾👉🏾 your answer here]
It can be difficult to find a time where everyone is available.

### 3. What additional support will you need in upcoming units as you continue to work on your final project?

[👉🏾👉🏾👉🏾 your answer here]
Delegating the coding portion between all group members moving forward.
45 changes: 23 additions & 22 deletions milestones/milestone3.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,44 +8,45 @@ This unit, be sure to complete all tasks listed below. To complete a task, place

You will need to reference the GitHub Project Management guide in the course portal for more information about how to complete each of these steps.

- [ ] In your repo, create a project board.
- *Please be sure to share your project board with the grading team's GitHub **codepathreview**. This is separate from your repository's sharing settings.*
- [ ] In your repo, create at least 5 issues from the features on your feature list.
- [x] In your repo, create a project board.
- _Please be sure to share your project board with the grading team's GitHub **codepathreview**. This is separate from your repository's sharing settings._
- [x] In your repo, create at least 5 issues from the features on your feature list.
- List the title of each issue you created:
1.
2.
3.
4.
5.
- [ ] In your repo, update the status of issues in your project board.
- [ ] In your repo, create a GitHub Milestone for each final project unit, corresponding to each of the 5 milestones in your `milestones/` directory.
> 1. Set up Express + PostgreSQL project structure & schema
> 2. Artist CRUD + Directory + Detail Page
> 3. Follow / Unfollow
> 4. Artist Posts
> 5. Quick View Slide-Out Panel
- [x] In your repo, update the status of issues in your project board.
- [x] In your repo, create a GitHub Milestone for each final project unit, corresponding to each of the 5 milestones in your `milestones/` directory.
- List the name of each milestone you created:
1.
2.
3.
- [ ] Set the completion percentage of each milestone. The GitHub Milestone for this unit (Milestone 3 - Unit 7) should be 100% completed when you submit for full points.
- [ ] In `readme.md`, check off the features you have completed in this unit by adding a ✅ emoji in front of the feature's name.
- [ ] Under each feature you have completed, include a GIF showing feature functionality.
- [ ] In this documents, complete all five questions in the **Reflection** section below.
> 1. Milestone 3
> 2. Milestone 4
> 3. Milestone 5
> 4. Stretch Goals
- [x] Set the completion percentage of each milestone. The GitHub Milestone for this unit (Milestone 3 - Unit 7) should be 100% completed when you submit for full points.
- [x] In `readme.md`, check off the features you have completed in this unit by adding a ✅ emoji in front of the feature's name.
- [x] Under each feature you have completed, include a GIF showing feature functionality.
- [x] In this documents, complete all five questions in the **Reflection** section below.

## Reflection

### 1. What went well during this unit?

[👉🏾👉🏾👉🏾 your answer here]
> Learned alot about project management and organization for coding projects and had a succesful first sprint.

### 2. What were some challenges your group faced in this unit?

[👉🏾👉🏾👉🏾 your answer here]
> Coordinating around issue dependencies took some time to get right with planning and thinking ahead.

### Did you finish all of your tasks in your sprint plan for this week? If you did not finish all of the planned tasks, how would you prioritize the remaining tasks on your list?

[👉🏾👉🏾👉🏾 your answer here]
> Yes. We set up our GitHub Project board, issues, and milestones, and got real backend/database work started, including both of our required one-to-one relationships and our full-CRUD entity.

### Which features and user stories would you consider “at risk”? How will you change your plan if those items remain “at risk”?

[👉🏾👉🏾👉🏾 your answer here]
> Nothing is currently at risk, everything planned for this unit was finished. Going forward, the next sprints will have more complicated features so hoping the best for that.

### 5. What additional support will you need in upcoming units as you continue to work on your final project?

[👉🏾👉🏾👉🏾 your answer here]
> Guidance on authentication once we reach that unit — several features (Artist Admin permissions, a real "who's logged in" concept) are currently using temporary placeholders until real login is covered in class.
69 changes: 69 additions & 0 deletions milestones/progress_report_3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Milestone 3 Progress Report

## GitHub Project Setup

Project board created:

> YES

Project board shared with codepathreview:

> YES

## Issues Created

List the title of each issue you created, one per line:

> - Issue 0: Local Dev Environment Setup
> - Issue 1: Set up Express + PostgreSQL project structure & schema
> - Issue 2: Artist CRUD + Directory + Detail Page
> - Issue 3: Follow / Unfollow
> - Issue 4: Artist Posts
> - Issue 5: Quick View Slide-Out Panel

## GitHub Milestones Created

List the name of each GitHub Milestone you created, one per line:

> - Milestone 3
> - Milestone 4
> - Milestone 5
> - Stretch Goals

## Milestone 3 Completion

Replace the blank before the percent sign with a number from 0 to 100.

> Completion percentage for Milestone 3: 100%

List each issue you completed this unit and the main file or folder where that work lives, one per line:

- Example: User login - server/routes/auth.js

> - Project Setup + Schema
> - server/config/
> - Artist CRUD + Directory + Detail Page
> - server/routes/artists.js
> - client/src/pages/Directory.jsx
> - client/src/pages/ArtistDetail.jsx
> - Follow / Unfollow
> - server/routes/follows.jsx
> - client/src/components/FollowButton.jsx
> - Artist Posts
> - server/routes/posts.js
> - client/src/pages/PostCreateForm.jsx
> - client/src/pages/PostEditForm.jsx
> - client/src/components/ArtistPost.jsx
> - Quick View Slide-Out Panel
> - client/src/components/QuickViewPanel.jsx

## Features Completed This Unit

List each feature you completed and checked off in readme.md this unit, one per line:

- Example: Search events by category

> - Artist Directory (browse, search, genre filter)
> - Follow / Unfollow artists
> - Artist Posts
> - Quick View Slide-Out Panel
18 changes: 10 additions & 8 deletions planning/entity_relationship_diagram.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@ Reference the Creating an Entity Relationship Diagram final project guide in the

## Create the List of Tables

[👉🏾👉🏾👉🏾 List each table in your diagram]
1. users
2. artists
3. admin
4. profile
5. follows
6. concerts
7. merch
8. albums
9. purchases

## Add the Entity Relationship Diagram

[👉🏾👉🏾👉🏾 Include an image or images of the diagram below. You may also wish to use the following markdown syntax to outline each table, as per your preference.]

| Column Name | Type | Description |
|-------------|------|-------------|
| id | integer | primary key |
| name | text | name of the shoe model |
| ... | ... | ... |
![sona erd](https://i.imgur.com/jX0Vh5t.png)
21 changes: 18 additions & 3 deletions planning/user_stories.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,25 @@ Reference the Writing User Stories final project guide in the course portal for

## Outline User Roles

[👉🏾👉🏾👉🏾 Include at least at least 1, but no more than 3, user roles.]
- Fan
- Artist Admin

## Draft User Stories

[👉🏾👉🏾👉🏾 Include at least at least 10 user stories in this format:]
Include at least at least 10 user stories in this format:

1. As a [user role], I want to [what], so that [why].
_As a [user role], I want to [what], so that [why]._

1. As a Fan, I want to create an account and log in, so that I can save my preferences and see order history.
2. As a Fan, I want to browse a list of artists, so that I can discover new music.
3. As a Fan, I want to view an individual artist's profile page, so that I can see their bio, socials, and Spotify link.
4. As a Fan, I want to follow an artist, so that I get updates when they release new merch or announce shows.
5. As a Fan, I want to unfollow an artist, so that I can curate who I see updates from.
6. As a Fan, I want to browse merch filtered by artist or format, so that I can find what I want quickly.
7. As a Fan, I want to add items to a cart and place an order, so that I can purchase merch.
8. As a Fan, I want to view my order history, so that I can track past purchases.
9. As a Fan, I want to see upcoming concerts for an artist I follow, filtered by city, so that I can find shows near me.
10. As a Fan, I want to see a quick-view panel when I click an artist, so that I can preview their info without leaving the page.
11. As an Artist Admin, I want to create/edit my artist profile, so that fans have accurate bio and social info.
12. As an Artist Admin, I want to add new merch items to my store, so that fans can purchase them.
13. As an Artist Admin, I want to post upcoming concert dates, so that fans know where to see me live.
Loading