Inspiration
The inspiration for this project comes from our shared preference for wearing clothes made out of cotton over polyester. Cotton is generally more comfortable due to it's natural fibers, hypoallegenic propertities, and breathability. The natural fibers are typically better than synthetic fibers such as polyester, since it's recyclable which is better for the environment.
What it does
This React Native mobile application that helps users searches for higher-quality cotton clothing (90%-100% cotton) from brands like Zara. The user will search for the type of clothing and it will show all the options of higher-quality cotton clothing for that type of clothing the user is looking for.
- Curated product search organized by category (Tops, Pants, Skirts, Dresses)
- Filter and search products by category, price, and cotton percentage
- AI-powered recommendations by integration with Gemini API
- Optimized product images stored locally for fast loading
How we built it
Tech Stack: Frontend:
- React Native (v0.81.5) - Cross-platform mobile framework
- Expo (~54.0.31) - Development platform and tooling
- Expo Router (~6.0.21) - File-based routing
- Axios (^1.13.2) - HTTP client for API requests
- React Native Safe Area Context - Safe area handling
- React Native Gesture Handler - Touch handling
Backend:
- Node.js - Runtime environment
- Express.js (^4.18.2) - Web server framework
- MongoDB (^6.3.0) - NoSQL database for product storage
- MongoDB Atlas - Cloud-hosted database (production)
- Puppeteer (^24.34.0) - Web scraping library
- Cheerio (^1.0.0-rc.12) - HTML parsing
AI/ML
- Google Gemini API (@google/generative-ai ^0.2.1) - AI-powered search and recommendations
- Gemini 2.5 Flash model - Fast response times with large context window
Development Tools
- ESLint - Code linting
- dotenv (^16.3.1) - Environment variable management
- CORS (^2.8.5) - Cross-origin resource sharing
Challenges we ran into
Parsing:
- each brand had too many articles of clothing to parse through, which was really time consuming and even with limitations, like a timeout, it still would not finish parsing through each article before the time runs out.
Accomplishments that we're proud of
- A working mobile application that is able to filter and search for product by category, price and cotton percentage
- AI-Powered Recommendations integrated by Google Gemini API for product suggestions
- Optimized product images stored locally for fast loading
What we learned
- Learned how to build AI prompts using product data to return relevant,explainable recommendation
- Learned how to integrate Google Gemini AI to suppor natural-language queries and generate product recommendations based on preference.
- Learned how to perform web scrapping using Puppeteer to extract real-world product data, like prices, categories and material compostions
What's next for NoPoly
We plan to expand NoPoly across a wider range of clothing brands, materials, and production methods, making it easier for users to find clothing that aligns with their preferences. Nopoly will support more apparel companies, allow users to filter by specific materials such as cashmere, and include filters for production standards like fair-trade and eco-friendly manufacturing.
Built With
- axios
- cheerio
- eslint
- expo.io
- express.js
- git
- github
- javascript
- mongodb
- node.js
- puppeteer
- react
- react-native
Log in or sign up for Devpost to join the conversation.