This project demonstrates a restaurant menu management system built with Laravel 11, Vue 3 Composition API, and Inertia for SSR. It allows restaurants to create and manage categories, subcategories, menu items, and discounts. ๐
The ERD depicts the following tables and their relationships:
- ๐ฅ Users: Represents registered restaurants.
- ๐ Categories: Stores super and subcategories for menu items.
- ๐ฝ๏ธ Items: Represents menu items associated with categories.
- ๐ฐ Discounts: Supports various discount types using a one-to-one polymorphic relationship with other entities.
This approach avoids unnecessary relationships while offering flexibility in managing different discount types. ๐
- Laravel 11
- Vue 3
- Inertia
- Code Splitting for efficient bundle sizes (See Bundle Analyzer Report) ๐ฆ
-
See deployed app here: http://everbitedashboard.hudashakir.serv00.net ๐
-
Login info for the first restaurant
email: [email protected] password: password
Due to the use of SSR, implementing offline support is currently out of scope. However, alternative approaches like service workers and indexedDB could be explored in the future. ๐ฎ
implemented code splitting to achive small bundle size here you can find the screenshot of bundle analyzer Link๐
This project provided an excellent opportunity to learn and apply the following concepts:
- Laravel Actions: I explored the use of Laravel Actions to encapsulate complex business logic and improve code organization. ๐ก
- SSR with Inertia: I implemented Server-Side Rendering (SSR) using Inertia.js, which allowed me to leverage the benefits of initial page load performance while maintaining a reactive user experience. ๐
- Web Performance Techniques: I employed code splitting and analyzed bundle sizes using tools like the Bundle Analyzer to ensure optimal application performance. ๐
By focusing on these areas, I aimed to demonstrate my ability to learn new technologies and apply them to create a well-structured and performant web application. ๐
