Logo Lanfrica

kalabGoitom/Digital-restaurant-menu

Domain:

digital infrastructure

Record type:

software
Creator:
kal
Host:
A full-stack digital restaurant menu application for NOVA Ethiopian Cuisine, featuring a responsive customer menu and a secure admin dashboard for managing dishes, availability, and daily menu selections. # NOVA — Digital Restaurant Menu A full-stack Ethiopian restaurant menu application. Customers can browse the available dishes selected for today, while administrators can manage the restaurant's complete menu and curate the daily menu. ## Features ### Customer website - Browse today's available menu without an account. - Filter dishes by category. - View each dish's image, description, category, and price in ETB. - Responsive design for desktop, tablet, and mobile. - Helpful loading, empty-menu, image fallback, and retryable error states. ### Admin dashboard - Secure admin signup and login using an HTTP-only JWT cookie. - Protected dashboard, menu-management, and daily-menu screens. - Create, edit, delete, and toggle availability for reusable menu items. - Create today's daily menu automatically when an admin opens the page. - Add existing menu items to today's menu. - Remove a dish from today's menu without deleting it from the main collection. ## Tech stack | Area | Technology | | --- | --- | | Frontend | React, Vite, JavaScript, CSS, Fetch API | | Backend | Node.js, Express, Zod | | Database | PostgreSQL / Neon, Prisma ORM | | Authentication | bcryptjs, JSON Web Tokens, HTTP-only cookies | ## Project structure ```text Digital-restaurant-menu/ ├── backend/ │ ├── prisma/ # Prisma schema and migrations │ ├── src/ │ │ ├── controllers/ # Auth, menu, and daily-menu logic │ │ ├── middlewares/ # JWT and validation middleware │ │ ├── routes/ # Public and protected API routes │ │ └── validators/ # Zod request schemas │ └── app.js ├── frontend/ │ └── src/ │ ├── components/ # Customer and admin UI components │ ├── context/ # Client-side admin session state │ ├── pages/ # Home and admin pages │ ├── routes/ # Protected route wrapper │ └── services/ # Fetch API helpers └── README.md ``` ## Getting started ### …

Languages