Skip to content

WuIlxy/LiveSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LiveSync

A full-stack music event discovery platform that helps users find concerts and discover new artists based on song attributes like tempo, energy, and danceability.

React Node.js PostgreSQL Material UI

Features

  • Event Search: Search concerts by artist, venue, location, genre, or date with multi-parameter filtering
  • Vibe-Based Matching: Find events that match the energy, tempo, and danceability of your favorite songs
  • Song Recommendations: Get personalized song suggestions based on events you're interested in
  • Artist Discovery: Explore artist profiles with top songs and vibe analysis
  • Hidden Gems: Discover underrated events with high-energy performances from emerging artists
  • Similar Songs: Find tracks similar to ones you love using computed similarity scores

Tech Stack

Frontend

  • React 18 with React Router
  • Material UI component library
  • Recharts for data visualization

Backend

  • Node.js with Express.js
  • PostgreSQL database (AWS RDS)
  • RESTful API architecture

Database Optimizations

  • Materialized views for pre-computed aggregations
  • Composite indexes for efficient filtering
  • Complex SQL queries with CTEs and window functions

Project Structure

├── client/                 # React frontend
│   ├── src/
│   │   ├── components/     # Reusable UI components
│   │   ├── pages/          # Page components
│   │   └── helpers/        # Utility functions
│   └── package.json
├── server/                 # Express backend
│   ├── server.js           # Express app configuration
│   ├── routes.js           # API route handlers
│   └── package.json
└── migration.sql           # Database optimization scripts

Getting Started

Prerequisites

  • Node.js (v16+)
  • PostgreSQL database
  • npm or yarn

Installation

  1. Clone the repository
git clone https://github.com/yourusername/livesync.git
cd livesync
  1. Install dependencies
# Install server dependencies
cd server
npm install

# Install client dependencies
cd ../client
npm install
  1. Configure the database

Copy server/config.example.json to server/config.json and fill in your database credentials:

{
  "rds_host": "your-rds-host.region.rds.amazonaws.com",
  "rds_port": "5432",
  "rds_user": "your_username",
  "rds_password": "your_password",
  "rds_db": "your_database",
  "server_host": "localhost",
  "server_port": "8080"
}
  1. Run the application
# Start the server (from server directory)
npm start

# Start the client (from client directory)
npm start
  1. Open http://localhost:3000 in your browser

API Endpoints

Endpoint Description
GET /api/search/events Search events with filters (artist, venue, location, genre, date)
GET /api/search/songs Search songs by title or artist
GET /api/search/artists Search artists by name
GET /api/events/:id/top-songs Get top songs for an event's performing artist
GET /api/artists/:id/top-songs Get an artist's top songs by popularity
GET /api/songs/:id/similar Find similar songs based on audio features
GET /api/recommendations/events-by-vibe Find events matching a song's vibe profile
GET /api/recommendations/events-by-genre Find events by song genre
GET /api/recommendations/songs-by-event Get song recommendations based on event
GET /api/events/by-vibe Filter events by energy/danceability (hype vs chill)
GET /api/events/hidden-gems Discover underrated high-energy events
GET /api/artists/:id/vibe-profile Get artist's genre/emotion breakdown

Database Schema

The application uses the following main tables:

  • events - Concert/event information
  • artists - Artist profiles
  • songs - Song metadata with audio features (tempo, energy, danceability, etc.)
  • similarsongs - Pre-computed song similarity scores

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Song data sourced from Spotify audio features
  • Event data aggregated from public concert listings
  • This project could not have been completed without the contributions of my wonderful group members

About

A full-stack music event discovery platform with vibe-based matching and personalized recommendations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors