Skip to content

Concert events for your top artists on Spotify. Waiting for user extension.

Notifications You must be signed in to change notification settings

sarahbabar/spotaticket

Repository files navigation

SPOTATICKET ⭐

SpotATicket lets Spotify users view upcoming concerts for their top artists.

I often missed concerts for my favourite artists because I found out about them too late or not at all. I wanted a personalized way to see events for the artists I actually listen to without having to filter and search for them on my own.

Gallery

Large Screen View

tickets large screen view

Small Screen View

tickets small screen view

Demo

demo

More Information

  1. About
  2. Tech Stack
  3. APIs Used
  4. Database Design
  5. Public API Reference

About

Implements the Spotify OAuth 2.0 flow to securely login users and access their top artists' data. Web Auth best practices were followed for a secure and seamless login experience.

The artist data is then used to fetch upcoming concert events using a self-vendored events API. This API is built on top of data fetched from the TicketMaster API, streamlining the event discovery process for users while providing them with a uniquely personalized experience.

The data is fetched and filtered daily ensuring users have the most up-to-date information on concerts for their favorite artists.

Tech Stack

Svelte NodeJS TailwindCSS Express.js TypeScript SQLite

Frontend: Sveltekit with TypeScript, styled with Tailwind CSS.

Backend: Express with Node.js

Database: SQLite

APIs Used

Database Design

The database structure is divided into two main tables: events and attractions. The database also includes state and oauth tables. The events and attractions tables are doubled up to ensure that data is still available during the daily update process.

The events are fetched and cached from TicketMaster to abide by their API rate limits as well as to reduce the amount of data moving through the server. SQLite was chosen as the database due to it's simplicity attributing to the small footprint of the project.

All tables are normalized to reduce redundancy and improve data integrity (BCNF).

Public API Reference

Search Artist's Events

  GET /api/search?spotifyID=${spotifyID}&artistName=${artistName}
Parameter Type Description
artistName string Required. Name of the artist
spotifyID string Optional. Spotify ID of the artist (takes precedence over artistName)