ViewTouch Point of Sale
GNU/Linux Restaurant Point of Sale software - Free and open source POS solution
Taze yemekler, kapına kadar hızlıca. Menüye göz at, sipariş ver.
Translation pending
CommerceTypeScript · DockerfileGitHub @gemiciburakOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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 ↗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).