ვებ აპლიკაცია ლაივ

QR ვებ-მენიუ (მრავალრესტორნიანი)

მრავალენოვანი, სწრაფი და მოდულარული ვებ-მენიუ: თითო რესტორანს საკუთარი QR/ბმული, სტუმრები არჩევენ კერძებს და ხედავენ ჯამს; ადმინი მართავს ყველაფერს ბრაუზერიდან.

მოკლე მიმოხილვა

მრავალრესტორნიანი, QR-ზე დაფუძნებული ვებ-მენიუ Firebase ეკოსისტემაზე. თითო რესტორანს აქვს საკუთარი საჯარო ბმული/QR: menu.html?r=<restaurantUid>. სტუმარი ათვალიერებს კატეგორიებსა და კერძებს, ირჩევს რაოდენობას და ხედავს ჯამს ქვედა კალათაში. ადმინი ბრაუზერიდან მართავს კატეგორიებს, კერძებს, ფასებსა და ფოტოებს.

ტექნოლოგიური სტეკი

  • 🔥
    ჰოსტინგი

    Firebase Hosting

  • 🗄️
    ბექენდი/ბაზა

    Cloud Firestore

  • 🖼️
    მედია

    Firebase Storage

  • 🔐
    ავტორიზაცია

    Firebase Authentication (Email/Password)

  • 💡
    ფრონტი

    ვანილა HTML/CSS/JavaScript (მცირე მოდულები)

  • 🧩
    Firebase SDK

    Public: v10 compat (app+firestore); Admin: v10 compat (app/auth/firestore/storage); category-admin: v8.10.1

  • 🚀
    გაშლა

    firebase deploy — მხოლოდ ჰოსტინგი

  • 💾
    ლოკალური შენახვა

    localStorage (ენა, თემა, კალათა)

მონაცემთა მოდელი (Firestore)

restaurants/{restaurantId}

  • name: {ka, en, ru}
  • qrLink, createdAt …

menus/{rid}/categories/{categoryId}

  • name: {ka, en, ru}
  • imageURL, createdAt

menus/{rid}/dishes/{dishId}

  • name/description: {ka, en, ru}
  • price: number; imageURL; categoryId; createdAt

შენიშვნა: საჭიროებისას Firestore გაგიძღვებათ ინდექსის შექმნაში ( напр. where(categoryId) + orderBy(createdAt) ).

Public გვერდები

  • 📋
    menu.html?r=<uid>

    ლოკალიზებული რესტორნის სახელი; ენის/თემის ტოგლები; კატეგორიების ძიება; ბარათები (ფოტო+სახელი)

  • 🍽️
    category.html?r=<uid>&category=<categoryId>

    დიდი ჰედერი; ძიება; Grid/List; კერძები (სახელი/აღწერა/ფასი); რაოდენობის კონტროლი; ქვედა კალათა ჟესტებით

კალათა (Cart)

  • 🧮
    per-restaurant შენახვა

    qrCart:<restaurantId> + qrCartVisit:<rid> fresh-visit logic

  • 🔄
    pub/sub არქიტექტურა

    Cart.onChange → UI სინქრონული; setQty/inc/dec/remove/clear ოპერაციები

  • ⚙️
    ქსელური პარამეტრები

    სურვილისამებრ ?clearCart=1 ბმულით გაუქმება

i18n და თემა

  • 🌐
    KA/EN/RU

    ყურადღებიანი ლოკალიზაცია; qrMenuLang

  • 🌓
    თემა

    light/dark ტოგლი; qrMenuTheme; UI დინამიურად ახლდება

ადმინის პანელი

  • 🔑
    admin.html

    Auth (Email/Password); რესტორის სახელები KA/EN/RU; Public link/QR; კერძის დამატება; კატეგორიების მართვა; Dishes overview

  • 🛠️
    category-admin.html

    ისტორიული: ამ კატეგორიის კერძების სია; ინლაინ ფასის რედაქტორი; წაშლა

უსაფრთხოება (rules)

  • 🔒
    Firestore rules

    read — საჯაროდ; write — მხოლოდ იმ დოკზე, სადაც request.auth.uid == restaurantId

  • 🖼️
    Storage rules

    სურათები — write მხოლოდ uid-ის ქვეშ; read — საჯაროდ

  • 🌐
    Authorized domains

    Authentication → Authorized domains — დაამატეთ თქვენი დომენი

გაშლა/ინფრასტრუქტურა

  • 🧾
    firebase.json

    public: ".", cleanUrls ჩართული; deploy: firebase deploy --only hosting

  • 🔗
    Custom domain

    Hosting Console-დან; Authentication → Authorized domains‑შიც ჩასვით

  • 🔁
    Public link/QR

    location.origin საფუძველზე — ახალ დომენზეც ავტომატურად სწორია

UX დეტალები

  • 🖼️
    Lazy Images

    სურათები lazy-load

  • ↩️
    BFCache/Visibility

    დაბრუნებისას კალათა/ენა/თემა ავტომატურად სინქრონდება

  • 📱
    Safe-area

    ქვედა კალათის UI არ ფარავს კონტროლებს

მრავალრესტორნიანობა

ერთი კოდი — უამრავი რესტორანი: განსხვავება შემოდის r პარამეტრით. თითო მეპატრონე მართავს მხოლოდ თავის მონაცემებს (Auth + rules). QR/ბმულის გაზიარება სტუმრებს მიიყვანს პირდაპირ მათ მენიუზე.

შეზღუდვები და გზაქვეშა გეგმები

  • 🔧
    SDK ვერსიები

    v10 compat + v8 შერეული (ცალკე გვერდებზე); მომავალში კონსოლიდაცია

  • 📦
    Offline/PWA

    ამჟამად გამორთულია; სურვილისამებრ დაემატება

  • 💳
    Checkout/გადახდები

    კალათა საფასურის გარეშე; საჭიროებისას ინტეგრირდება

პროექტის ინფორმაცია

სტატუსი:ლაივ & აქტიური
ვებ გვერდი:menu.alerti.pro
ძირითადი ტექნოლოგია:Firebase (Hosting/Firestore/Storage/Auth)
ფრონტი:Vanilla JS

გამოყენებული ტექნოლოგიები

Firebase Hosting Cloud Firestore Firebase Storage Firebase Auth Vanilla JS i18n Dark/Light Theme LocalStorage QR

გსურთ მსგავსი QR მენიუ?

მოგვწერეთ მოთხოვნა და ავაწყობთ თქვენს რესტორანს რამდენიმე დღეში.

დაუკავშირდით