Skip to content

A comprehensive restaurant food ordering and delivery application built with Laravel 9 and Vue.js 3, featuring a modern admin panel and customer-facing interface.

License

Notifications You must be signed in to change notification settings

stackmasteraliza/food_king

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Food King - Restaurant Food Ordering & Delivery App

Laravel Vue.js PHP MySQL MIT License

A comprehensive restaurant food ordering and delivery application built with Laravel 9 and Vue.js 3, featuring a modern admin panel and customer-facing interface.

πŸš€ Features

Customer Features

  • Browse Menu: Explore categories and items with images
  • User Authentication: Register and login functionality
  • Shopping Cart: Add, update, and remove items
  • Order Tracking: Real-time order status updates
  • Payment Integration: Multiple payment gateways
  • Location Services: Address management and delivery
  • Reviews & Ratings: Rate orders and items
  • Promotions: Coupons and discount codes

Admin Features

  • Dashboard: Comprehensive analytics and insights
  • Menu Management: Categories, items, variations, and addons
  • Order Management: Process and track orders
  • User Management: Customer and staff management
  • Reports: Sales, orders, and performance analytics
  • Settings: Configure app settings and preferences
  • Notifications: Push notifications and email alerts

Technical Features

  • Responsive Design: Mobile-first approach
  • Real-time Updates: WebSocket integration
  • Multi-language Support: Internationalization ready
  • API-Driven: RESTful API architecture
  • Role-Based Access: Different user permissions
  • File Upload: Image management with Laravel Media Library

πŸ› οΈ Tech Stack

  • Backend: Laravel 9.x Framework
  • Frontend: Vue.js 3.x with Composition API
  • Database: MySQL 5.7+
  • Styling: Tailwind CSS + Custom CSS
  • Build Tool: Laravel Mix (Webpack)
  • Authentication: Laravel Sanctum
  • File Storage: Laravel Storage with symbolic links
  • Real-time: Laravel Broadcasting (optional)
  • Payment: Multiple gateway integrations

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • PHP: 8.0 or higher
  • Composer: 2.x
  • Node.js: 16.x or higher (with npm)
  • MySQL: 5.7 or higher
  • Git: Latest version

πŸš€ Installation & Setup

1. Clone the Repository

git clone https://github.com/stackmasteraliza/food_king.git
cd food_king

2. Install PHP Dependencies

composer install

3. Install Node.js Dependencies

npm install

4. Environment Configuration

cp .env.example .env

Update the .env file with your configuration:

APP_NAME="Food King"
APP_ENV=local
APP_KEY=base64:your_app_key_here
APP_DEBUG=true
APP_URL=http://localhost:8000

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=food_king
DB_USERNAME=your_db_username
DB_PASSWORD=your_db_password

# Generate application key
php artisan key:generate

5. Database Setup

# Create database
mysql -u root -p
CREATE DATABASE food_king;
EXIT;

# Run migrations
php artisan migrate

# Seed the database (optional - includes demo data)
php artisan db:seed

6. Storage Setup

# Create symbolic link for file storage
php artisan storage:link

7. Build Frontend Assets

# For development
npm run dev

# For production
npm run prod

8. Start the Application

# Start Laravel development server
php artisan serve

# The application will be available at: http://localhost:8000

πŸ”§ Configuration

Payment Gateways

Configure payment gateways in your .env file:

# Stripe
STRIPE_KEY=your_stripe_publishable_key
STRIPE_SECRET=your_stripe_secret_key

# PayPal
PAYPAL_CLIENT_ID=your_paypal_client_id
PAYPAL_CLIENT_SECRET=your_paypal_client_secret

# And more...

Email Configuration

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="noreply@foodking.com"
MAIL_FROM_NAME="${APP_NAME}"

Push Notifications (FCM)

FCM_SECRET_KEY=your_firebase_server_key
FCM_TOPIC=food_king_orders

πŸ“± Usage

Admin Panel

  • URL: http://localhost:8000/admin
  • Default Admin Credentials:

Customer Interface

  • URL: http://localhost:8000
  • Register/Login to place orders

πŸ§ͺ Testing

# Run PHP tests
php artisan test

# Run frontend tests (if configured)
npm test

πŸš€ Deployment

Production Build

# Build optimized assets
npm run prod

# Cache configuration for better performance
php artisan config:cache
php artisan route:cache
php artisan view:cache

Web Server Configuration

Configure your web server (Apache/Nginx) to point to the public directory.

SSL Certificate

Ensure HTTPS is configured for production environments.

πŸ“ Project Structure

food_king/
β”œβ”€β”€ app/                    # Laravel application code
β”‚   β”œβ”€β”€ Console/
β”‚   β”œβ”€β”€ Exceptions/
β”‚   β”œβ”€β”€ Http/
β”‚   β”œβ”€β”€ Models/
β”‚   └── Providers/
β”œβ”€β”€ bootstrap/              # Laravel bootstrap
β”œβ”€β”€ config/                 # Configuration files
β”œβ”€β”€ database/               # Migrations and seeders
β”‚   β”œβ”€β”€ migrations/
β”‚   └── seeders/
β”œβ”€β”€ public/                 # Public assets
β”œβ”€β”€ resources/              # Views and frontend assets
β”‚   β”œβ”€β”€ js/                # Vue.js components
β”‚   β”œβ”€β”€ sass/              # Stylesheets
β”‚   └── views/             # Blade templates
β”œβ”€β”€ routes/                 # Route definitions
β”œβ”€β”€ storage/                # File storage
β”œβ”€β”€ tests/                  # Test files
β”œβ”€β”€ .env.example           # Environment template
β”œβ”€β”€ artisan                # Laravel CLI
β”œβ”€β”€ composer.json          # PHP dependencies
β”œβ”€β”€ package.json           # Node dependencies
└── webpack.mix.js         # Asset compilation

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Laravel Framework
  • Vue.js Team
  • Tailwind CSS
  • All contributors and supporters

πŸ“ž Support

For support, email support@foodking.com or join our Discord community.

πŸ”„ Updates

Stay updated with the latest features and improvements by following our changelog.


Made with ❀️ for food lovers worldwide πŸ•πŸ”πŸŸ

About

A comprehensive restaurant food ordering and delivery application built with Laravel 9 and Vue.js 3, featuring a modern admin panel and customer-facing interface.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published