BeatMap is a web application that helps travelers and music fans discover live concerts in the cities they plan to visit.
Instead of relying only on artists you already follow, BeatMap makes it easy to find shows by location and date, then adds personalization on top.
Whether you’re a tourist looking to catch a concert while visiting a new city, or a local searching for new artists and venues, BeatMap makes event discovery simple and fun.
- Search concerts by artist, city, or venue
- Filter results by date, genre, location, and price
- View event details including lineup, venue, ticket links, and pricing
- Discover new artists and venues you might not have found otherwise
Other platforms like Bandsintown, Songkick, and Spotify’s “Concerts Near You” mainly focus on alerting you when your favorite artists announce a show.
BeatMap flips this around: it starts with where and when you’ll be and then shows you everything happening there, with optional personalization.
This makes it especially useful for:
- Travelers planning trips
- Locals wanting to explore music nearby
- Fans who enjoy discovering new performers
- Concert search by artist, city, or venue
- Filters & sorting for date, genre, price, and popularity
- Event pages with details, lineup, and ticket links
- Favorites / Wishlist to keep track of shows you’re interested in
- User accounts with secure sign-in
- Interactive map view
- Calendar export (.ics)
- Email alerts for tracked artists
- Backend: Python + FastAPI (REST API)
- Frontend: React + Vite
- Database: Azure SQL Database (SQL Server)
- Deployment: Docker + GitHub Actions + EC2 AWS Virtual Machine
- Tools: Jira, VS Code, AI helpers (ChatGPT, Gemini, Copilot)
BeatMap is currently in development as part of a graduate software engineering project.
Core functionality (search, filters, event details, and user accounts) will be built first, followed by additional features like map view, calendar export, and alerts.
This project is for academic purposes. License details TBD.
As a team, we combined our own work with AI assistance to accelerate development. We used ChatGPT for code generation, architecture, and testing, while focusing on customizing, refining, and adapting the output.
For the Ticketmaster API design, approximately 70% of the code was generated with the help of AI, while 30% was team-written. We also used it to design the API endpoints and set up the Ticketmaster architecture with FastAPI. For the Jambase service, about 60–70% of the code was AI-generated, with the remaining 30% written by the team. We used ChatGPT to understand how to structure the integration of an external API, including how to interact with the API directly and then standardize its output for our system.
For the frontend, roughly 50–60% of the code came from the framework itself, 30% was generated with AI assistance, and about 10% was written by the team. We used ChatGPT to lay the foundation for components and pages with generic code, which we then customized through parameter changes, component configuration, styling, and routing.
Unit tests were originally 100% generated by AI but later modified by the team to fit our needs.
We also used it to review formatting and improve overall code clarity.
- Docker Desktop - Download and install
- Git - For cloning the repository
- API Keys - You'll need keys for:
- Ticketmaster API
- Jambase API
- Groq API
The easiest way to get started is using our automated setup script:
# From the project root
./start-dev.shThis script will:
- ✅ Check that Docker is installed and running
- ✅ Automatically generate SSL certificates for HTTPS
- ✅ Create a
.envfile template for your API keys - ✅ Build and start all services
Script Options:
./start-dev.sh # Interactive setup
./start-dev.sh --yes # Skip prompts, start immediately
./start-dev.sh --clean --yes # Clean rebuild (fixes cache issues)
./start-dev.sh -d -y # Start in background (detached mode)
./start-dev.sh --help # Show all optionsIf you prefer manual control:
-
Generate SSL Certificates (first time only):
cd ssl ./generate-dev-certs.sh cd ..
-
Create Environment File:
cd src cp .env.example .env # If example exists, or create manually # Edit .env and add your API keys
-
Start Services:
cd src docker-compose -f docker-compose.dev.yml up --build
Once running, access:
- Frontend: http://localhost (or https://localhost if SSL is configured)
- Backend API: https://localhost:8443
- API Docs: https://localhost:8443/docs (development only)
Docker Cache Issues: If you see errors about missing files or old configurations:
./start-dev.sh --clean --yesCertificate Errors: Regenerate certificates:
cd ssl
rm -rf dev/
./generate-dev-certs.shView Logs: When running in detached mode:
cd src
docker-compose -f docker-compose.dev.yml logs -fStop Services:
cd src
docker-compose -f docker-compose.dev.yml downThe .env file should contain:
JAMBASE_API_KEY=your_key_here
TM_API_SECRET=your_secret_here
TM_API_KEY=your_key_here
GROQ_API_KEY=your_key_here
TM_BASE_URL=https://app.ticketmaster.com/discovery/v2All services communicate via HTTPS, including internal microservice communication. The application automatically adjusts SSL verification based on environment:
- Development: Uses self-signed certificates with verification disabled
- Production: Uses Let's Encrypt certificates with full verification
For detailed information about HTTPS configuration, certificate management, and troubleshooting, see:
- HTTPS Configuration Guide - Comprehensive HTTPS documentation
- SSL Certificate Management - Certificate scripts and tools