FloCafe
FloCafe is the free, local-first restaurant POS in the FloPOS ecosystem. Run orders, tables, kitchen display, and local data without a software subscription.
Shop MegaMart.ai: semantic product search, AI recommendations, and a tool-using shopping agent that can search, cart and check out for you.
CommerceTypeScript · JavaScriptGitHub @aryangoel984OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗An AI-powered, full-stack e-commerce platform featuring semantic product search, personalized recommendations, an LLM shopping concierge, transactional checkout, and vector similarity search.
MegaMart combines a modern Next.js storefront with an Express API, PostgreSQL/pgvector, Hugging Face embeddings, and Groq tool calling. The application is designed as a deployment-friendly monorepo and does not require a self-hosted machine-learning server.
pgvectorflowchart LR
User[User Browser]
Frontend[Next.js Frontend]
API[Express API]
Neon[Neon PostgreSQL + pgvector]
HF[Hugging Face Inference]
Groq[Groq LLM]
User --> Frontend
Frontend -->|"REST + Bearer JWT"| API
API --> Neon
API -->|"384-dimensional embeddings"| HF
API -->|"Tool-calling chat"| Groq
| Layer | Technology | Responsibility |
|---|---|---|
| Frontend | Next.js 16, React 19, TypeScript, Tailwind CSS v4 | Storefront, auth UI, catalog, dashboard, search, orders, and chat |
| Core API | Node.js, Express 5, TypeScript | Authentication, products, orders, AI orchestration, and business logic |
| Database | Neon PostgreSQL, Prisma, pgvector | Users, products, carts/orders, inventory, and product embeddings |
| Embeddings | Hugging Face Inference API, all-MiniLM-L6-v2 | Converts search and recommendation text into 384-dimensional vectors |
| Chat agent | Groq API with function calling | Product discovery, cart actions, and checkout through natural language |
The legacy FastAPI service in backend/backend_python/ is retained for local ML experimentation only. It is not required to run or deploy MegaMart.
device for coding.all-MiniLM-L6-v2 returns a normalized 384-dimensional vector.If Hugging Face is unavailable or rate-limited, the API falls back to case-insensitive matching against product names, descriptions, and categories.
Groq provides the conversational layer and can invoke these backend tools:
searchCatalogviewCartaddToCartcheckoutCartIf GROQ_API_KEY is absent or Groq fails, MegaMart uses a local rule-based fallback agent so the chat feature remains usable.
MegaMart/
├── frontend/
│ ├── app/
│ │ ├── dashboard/
│ │ ├── chat/
│ │ ├── login/
│ │ ├── orders/
│ │ ├── products/
│ │ ├── register/
│ │ └── search/
│ └── utils/api.ts
├── backend/
│ ├── backend_node/
│ │ ├── prisma/
│ │ │ ├── schema.prisma
│ │ │ ├── seed.ts
│ │ │ └── update_vectors.ts
│ │ └── src/
│ │ ├── config/
│ │ ├── controllers/
│ │ ├── middlewares/
│ │ ├── routes/
│ │ └── services/
│ └── backend_python/ # Optional legacy/local ML service
└── README.md
All Node routes are mounted below /api.
| Method | Endpoint | Authentication | Purpose |
|---|---|---|---|
| POST | /api/auth/register | Public | Create an account |
| POST | /api/auth/login | Public | Authenticate and return a JWT |
| GET | /api/products | Public | List products |
| GET | /api/products/:id | Public | Get product details |
| GET | /api/search?q=... | Public | Semantic product search |
| POST | /api/orders | JWT | Create a completed order |
| GET | /api/orders | JWT | Get the user's orders and pending cart |
| GET | /api/dashboard | JWT | Order statistics and personalized recommendations |
| POST | /api/chat | JWT | Use the AI shopping concierge |
vector(384) embeddingProduct vectors are generated from category, name, and description. The same all-MiniLM-L6-v2 model must be used for both stored product vectors and live queries.
pgvector extension (Neon recommended)This is the beginning of the README. Read the rest at the original. Read the full README ↗