ViewTouch Point of Sale
GNU/Linux Restaurant Point of Sale software - Free and open source POS solution
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Production kalitesinde full-stack yemek sipariş platformu.
| Katman | Teknolojiler |
|---|---|
| Backend | NestJS 11 · TypeScript · PostgreSQL · Drizzle ORM · Redis · Socket.IO · BullMQ · JWT · Zod (nestjs-zod) · Swagger |
| Frontend | Next.js 16 (App Router) · TypeScript · TailwindCSS v4 · shadcn/ui · TanStack Query · Zustand · React Hook Form · Zod |
Tasarım kararları, güvenlik modeli ve özellik bazlı gerekçeler için ARCHITECTURE.md dosyasına bakın.
Gereksinimler: Node 20+, PostgreSQL 15+ ve Redis 7 (lokal kurulum veya Docker).
# 1. Altyapı (Postgres/Redis zaten lokalde çalışıyorsa atlayın)
docker compose up -d
# 2. Backend
cd backend
cp .env.example .env # production için gerçek secret'ları girin
npm install
npm run db:migrate # SQL migration'ları uygula
npm run db:seed # admin + demo verisi
npm run start:dev # http://localhost:4000/api · Swagger: /docs
# 3. Frontend (yeni terminal)
cd frontend
cp .env.example .env.local
npm install
npm run dev # http://localhost:3000
Postgres lokalde çalışıyor ama restaurant rolü yoksa:
psql -d postgres -c "CREATE ROLE restaurant LOGIN PASSWORD 'restaurant'"
psql -d postgres -c "CREATE DATABASE restaurant OWNER restaurant"
| Rol | E-posta | Şifre |
|---|---|---|
| Admin | [email protected] | Admin123! |
| Müşteri | [email protected] | Customer123! |
/backend)| Script | Amaç |
|---|---|
npm run start:dev | Watch modunda geliştirme sunucusu |
npm run build / npm start | Production build / çalıştırma |
npm run typecheck | tsc --noEmit |
npm run db:generate | Şema değişikliklerinden SQL migration üret |
npm run db:migrate | Migration'ları uygula |
npm run db:seed | Idempotent seed (kullanıcılar, kategoriler, menü) |
npm run db:studio | Drizzle Studio veritabanı arayüzü |
/frontend)| Script | Amaç |
|---|---|
npm run dev | Geliştirme sunucusu |
npm run build / npm start | Production build / servis |
npm run typecheck | tsc --noEmit |
Tüm endpoint'ler Swagger'da dokümante edilmiştir (http://localhost:4000/docs) ve her yanıt şu zarf (envelope) yapısını kullanır:
{ "success": true, "message": "OK", "data": { }, "meta": { "page": 1, "limit": 20, "totalItems": 42, "totalPages": 3 } }
| Alan | Endpoint'ler |
|---|---|
| Auth | POST /api/auth/register · login · refresh · logout |
| Profil | GET/PATCH /api/users/me |
| Katalog (herkese açık) | GET /api/categories · GET /api/menu-items?search=&categoryId=&page= · GET /api/menu-items/:id |
| Katalog (admin) | POST/PATCH/DELETE /api/categories/:id · GET /api/menu-items/all · POST/PATCH/DELETE /api/menu-items/:id |
| Sepet | GET/DELETE /api/cart · POST /api/cart/items · PATCH/DELETE /api/cart/items/:id |
| Siparişler | POST /api/orders (checkout) · GET /api/orders · GET /api/orders/:id · PATCH /api/orders/:id/cancel |
| Admin siparişler | GET /api/admin/orders?status= · PATCH /api/admin/orders/:id/status |
| Dashboard | GET /api/admin/dashboard · POST /api/admin/reports/daily · GET /api/admin/reports/daily/:date |
Para her zaman tamsayı kuruş/cent olarak tutulur (1250 = $12.50) — fiyatların yakınına asla float yaklaşmaz.
tsc temiz; canlı Postgres/Redis üzerinde ayağa kaldırıldı, 30/30 uçtan uca smoke testi geçti (token rotasyonu ve blacklist, sunucu tarafı fiyatlama, durum makinesi kuralları, RBAC, cache, BullMQ rapor turu, Swagger).