Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
05c5aa2
Reset
vas2000-emu Sep 14, 2025
bc2edcb
Merge branch 'main' of https://github.com/COSC481W-2025Fall/Vybe
vas2000-emu Sep 14, 2025
dc47d75
Merge branch 'main' of https://github.com/COSC481W-2025Fall/Vybe
vas2000-emu Sep 14, 2025
7990736
Fixed small errors with README files.
vas2000-emu Sep 14, 2025
bbb3b2c
Resolved merge conflicts
vas2000-emu Sep 15, 2025
3b15021
Git commit issue
vas2000-emu Sep 15, 2025
d2a9c58
Adding PBI Issue Template
vas2000-emu Sep 15, 2025
7da135f
Fixing issue template
vas2000-emu Sep 15, 2025
c15f1bd
Final Issue Template fix
vas2000-emu Sep 15, 2025
6cfae59
chore: stop tracking files now ignored by .gitignore
vas2000-emu Sep 20, 2025
5cf2219
chore: honor .gitignore and stop tracking ignored files
vas2000-emu Sep 20, 2025
cb58dc3
chore: honor .gitignore (stop tracking build outputs)
vas2000-emu Sep 21, 2025
627fe5b
chore: ignore test files
vas2000-emu Sep 21, 2025
0a30ef7
chore: ignore test files
vas2000-emu Sep 21, 2025
c51c441
Merge branch 'main' of https://github.com/COSC481W-2025Fall/Vybe
HuTaoEMU Sep 22, 2025
9896757
Merge branch 'main' of https://github.com/COSC481W-2025Fall/Vybe
HuTaoEMU Sep 23, 2025
bd6bf43
added playlists onto the trending communities
HuTaoEMU Nov 19, 2025
867f68e
allow linked playlists to be used with trending communities
HuTaoEMU Nov 24, 2025
3ec744b
attempt to fix server side request forgery
HuTaoEMU Nov 24, 2025
4e20728
2nd attempt to fix server side request forgery
HuTaoEMU Nov 24, 2025
f7f6be2
3rd attempt to fix server side request forgery
HuTaoEMU Nov 24, 2025
e0451f3
4th attempt to server request forgery
HuTaoEMU Nov 24, 2025
99d5a37
Resolving CodeQL analysis error on github
HuTaoEMU Nov 24, 2025
9ff1d73
Resolve merge conflict in .gitignore and add CodeQL workflow (JavaScr…
HuTaoEMU Nov 24, 2025
dc8af38
Fixing conflicts (2nd attempt)
HuTaoEMU Nov 24, 2025
674815f
testing bashrc update to simplify some bash processes.
HuTaoEMU Nov 25, 2025
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
314 changes: 314 additions & 0 deletions -remote --heads origin  findstr homepage

Large diffs are not rendered by default.

37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/pbi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: "Product Backlog Item"
about: "Create a new Product Backlog Item in INVEST format"
title: "<Feature Name> [PBI]"
labels: ["PBI"]
assignees: []
---

## User Story

As a <persona>, I want <feature> so that <business value>.

- **Persona**: <who is using this?>
- **Feature**: <what capability is being built?>
- **Business Value**: <why this matters to the product or user>

---

## Reference(s)

- Link(s) to design docs, wireframes, or related PBIs if any

---

## Tasks

- [ ] Task 1
- [ ] Task 2
- [ ] Task 3

---

## Acceptance Criteria

- [ ] Clear condition 1 that must be true
- [ ] Clear condition 2 that must be true
- [ ] Any error handling or edge cases
37 changes: 37 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: "CodeQL"

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '0 0 * * 0'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'javascript-typescript' ]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
18 changes: 18 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,39 @@ yarn-error.log*

# env
.env*
<<<<<<< HEAD
=======
.env.local
.env.development.local
.env.test.local
.env.production.local
>>>>>>> 2cf79ae775545c31935108f06979a795fe08bdad

