ViewTouch Point of Sale
GNU/Linux 레스토랑 POS 소프트웨어, 무료 오픈소스 솔루션
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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).