Inspiration
Walking across any college campus, you see the same thing: bulletin boards buried under layers of paper flyers. We noticed a common behavior among students in that they take a photo of a flyer "for later," but those photos usually sit forgotten in a camera roll. Important deadlines, club meetings, and social events are missed because the manual friction of typing details into a calendar is too high. We built this project to bridge the gap between a physical image and a digital schedule, ensuring that if a student sees an event, they are actually attending it.
What it does
Introducting Snap2Gcal. Our product allows users to connect via Google authentication, granting access to their calendar. From here any time a user takes a photo of a flyer and uploads it to our app, we will parse and extract the text. Then we will add a entry to the user's gcal reflecting of the flyer details.
How we built it
We engineered a fully functional, event-driven architecture designed for speed and reliability. The system is built to ensure that as soon as a photo is snapped, the entire processing pipeline is set in motion without requiring further user intervention.
API Gateway: Serves as the entry point, receiving image data from the front end and triggering the backend process.
AWS Lambda: Our core logic is hosted on Lambda using Python. This serverless approach allows the app to scale instantly and only consume resources when an event is actually being processed.
Nova AI: We integrated Nova AI to handle the intelligent extraction. Unlike standard OCR, Nova understands context, allowing it to distinguish between a "start time" and a "room number" even on cluttered, artistic flyers.
Google Calendar API: Once the data is parsed into a structured format, the system automatically pushes a request to the Google Calendar API to create the event.
Challenges we ran into
The primary challenge was handling the "messiness" of real-world data. Campus flyers often use stylized fonts, vertical text, or overlapping graphics that confuse traditional text recognition.
We also faced technical hurdles with Relative Date Logic. If a flyer says "This Friday," the AI needs to know the current date to calculate the correct calendar day. We solved this by passing dynamic metadata through our Lambda functions to give the AI a reference point. Additionally, managing the asynchronous "hand-offs" between API Gateway and Lambda required careful configuration to prevent timeouts while the AI processed high-resolution images.
Accomplishments that we're proud of
A fully functional application hosted on AWS, which all of us had limited experience working with. Also this is a product many of our friends have expressed interest in, so it was super cool to make the concept a reality.
What we learned
This project was a deep dive into the power of event-driven architectures. We learned that by decoupling the image capture from the data processing, we could create a much snappier user experience. We also gained significant experience in:
Prompt engineering for Nova AI to ensure consistent JSON outputs for calendar mapping.
Managing secure OAuth2 flows for Google integration.
Optimizing Python deployment packages for minimal latency in a serverless environment.
What's next for Snap2Gcal
Hopefully be able to have a waitlist with users on it, so that once its released we can iterate on user feedback.
Built With
- api-gateway
- docker
- figma
- google-calendar
- lambda
- nova2lite
- python
- react
- s3
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.