Hey! This is a small app that solves my group of friends issue of sharing grocery responsibilities wheen hanging out. It lets you create gathering plans with meals, assigning who buys what and then spliting bills evenly.
To avoid having to write down grocery lists manually, it uses an AI agent (a simple prompt, really) built with Langgraph to fetch ingredients out of a recipe name. Cool!
You can refer to BACKLOG.md for future ideas
The project leverages:
- 🤖 LangChain Agents: Intelligent meal planning and ingredient suggestions
- 🧠 Large Language Models: Smart understanding of meal descriptions and dietary requirements
- 🔄 Real-time AI Processing: Dynamic adaptation to user preferences and group needs
- Frontend: React + TypeScript + Vite
- Backend: Supabase (PostgreSQL + Edge Functions)
- Authentication: Supabase Auth
- AI Layer: LangChain + Custom Agents
├── client/ # React frontend application
├── supabase/ # Supabase configuration and migrations
│ ├── functions/ # Edge Functions (Deno)
│ └── migrations/ # Database migrations
└── ai/ # LangChain agents and AI integration
└── langchain/ # Custom LangChain implementation
- Node.js (v18 or later)
- npm or yarn
- Supabase CLI
- Deno (for Supabase Edge Functions)
- Python 3.9+ and pipenv (for LangChain agents)
-
Clone the repository
git clone <repository-url> cd guiso-splitter
-
Frontend Setup
cd client npm install -
Environment Variables Create a
.envfile in theclientdirectory:VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key -
AI Layer Setup
cd ai pipenv install -
Start Development Server
npm run dev
The application will be available at
http://localhost:5173
-
Install Supabase CLI
npm install -g supabase
-
Initialize Supabase
supabase init
-
Start Local Development
supabase start
-
Apply Migrations
supabase db reset
In the client directory:
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run type-check- Run TypeScript type checking
In the ai directory:
pipenv run langgraph dev --allow-blocking- Start the LangChain agent serverpipenv run uvicorn agent.server:app --reload --port 8000- Start the HTTP server to send requests to the agent