Project Information
We selected the theme Clean up your City. The team members are Ansh Lalwani, Uttam Sri Sai Lakumalla, Aaryan Hakim, and Navdeep Singh.
Inspiration
Many residents in San Jose struggle to figure out how to dispose of household items properly such as furniture, electronics, plastic, and more. To make it easier to understand recycling centers and to make sure the city stays safe recycling, hazardous-waste and other drop-offs we developed this application to serve as a local disposal guidance as simple as snapping a photo.
What it does
Recycling vs. trash
Should parts be separated?E-waste
What components need special handling?Drop-off locations
Nearest centers or city-run collection events.Take-back programs
Manufacturer or retail return options.
All delivered in plain language, formatted for easy reading.
How we built it
Frontend
Next.js with a drag-and-drop image uploader, React to render AI responses, and CSS modules for styling.Backend
A Next.js API route that acceptsmultipart/form-data, converts the uploaded image to Base64, and calls OpenAI’s image-processing endpoint.AI integration
GPT-4.1 mini model fine-prompted to produce localized disposal steps.Hosting & Deployment
Vercel for hosting the next.js deployment and secure our environment-managed API keys.
Challenges we ran into
Endpoint confusion
We initially used thechat.completionsendpoint, which doesn’t support image inputs. Switching to theresponsesendpoint unlocked our ability to send photos directly to the model.UI drag-and-drop polish
The first version of our uploader had accessibility and feedback issues. We refined the hover/focus styles, added click-to-browse fallback, and improved loading/error indicators.Handling multipart uploads
Next.js defaults to JSON parsing, so we had to disablebodyParserand manually parseformData().Image-to-text formatting
Raw AI output came in Markdown; we needed to render lists, links, and bold text cleanly.
Accomplishments that we're proud of
End-to-end flow
From client-side drag-and-drop through backend AI call to polished response cards, everything works in under 3 seconds.Local focus
Custom developer prompt produces San Jose–specific guidance rather than generic recycling tips.Extensible architecture
Modular components and API routes make it easy to add new features (e.g., multi-city support, language options).User experience
Clear loading indicators, error handling, and Markdown rendering create a frictionless interaction.
What we learned
- Next.js’s
FormDatahandling requires disabling the built-in JSON parser. - Prompt engineering is critical: small wording tweaks dramatically improve relevance and clarity.
- UI details such as hover states and drag-and-drop feedback are as important as core functionality for perceived polish.
What's next for Recyclu
Expand local coverage
Add disposal rules for neighboring cities and counties.User accounts & history
Let users save past queries, bookmark instructions, and set reminders.Mobile app
Provide offline guidance and native camera integration for on-the-go disposal help.Community Let the community come together and other companies to list and map out trash cans in the city or other places of recycling. We could have companies list what they would like to take to scrap.
Log in or sign up for Devpost to join the conversation.