MenuQR is a modern, full-stack digital menu management system built with Next.js 14. It enables restaurants to create, manage, and share digital menus through QR codes, providing a seamless contactless dining experience.
- Digital Menu Creation
- Create and customize multiple menus
- Add items with descriptions, prices, and images
- Organize items by categories
- Set menu availability schedules
- Add allergen information and nutritional data
- Support for multiple menu layouts (Grid, List, Compact)
- Menu visibility controls (Listed/Unlisted)
- Dynamic QR Generation
- Unique QR codes for each menu
- Instant updates without regenerating codes
- Download QR codes in multiple formats
- Track QR code scans and analytics
- Custom subdomain support for each restaurant
- Comprehensive Insights
- Real-time view tracking
- Device usage breakdown (Mobile, Tablet, Desktop)
- Popular items analysis
- Peak hours monitoring
- Customer engagement metrics
- Language preferences tracking
- Menu category performance
- Dietary filter usage
- Search behavior analysis
- Mobile-Optimized Viewing
- Responsive design for all devices
- Fast loading times
- Intuitive navigation
- Detailed item views with images
- Allergen and nutritional information
- Multiple language support
- Dietary preference filters
- Restaurant Management
- Multi-location support
- Custom subdomain for each restaurant
- Business hours management
- Staff access control
- Menu scheduling
- Customizable branding options
- Widget customization (Enterprise tier)
- Brand Identity
- Custom logo and favicon
- Brand color scheme
- Font selection
- Custom CSS support
- Page layout customization
- Menu display preferences
- Social media integration
- Next.js 14 (App Router)
- React 18
- TypeScript
- Tailwind CSS
- Shadcn/ui
- Framer Motion
- Lucide React Icons
- Chart.js
- React Chart.js 2
- ESLint
- Prettier
- TypeScript
- Git
-
Clone the repository
git clone https://github.com/dustinwloring1988/menuqr.git cd menuqr
-
Install dependencies
npm install # or pnpm install # or yarn install
-
Set up environment variables
cp .env.example .env.local
Fill in your environment variables in
.env.local
-
Configure Local Development with Subdomains
To test restaurant-specific subdomains locally, you'll need to modify your hosts file:
On Windows:
- Open Notepad as Administrator
- Open
C:\Windows\System32\drivers\etc\hosts
- Add the following lines:
127.0.0.1 menuqr.local 127.0.0.1 joes-diner.menuqr.local 127.0.0.1 pizza-place.menuqr.local 127.0.0.1 cafe-bistro.menuqr.local 127.0.0.1 downtown-pub.menuqr.local 127.0.0.1 family-diner.menuqr.local
On Mac/Linux:
- Open Terminal
- Edit hosts file with:
sudo nano /etc/hosts
- Add the same lines as above
- Save with Ctrl+O, exit with Ctrl+X
-
Run the development server
npm run dev # or pnpm dev # or yarn dev
-
Access the application
- Main application: http://menuqr.local:3000
- Restaurant menus:
- Node.js 18.x or later
- npm/yarn/pnpm
- Git
npm run build
npm start
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/AmazingFeature
- Commit your changes
git commit -m 'Add some AmazingFeature'
- Push to the branch
git push origin feature/AmazingFeature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email [email protected] or join our Discord community.
If you find this project helpful, please consider giving it a star to show your support!
You can use these demo accounts to test different subscription tiers:
-
Joe's Diner (Professional)
- Email: [email protected]
- Password: Password123!
- Features: Multiple menus, advanced analytics
-
Pizza Place (Starter)
- Email: [email protected]
- Password: Password123!
- Features: Basic menu management
-
Café Bistro (Professional)
- Email: [email protected]
- Password: Password123!
- Features: Multiple menus, analytics
-
Downtown Pub (Professional)
- Email: [email protected]
- Password: Password123!
- Features: Multiple menus, analytics
-
Family Diner (Enterprise)
- Email: [email protected]
- Password: Password123!
- Features: Full access to all features
Each account demonstrates different subscription tier features and limitations.
** This project has 5460 lines of code and text as of 10/26/2024, counting this line.