Inspiration
Fashion shopping in Ghana and across Africa is fragmented — buyers scroll endlessly through social media DMs, sellers struggle to manage inventory, and there's no intelligent layer connecting the two. We wanted to build something that felt like a premium, modern marketplace but was built specifically for this market.
What it does
Savvy is an AI-powered fashion marketplace that connects buyers and sellers in real time.
For buyers:
- Browse curated fashion products with smart search by keyword, location, or image
- Get personalized AI fashion advice and outfit recommendations
- Chat directly with sellers — a product card is automatically shared when a conversation starts
- Add to cart, place orders, and track deliveries
For sellers:
- A full seller dashboard with live inventory analytics, revenue charts, and product views
- AI tools: listing generator, price suggester, inventory analysis, visibility tips, and market trends
- Real-time inbox — buyers' enquiries arrive instantly with the product card attached
- Manage products, categories, stock, and orders from one place
How we built it
| Layer | Technology |
|---|---|
| Frontend | React, TypeScript, TailwindCSS, Recharts, shadcn/ui |
| Backend | Java Spring Boot, Spring Security (JWT), WebSocket (STOMP) |
| Database | PostgreSQL (Hibernate/JPA) |
| Media | Cloudinary (product images, profile pictures) |
| AI | Anthropic Claude API |
| Tunneling | ngrok (development) |
The chat system uses WebSocket with STOMP — when a buyer starts a conversation, the backend automatically saves a structured product card as the first message and pushes it to the seller's inbox in real time.
The AI layer is powered by Claude and handles fashion advice, product listing generation, price suggestions, inventory analysis, and market trend insights.
Challenges we faced
- Real-time chat architecture — designing the WebSocket flow so product cards appear instantly in the seller's inbox without polling
- Multi-role authentication — buyers and sellers have separate auth flows, JWT principals, and permission layers within the same Spring Security config
- AI response parsing — Claude returns structured JSON for inventory analysis; building a frontend renderer that gracefully handles both plain text and structured data responses
- Image handling — managing Cloudinary upload flows for products with multiple images, display ordering, and efficient retrieval
What we learned
- How to build a production-grade real-time messaging system with Spring WebSocket and STOMP
- Prompt engineering for structured AI responses and how to parse them reliably on the frontend
- Designing multi-tenant seller/buyer systems with clean separation of concerns
What's next
- Mobile app (React Native)
- Payment integration (Paystack/MTN Mobile Money)
- Order tracking with live delivery updates
- AI-powered size recommendations
- Seller analytics with deeper sales trends
Built With
- asi
- cloudinary
- java
- postgresql
- react
- springboot
- tailwind
- typescript
- websockets
Log in or sign up for Devpost to join the conversation.