AI Procurement Portal is designed to streamline sourcing, purchasing, and vendor management workflows powered by AI. Check out the live demo here.
- AI Agent:
- Catalog:
- Cart:
- 🧠 AI-driven Procurement: Intelligent automation that helps you register new products, quickly find items, and seamlessly place purchase orders.
- 🔍 Powerful Search: Quickly find and register products, filtering by category.
- 🛒 Integrated Cart: Easily add, review, and manage items before placing orders.
- 🎨 Modern UI: Responsive and accessible design.
This is a monorepo managed by pnpm workspaces:
ai-procurement-portal/
├── frontend/ # React + Vite application
│ ├── src/
│ │ ├── components/
│ │ └── ...
│ └── package.json
├── backend/ # Fastify API server
│ ├── src/
│ │ ├── routes/
│ │ ├── services/
│ │ └── ...
│ └── package.json
├── shared/ # Shared TypeScript types
│ └── types/
└── package.json # Root workspace config
- React for building user interfaces
- TypeScript for type-safe JavaScript
- Radix UI for accessible components
- Tailwind CSS for styling
- Vite for fast builds and hot reloads
- Sonner for notifications
- Fastify for high-performance API server
- TypeScript for type-safe server code
- Prisma for type-safe database access
- Supabase for PostgreSQL database
- Google Gemini AI for AI agent capabilities
- Zod for runtime validation
- pnpm for efficient and fast package management
- Husky for Git hooks, enforcing code standards pre-commit
- Biome for code formatting and linting
-
Clone the repository
-
Install dependencies
pnpm install
-
Set up environment variables
# Frontend cp frontend/.env.example frontend/.env # Backend cp backend/.env.example backend/.env # Edit backend/.env with your Supabase and Gemini API credentials
-
Generate Prisma Client & Run Migrations
cd backend
pnpm db:generate # Generate Prisma client
pnpm db:push # Push schema to database
pnpm db:seed # Seed initial dataTip
For more detailed backend setup instructions, see the backend/README.md file.
-
Start both frontend and backend:
pnpm dev
-
Start only frontend (port 3000):
pnpm dev:frontend
-
Start only backend (port 3333):
pnpm dev:backend
-
Build for production:
pnpm build
-
Lint and format code:
pnpm lint
- Frontend: http://localhost:3000
- Backend API: http://localhost:3333/api
The backend API is fully documented using OpenAPI 3.0 specification:
- YAML:
backend/openapi.yaml - JSON:
backend/openapi.json
You can use these specifications to:
- Import endpoints into Postman, Insomnia, or Bruno
- Generate client SDKs in various languages
- View interactive documentation with Swagger UI
For more details, see the Backend README


