EverGreen Exchange: Trade and give away your clothes on campus.
Inspiration
We were inspired by platforms like Depop, which showed us how secondhand clothing could feel social and personal rather than just transactional. But those apps are built for the general public, not broke college students. On campus, people constantly outgrow clothes, change their style, or just need to clear space in a dorm room. We wanted to create a free, campus-only version of that idea: a place where students can give away and trade clothes to people literally down the street, with zero fees and a real sense of community. With our platform, students can ensure their pre-loved clothes end up in the hands of someone who wants them instead of in the landfill.
What it does
EverGreen Exchange is a peer-to-peer clothing marketplace just for college students. Here's what you can do:
- List items for free. Upload up to 4 photos, add a description, size, brand, condition, and choose whether you want to trade or give it away for free.
- Browse and filter listings by category, size, condition, campus, and more
- Save items to your wishlist with a heart button
- Contact sellers through the app
- Get AI style advice. Our Style Advisor looks at your wishlisted items and suggests outfits, color combinations, and layering tips powered by Google Gemini
- Campus-only access. Sign up requires a .edu email so it stays within the student community
How we built it
- Backend: Python with Flask, SQLite database via SQLAlchemy, and Flask-Login for user authentication
- Frontend: HTML and CSS with Jinja2 templates, a custom CSS design system (no Bootstrap, except one carousel), and vanilla JavaScript for live features like wishlist toggling
- AI: Google Gemini API for the Style Advisor feature that generates outfit recommendations from a user's saved items
- Storage: Local file storage for listing images with UUID filenames
Challenges we ran into
- Database changes mid-project. We kept needing to update the schema as features evolved, and without proper migrations, it sometimes meant recreating the database from scratch
- Authentication edge cases. Getting sign-up, login, and sessions working correctly across different user states took longer than expected
- Gemini API limits. We hit free-tier quota limits during testing and had to add error handling so the app does not crash when the AI is unavailable
- Merge conflicts. Working as a team on the same files at the same time led to some painful Git conflicts
Accomplishments that we're proud of
- Built a fully functional marketplace in a weekend with real listings and real accounts.
- The filtering and search system is fast and intuitive with active filter chips so users always know what they are browsing
- Kept it campus-safe with .edu email gating without overcomplicating the sign-up flow
- Clean, custom design that does not look like a generic Bootstrap template
What we learned
- How to build a full-stack web app with Flask end to end, including routing, models, authentication, file uploads, and templates all working together
- How to integrate a real AI API (Google Gemini) into a user-facing feature in a meaningful way
- How important database planning is. Changing your schema halfway through costs a lot of time
- How to collaborate with Git under pressure and work through merge conflicts as a team
- That scoping matters. We had bigger ideas that we had to cut, and that is okay
What's next for EverGreen Exchange?
- Multi-campus support. Expand beyond local campuses so students at different schools can trade within their own community
- Mobile app. The web app works on phones but a native app would make listing items and messaging much smoother.
- Ratings and reviews. Let buyers leave feedback so the community stays trustworthy
- Pickup coordination. Built-in tools to schedule a campus meetup for exchanges
- Migrate to a production database. Move from SQLite to PostgreSQL for reliability and scale
Log in or sign up for Devpost to join the conversation.