-
-
-
Using the end user application, listing the events, sorted by date
-
As a restaurant, you can add an event manually
-
As a restaurant, you can a batch of event from a calendar URL
-
After clicking on an event, we get the details
-
On an event, you select an amount of ticket, and buy those tickets using Stripe
-
After buying a ticket, you get scannable QR codes
Inspiration
This summer, a team member encountered a problem while trying to find a restaurant with live music in NYC. The task felt overwhelming because it required manually searching through each restaurant's website to find upcoming events. There were no apps available to automate the search for live events, and tools like Google Maps didn’t display this information. As a result, the process was tedious and inefficient. We identified this as a gap in the market—an opportunity worth exploring.
What it does
The platform makes it easy to find live music events quickly and purchase tickets seamlessly. It uses a combination of web scraping and AI to gather and present event information efficiently, ensuring users can discover live music experiences without the hassle of manual searches.
How we built it
We built the app using Flutter, a cross-platform framework that allowed us to create a seamless and visually appealing user experience for both Android and iOS. The backend is powered by PocketBase, a lightweight yet powerful database and backend solution that provides built-in authentication and real-time capabilities, making it ideal for managing event data.
Our web server is implemented with NestJS, a progressive Node.js framework that offers a scalable and maintainable architecture, ensuring efficient handling of API requests and server-side logic. To enhance the user experience, we integrated OpenAI for AI-driven features like event discovery and recommendations, adding an intelligent layer to our app.
For the admin panel, we chose Next.js, a React-based framework known for its server-side rendering and excellent performance, enabling restaurant owners to easily manage their live music events through a modern and intuitive interface.
Challenges we ran into
We encountered challenges with reliably scraping data from various restaurant websites, as many used inconsistent or dynamic structures.
Accomplishments that we're proud of
We’re proud to have quickly developed a visually appealing and user-friendly UI/UX experience, creating an intuitive application within a short timeframe. In addition, we successfully built an efficient interface for restaurants to manage their events, all while maintaining data consistency using PocketBase.
On the scraper side, we achieved impressive precision through rigorous testing and fine-tuning. Our solution is flexible enough to adapt to new restaurant websites without requiring modifications to the scraper itself, streamlining the process of adding more event sources. These accomplishments highlight the scalability and robustness of our platform.
What we learned
We learned how easily scope creep can occur in a project, especially when adding new features or adjusting to unexpected challenges.
What's next for LiveJam
Ticket Scanner: We plan to implement a ticket scanner to streamline event entry, making it easier for users to check in seamlessly. Map Integration: Integrating a map feature will help users easily locate venues hosting live music events, improving the overall experience. Event Review Prompt: After attending an event, we’ll prompt users to leave reviews during their next login, helping others discover great shows and supporting the artist through tips or donations. Better Search Filters: Enhancing search functionality with more specific filters will allow users to find events based on their preferences, such as genre, location, or date. Recommendation Algorithm: In the future, we’ll introduce a recommendation algorithm that suggests events based on the shows users have attended and their reviews, personalizing the experience.
Built With
- flutter
- nestjs
- nextjs
- openai
- pocketbase
- shadcn
Log in or sign up for Devpost to join the conversation.