Context
The idea was to explore shopping that starts with a conversation while keeping the catalog and cart as concrete references. Instead of an isolated chat, the prototype connects product and stock questions to listing, adding, and removing items in the shopping experience.
My contribution
I developed the Expo client and API end to end, including authentication, a catalog, a local cart, and orders. I integrated Gemini with product and history context, WebSocket communication, and command parsing that connects assistant responses to interface components.
How it works
- The user browses the catalog or sends a question to the assistant over a WebSocket connection.
- The server retrieves products, availability, and relevant order history to compose the response context.
- Recognized response commands display products or change the cart, which is maintained in the application's local storage.
- The demonstration checkout records the order and items and updates database stock, without a real financial charge.
Technical decisions
Ground conversation in concrete data
The assistant receives products retrieved from the catalog, with identifiers used by the parser and interface. This connection enables experimentation with inspectable actions beyond text-only answers.
Keep the prototype inspectable
Catalog, cart, messages, and orders remain represented in their own structures. This separation helps identify whether behavior came from retrieval, the model, the parser, or persistence.
What I learned
A well-written response does not guarantee a correct action. The experiment highlighted the need for deterministic validation of commands and purchase data, and for separating temporary conversation memory from persistent business state.
Limits and next steps
- Prototype: the payment controller is not implemented and checkout does not process real payments.
- Conversation history remains in server memory; purchase validation and business tests need further work before commercial use.