QR kod ile dükkanınızdaki menülere erişilebilen modern ve kullanıcı dostu bir web uygulaması.
- 📱 QR Kod ile Menü Erişimi - Müşteriler QR kodu tarayarak menünüze anında ulaşır
- 🍽️ Kategorilere Göre Menü Görüntüleme - Menüleri kategorilere göre düzenli şekilde görüntüleyin
- ✏️ Admin Paneli - Kolay menü yönetimi (ekleme, düzenleme, silme)
- 🏪 Restoran Bilgileri Yönetimi - Restoran adı, açıklama, telefon, adres bilgilerini düzenleyin
- 📥 QR Kod İndirme - QR kodu PNG formatında indirip yazdırın
- 🎨 Modern ve Responsive Tasarım - Mobil ve masaüstünde mükemmel görünüm
- 💾 JSON Tabanlı Veri Saklama - Basit ve hızlı veri yönetimi
- Node.js 18+
- npm veya yarn
-
Projeyi klonlayın:
git clone https://github.com/kullanici-adi/qr-menu.git cd qr-menu -
Bağımlılıkları yükleyin:
npm install
-
Geliştirme sunucusunu başlatın:
npm run dev
-
Tarayıcıda açın:
http://localhost:3000
- QR kod otomatik olarak oluşturulur
- QR kodu indirebilirsiniz
- Menüyü görüntüleyebilir veya admin paneline gidebilirsiniz
- Müşteriler QR kodu tarayarak bu sayfaya ulaşır
- Kategorilere göre menü öğelerini görüntüler
- Responsive tasarım ile mobil uyumlu
-
Yeni Menü Ekle:
- "Yeni Menü Ekle" butonuna tıklayın
- Menü bilgilerini doldurun:
- Ad: Menü öğesinin adı (zorunlu)
- Açıklama: İsteğe bağlı açıklama
- Fiyat: Fiyat (zorunlu)
- Kategori: Kategori adı (zorunlu, örn: "Pizza", "İçecek", "Tatlı")
- Resim URL: İsteğe bağlı resim URL'i
- "Ekle" butonuna tıklayın
-
Menü Düzenle:
- Menü listesinde "Düzenle" butonuna tıklayın
- Bilgileri güncelleyin
- "Güncelle" butonuna tıklayın
-
Menü Sil:
- Menü listesinde "Sil" butonuna tıklayın
- Onaylayın
- "Restoran Bilgilerini Düzenle" butonuna tıklayın
- Restoran adı, açıklama, logo URL, telefon ve adres bilgilerini girin
- "Kaydet" butonuna tıklayın
- Ana sayfada QR kod otomatik olarak oluşturulur
- "QR Kodu İndir" butonuna tıklayarak PNG dosyasını indirin
- QR kodu yazdırın veya dijital ekranda gösterin
- Müşteriler QR kodu tarayarak menü sayfasına yönlendirilir
- Ana sayfada "QR Kodu İndir" butonuna tıklayın
- İndirilen PNG dosyasını bir QR kod yazıcı servisine gönderin
- Masalara veya duvarlara yerleştirin
Uygulama JSON dosyaları kullanarak verileri saklar. Veriler data/ klasöründe tutulur:
data/menus.json- Menü öğeleridata/restaurant.json- Restoran bilgileri
Veriler otomatik olarak oluşturulur ve yönetilir. Production ortamında data/ klasörüne yazma izni verildiğinden emin olun.
npm run build
npm start- GitHub'a projeyi push edin
- Vercel adresine gidin
- "New Project" butonuna tıklayın
- GitHub repository'nizi seçin
- Deploy edin
Not: Vercel'de data/ klasörüne yazma izni için serverless fonksiyonları kullanmanız gerekebilir. Production için veritabanı (PostgreSQL, MongoDB) kullanmanız önerilir.
- Railway: https://railway.app
- Render: https://render.com
- DigitalOcean App Platform: https://www.digitalocean.com
- Plesk: Plesk Node.js extension ile
Her platform için:
- Projeyi Git repository'sine push edin
- Platform'a bağlayın
- Build komutu:
npm run build - Start komutu:
npm start data/klasörüne yazma izni verin
qr-menu/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── admin/ # Admin paneli
│ ├── menu/ # Menü sayfası
│ └── page.tsx # Ana sayfa
├── lib/ # Utility fonksiyonlar
│ └── db.ts # Veri yönetimi
├── data/ # Veri dosyaları (JSON)
├── public/ # Static dosyalar
└── package.json # Bağımlılıklar
tailwind.config.js dosyasında renkler ve stilleri özelleştirebilirsiniz.
Kategoriler dinamik olarak oluşturulur. Admin panelinden menü eklerken kategori adını girerek yeni kategoriler oluşturabilirsiniz.
Eğer 3000 portu kullanımdaysa:
Windows PowerShell:
$env:PORT=3001; npm run devWindows CMD:
set PORT=3001 && npm run devLinux/Mac:
PORT=3001 npm run devEğer veri yazma hatası alırsanız:
Linux/Mac:
chmod 755 data
chmod 644 data/*.jsonWindows:
- Dosya gezgininden
dataklasörüne sağ tıklayın - Özellikler → Güvenlik → Düzenle
- Yazma izni verin
# Build'i temizleyin ve yeniden yapın
rm -rf .next
npm run buildBu proje MIT lisansı altında lisanslanmıştır.
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/AmazingFeature) - Commit edin (
git commit -m 'Add some AmazingFeature') - Push edin (
git push origin feature/AmazingFeature) - Pull Request açın
Sorularınız için issue açabilirsiniz.
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!