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).