A modern, responsive SvelteKit application for discovering and reviewing menu items. Built with SvelteKit 5, TypeScript, and Vite.
- Browse Menu Items: View a collection of delicious menu items with detailed descriptions and pricing
- Category Filtering: Filter menu items by category (Main Course, Salads, Desserts, etc.)
- Star Rating System: Rate menu items from 1 to 5 stars
- Write Reviews: Share your dining experiences with detailed reviews
- Real-time Rating Updates: See average ratings update automatically as new reviews are added
- Responsive Design: Fully responsive UI that works on desktop, tablet, and mobile devices
- Accessible: Built with accessibility in mind, including ARIA labels and keyboard navigation
- Framework: SvelteKit 5 with TypeScript
- Build Tool: Vite
- Language: TypeScript
- Styling: Scoped CSS in Svelte components
- State Management: Svelte stores
- Node.js 20.x or later
- npm 10.x or later
- Clone the repository:
git clone https://github.com/StevenClontz/dfb-app.git
cd dfb-app- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
npm run dev- Start the development servernpm run build- Build the application for productionnpm run preview- Preview the production build locallynpm run check- Run TypeScript and Svelte checksnpm run check:watch- Run checks in watch mode
src/
├── lib/
│ ├── components/
│ │ ├── MenuItemCard.svelte # Menu item display component
│ │ ├── ReviewCard.svelte # Individual review display
│ │ └── ReviewForm.svelte # Review submission form
│ ├── stores.ts # Svelte stores for state management
│ └── types.ts # TypeScript type definitions
├── routes/
│ ├── +layout.svelte # Root layout
│ └── +page.svelte # Main page
└── app.html # HTML template
Displays a menu item with its details, rating, and review count. Includes a button to open the review form.
A modal dialog for submitting reviews with:
- Name input
- 5-star rating selector
- Comment textarea
- Form validation
MenuItem: Represents a menu item
id: Unique identifiername: Item namedescription: Item descriptionprice: Item pricecategory: Category (Main Course, Salads, Desserts)
Review: Represents a user review
id: Unique identifiermenuItemId: Associated menu itemrating: 1-5 star ratingcomment: Review textauthor: Reviewer namedate: Review date
To create a production version of your app:
npm run buildYou can preview the production build with npm run preview.
To deploy your app, you may need to install an adapter for your target environment.
This app uses @sveltejs/adapter-auto, which automatically detects your deployment environment. It works with:
- Vercel
- Netlify
- Cloudflare Pages
- And many other platforms
For specific deployment instructions, see the SvelteKit deployment documentation.
Potential features for future development:
- User authentication and profiles
- Image upload for menu items
- Search functionality
- Sort reviews by date or rating
- Reply to reviews
- Backend integration with a database
- Admin panel for managing menu items
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.



