Restaurant Menu is a modern web application designed to help restaurants present their menu items in an interactive and visually appealing way. Built primarily with Svelte, along with JavaScript, CSS, and HTML, this project showcases a fast, responsive, and easily customizable menu system suitable for restaurant owners, web developers, or anyone interested in digital menu solutions.
- Dynamic Menu Display: Easily add, edit, and remove menu items using a clean UI.
- Category Filtering: Organize menu items by categories (e.g., appetizers, mains, desserts, drinks).
- Responsive Design: Works seamlessly on desktops, tablets, and smartphones.
- Search Functionality: Quickly find menu items by name or keyword.
- Custom Styling: Easily modify colors, fonts, and layout to match your brand.
- Fast Performance: Svelte’s lightweight framework ensures snappy interactions.
- Extensible: Add new features such as item ratings, reviews, or order integration.
- Svelte: Main frontend framework for building reactive UI.
- JavaScript: Application logic and dynamic behavior.
- CSS: Custom styles for layout and appearance.
- HTML: Structure and markup.
-
Clone the Repository:
git clone https://github.com/MLProjectTeam3/restaurant-menu.git cd restaurant-menu
-
Install Dependencies:
npm install # or yarn install
-
Run the Development Server:
npm run dev # or yarn dev
-
Open the App:
- Visit http://localhost:5173 (or whichever port is shown in the terminal) in your browser.
Below is a typical file structure for a Svelte-based restaurant menu app:
restaurant-menu/
│
├── public/ # Static assets (images, icons, etc.)
├── src/
│ ├── components/ # Reusable Svelte components (MenuItem, CategoryFilter, SearchBar, etc.)
│ ├── routes/ # App routes (home, menu, details)
│ ├── styles/ # CSS files and custom styles
│ ├── App.svelte # Main application component
│ ├── main.js # Entry point for the Svelte app
│ └── data/ # Optional: Menu data in JSON or JS modules
├── package.json # Project metadata and dependencies
├── README.md # Project documentation
└── ... # Other config files (svelte.config.js, .gitignore, etc.)
- App.svelte: Root component that orchestrates the overall layout and routing.
- components/MenuItem.svelte: Displays individual menu items, including details like name, price, description, and image.
- components/CategoryFilter.svelte: Allows users to filter menu items by category.
- components/SearchBar.svelte: Enables quick search through menu items.
- data/menu.js or menu.json: Contains the menu item data, structured by categories.
- styles/: Custom CSS for theming and layout.
- main.js: Bootstraps the Svelte application.
- Browse the menu by categories.
- Use the search bar to filter items.
- Click on a menu item for more details (if available).
- Responsive design ensures usability on mobile and desktop.
To customize the menu, categories, or styling:
-
Edit Menu Data:
- Update the menu data in
/src/data/menu.js
or/src/data/menu.json
.
- Update the menu data in
-
Modify Categories:
- Change category names or add new categories in the data file and in
CategoryFilter.svelte
.
- Change category names or add new categories in the data file and in
-
Adjust Styling:
- Edit CSS in
/src/styles/
or directly in component files for colors, fonts, and layout.
- Edit CSS in
-
Add Features:
- Extend the app by adding new components (e.g., ratings, reviews, admin dashboard).
This project is licensed under the MIT License.
- MLProjectTeam3
Restaurant Menu is the perfect starting point for any restaurant looking to modernize their menu with a beautiful, interactive web app. Powered by Svelte for speed and simplicity!