# misc
.DS_Store
.vercel/
*.tsbuildinfo
<<<<<<< HEAD
# test files
clean.txt
bad.txt
secret.txt
=======
Thumbs.db
Desktop.ini
>>>>>>> 2cf79ae775545c31935108f06979a795fe08bdad

# test files
clean.txt
bad.txt
secret.txt
<<<<<<< HEAD
playwright-report/

.cursorignore
sprint-1-assignee-breakdown.txt
get-issues.ps1
=======

# Python
venv/
Expand Down Expand Up @@ -103,3 +120,4 @@ dist/
*.tsbuildinfo

issues/
>>>>>>> 2cf79ae775545c31935108f06979a795fe08bdad
38 changes: 38 additions & 0 deletions apps/web/.github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: "CodeQL"

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '0 0 * * 0'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'javascript-typescript' ]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

113 changes: 75 additions & 38 deletions apps/web/.gitignore
Original file line number Diff line number Diff line change
@@ -1,68 +1,105 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage
/test-results
/playwright-report
/playwright/.cache

# next.js
/.next/
/out/

# production
/build
# next / build
.next/
out/
build/

# misc
.DS_Store
*.pem
Thumbs.db
Desktop.ini
# deps
node_modules/

# debug
# logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
# env
.env*
.env.local
.env.development.local
.env.test.local
.env.production.local

# vercel
.vercel

# typescript
# misc
.DS_Store
.vercel/
*.tsbuildinfo
next-env.d.ts
Thumbs.db
Desktop.ini

# test files
clean.txt
bad.txt
secret.txt

# Python
venv/
.venv/
backend/.venv/
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# pytest
.pytest_cache/
.coverage
htmlcov/
.mypy_cache/
.pytest_cache/
.coverage
backend/htmlcov/
backend/coverage.xml

# Playwright
playwright-report/
test-results/
playwright/.cache/

# docs (if you want to ignore extracted wireframes)
docs/

# Cursor/IDE
.cursorignore
.claude/

# Scripts and temporary files
get-issues.ps1
update-*.ps1
issue_*_update.json
*.ps1

# Sprint/assignee files (if temporary)
sprint-*-assignee-breakdown.txt
*-assignee-breakdown.txt

# IDE
.idea/
.vscode/
*.swp
*.swo
*~
.project
.classpath
.settings/

# OS
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Testing outputs
/coverage/
# Testing
coverage/
*.lcov
.nyc_output/

# Build outputs
dist/
*.tsbuildinfo

issues/
5 changes: 5 additions & 0 deletions apps/web/app/api/spotify/[...path]/route.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ async function handler(req, context) {
} catch (e) {
// Log full error details on the server for debugging
console.error('[proxy] token error:', e);
<<<<<<< HEAD
// Respond with a generic error message to the client
return new NextResponse(JSON.stringify({ error: 'token_error', message: 'An unexpected error occurred.' }), { status: 401 });
=======

// Return a more helpful error message to the client
const errorMessage = e.code === 'NO_TOKENS'
Expand All @@ -46,6 +50,7 @@ async function handler(req, context) {
headers: { 'Content-Type': 'application/json' }
}
);
>>>>>>> 2cf79ae775545c31935108f06979a795fe08bdad
}

const params = await context.params;
Expand Down
4 changes: 4 additions & 0 deletions apps/web/app/api/user/profile/route.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,11 @@ export async function GET() {
if (spotifyToken) {
// Try to fetch Spotify account info if token is valid
try {
<<<<<<< HEAD
const { getValidAccessToken } = await import('../../../lib/spotify.js');
=======
const { getValidAccessToken } = await import('../../../../lib/spotify.js');
>>>>>>> 2cf79ae775545c31935108f06979a795fe08bdad
const accessToken = await getValidAccessToken(supabase, user.id);
const spotifyRes = await fetch('https://api.spotify.com/v1/me', {
headers: { 'Authorization': `Bearer ${accessToken}` },
Expand Down
Loading
Loading