- WhatsApp Bot Core Flow [Done]: Set up group message collection, consent DMs, Cloudinary image upload, and Spring Boot backend integration.
- Frontend & Auth [Done]: Built out the listings grid, category filters, listing creation form, login/register views, and the complete authentication flow.
- Backend Security & Architecture [Done]: Shipped JWT-based security with improved error handling and role-based access control for posts and sellers. Cleaned up backend architecture, configuration management, and validation.
- Bot Integration Support [Done]: Added seller lookup by phone number to connect the WhatsApp bot to the backend.
- Gemini API Integration [Partially Done]: Message classification and listing parsing logic is built, but currently mocked out pending an API key/quota fix.
- Image Hosting: We went with Cloudinary. The bot downloads WhatsApp images as base64 and uploads them directly, meaning we only store clean URLs in the database instead of heavy, raw binary data.
- State Management: Implemented a userState Map pattern in the bot. This consolidates all per-user state (listing drafts, consent, registration, timers) into a single keyed object, keeping the codebase much cleaner.
- API Bypass: We hardcoded a temporary bypass for the Gemini classification. This keeps the bot fully functional for testing while we resolve the API limits.
- Gemini API Limits: We hit the free tier quota for the Gemini API. We will test a fresh Google account or upgrade to the paid tier in Sprint 3 to get this unblocked.
Sprint 3 is all about the full end-to-end user flow:
- Finalize the loop between WhatsApp and the site (account creation and bot-to-site linking).
- Integrate magic links for passwordless seller access.
- Set up webhooks for the bot registration flow.
- Resolve the Gemini quota issue and remove the mocked bypass.
- Build out integration testing modules covering the complete flow: WhatsApp -> Bot -> Backend -> Frontend.
Once the core E2E flow is stable, we'll shift focus to usability, polish, and scaling:
- Business Accounts: Adding modularity so "business" flagged accounts (e.g., campus restaurants) can clone preconfigured store pages.
- User Testing: Getting the app in front of real users to find friction points.
- The Final 10%: Knocking out the small quality-of-life (QOL) updates and nice-to-haves that make the platform feel intuitive and logical for daily use.