72 lines
1.3 KiB
Markdown
72 lines
1.3 KiB
Markdown
# Ranaze POS
|
|
|
|
Self-hosted tablet-first POS for a boba shop.
|
|
|
|
## Stack
|
|
|
|
- Frontend: `React` + `Vite`
|
|
- Backend: `ASP.NET Core` minimal API
|
|
- Database: self-hosted `MongoDB` via `MongoDB.Driver`
|
|
|
|
## Features
|
|
|
|
- Customer order builder for drinks, size, sweetness, ice, toppings, and notes
|
|
- Ticket flow with cash, tab, and pay-later placeholders
|
|
- Live order queue with `new`, `making`, `ready`, and `completed` statuses
|
|
- Menu management persisted in MongoDB
|
|
- Seeded default drinks on first launch
|
|
|
|
## Project layout
|
|
|
|
- `client/`: React tablet UI
|
|
- `server/`: ASP.NET Core API and Mongo models
|
|
|
|
## Environment
|
|
|
|
Copy `.env.example` to `.env` in the repo root:
|
|
|
|
```env
|
|
MONGODB_URI=mongodb://127.0.0.1:27017/ranaze-pos
|
|
PORT=4000
|
|
```
|
|
|
|
## Install
|
|
|
|
```bash
|
|
npm install
|
|
dotnet restore server/RanazePos.Api.csproj
|
|
```
|
|
|
|
## Run in development
|
|
|
|
Terminal 1:
|
|
|
|
```bash
|
|
npm run dev:server
|
|
```
|
|
|
|
Terminal 2:
|
|
|
|
```bash
|
|
npm run dev:client
|
|
```
|
|
|
|
Open `http://localhost:5173`.
|
|
|
|
## Build and run
|
|
|
|
```bash
|
|
npm run build
|
|
npm start
|
|
```
|
|
|
|
The production server serves the built frontend from `client/dist`.
|
|
|
|
## What is still missing
|
|
|
|
- Credit card processing
|
|
- Receipt and label printing
|
|
- Employee authentication and permissions
|
|
- Multi-location inventory tracking
|
|
- Hardware integrations for cash drawer and scanners
|