TicketClock.com is a web-based ticket auction app which allows sellers to list tickets at whatever price and that price will reduce until a buyer is found OR the time of the event. This model is also know as a 'dutch' or 'time-based' auction.
The project, created entirely by Emily Ball, was developed for her Ada Developers Academy Capstone project. For additional information or questions, please reach out directly to Emily at [email protected].
Backend
- Language - Java
- Framework - Spring Boot
- Database - MongoDB
Frontend
- Languages - HTML/css/JavaScript
- Framework - React JS
- Library - Bootstrap
- Google Maps Visual Component
- US States Visual Component
External APIs
- Eventful.com api - Seed Databse with Events/Venues/Performers
- Google Maps api - Frontend Map Components
- Google Geocoding api - Location to Lat/Lng
Deployment
- MongoDB Atlas - Database
- AWS Elastic Beanstalk + EC2 - Backend API
- AWS S3 - Frontend Site
- AWS Route 53 - Domain
Capstone is the largest undertaking while at Ada Developers Academy. Given roughly 3 weeks, students take on roles of both the product owner and developer for their own full stack concepts. It is up to students to decide what and how things get built, given the added challenge of incorporating at least 3 new learned technologies. Projects are demoed at the end of captsone during a science fair style celebration. For additional information on Ada Capstone, vist Ada's project repo here.
- Demonstrate self-direction, time management, and independent learning
- Learn and implement new technologies
- Complete a product lifecycle from conception to delivery
- Utilize agile practices learned to assist in project completion
- Exposure to statically typed language
- Exposure to non-relational database
- Exposure to deploying with cloud services such as AWS
- Additional practice working with API integrations
Often I see resale tickets going for ridiculously high prices just hours before the show only to never be purchased. This means unhappy fans AND loss of potential revenue for sellers. Other times, I buy tickets to a show only to find I can't go. I'd be happy to get whatever I can get for the tickets, otherwise I want to just give them away cheap to another fan.
To solve this problem, I propose developing a web-based app which allows sellers to list tickets at whatever price and that price will reduce until a buyer is found OR the time of the event.
Currently, you can list tickets on sites like Ticketmaster, StubHub, or Craigslist for a certain price, without being sure you're getting the market rate, or you can use an auction-based site like Ebay. While Ebay is great, their traditional auction model doesn't always work well for the unique supply and demand of an asset like tickets which are worthless after a specific time.
My app targets concert goers and event attendenders. Both those who have extra tickets and want to get rid of them, and those who don't have tickets yet but want good deals on them.
Original Wireframes using Figma.com
Entity Relationship Diagram using lucidchart.com
Checkout site demo at ticketclock.com or run locally by following setup instructions below.
- Fork and clone project folder name 'ticket-clock-api'
- Set up your own MongoDb Atlas cluster and configure mongoDB 'URI' and 'database' name
- Configure Eventful.com API key and Google GeoCoding API key
- Configure
@CrossOrigin(origins = "http://ticketclock.com")
annotation within controller classes to allow frontend URL - Run Spring Boot application locally by executing the 'main' method in 'com.TicketTime.TicketTime.TicketTimeApplication'
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Spring Boot Starter Security default username is user and a generated security password is printed in the console like 'generated security password: 0123abc4-5678-9ef0-1g2h-i3456jklmno7'
- Fork and clone project folder named 'ticket-clock-api'
- Install dependencies with
npm install
- Configure Spring security username, password, and backend API base URL
- Configure Google Maps API security key
- Start server locally with
npm start