Skip to content

**RestoApp** is a comprehensive mobile Point of Sale (POS) application designed for restaurants. Built with Flutter, it provides role-based access for different staff members including Admin, Waiter, Cashier, and Kitchen staff.

Notifications You must be signed in to change notification settings

AlpianPPLG/RestoApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍽️ RestoApp - Restaurant POS Mobile Application

RestoApp Logo

Modern Point of Sale System for Restaurant Management

Features β€’ Tech Stack β€’ Installation β€’ Structure β€’ API


πŸ“– Overview

RestoApp is a comprehensive mobile Point of Sale (POS) application designed for restaurants. Built with Flutter, it provides role-based access for different staff members including Admin, Waiter, Cashier, and Kitchen staff.

This mobile app connects to the RESTAUS backend system and shares the same MySQL database (restaus_db), enabling seamless integration between web and mobile platforms.

✨ Features

πŸ‘¨β€πŸ’Ό Admin Module

  • Dashboard - Overview with stats (total menus, tables, today's orders, revenue)
  • Menu Management - Full CRUD operations with search and category filter
  • Table Management - Add, edit, delete tables with status management
  • User Management - Staff account management with role assignment
  • Settings - Restaurant configuration (coming soon)

🍽️ Waiter Module (Coming Soon)

  • Table grid view with real-time status
  • Order creation with menu catalog
  • Cart system with special notes
  • Order submission to kitchen

πŸ‘¨β€πŸ³ Kitchen Module (Coming Soon)

  • Kitchen Display System (KDS)
  • Order queue management
  • Item status updates
  • New order alerts

πŸ’° Cashier Module (Coming Soon)

  • Pending orders list
  • Payment processing
  • Multiple payment methods (Cash, QRIS, Debit)
  • Receipt generation

πŸ” Authentication

  • Secure login with JWT tokens
  • Role-based access control
  • Auto-login with session persistence
  • Secure token storage

πŸ› οΈ Tech Stack

Category Technology
Framework Flutter 3.x
Language Dart 3.3+
State Management flutter_bloc 8.x
Dependency Injection get_it + injectable
Routing go_router 13.x
HTTP Client Dio 5.x
Local Storage flutter_secure_storage
Code Generation freezed, json_serializable
Architecture Clean Architecture

πŸ“ Project Structure

lib/
β”œβ”€β”€ core/                    # Core utilities and configurations
β”‚   β”œβ”€β”€ constants/           # App constants, API endpoints
β”‚   β”œβ”€β”€ di/                  # Dependency injection setup
β”‚   β”œβ”€β”€ error/               # Exception and failure classes
β”‚   β”œβ”€β”€ network/             # Network info, connectivity
β”‚   β”œβ”€β”€ router/              # GoRouter configuration
β”‚   β”œβ”€β”€ theme/               # Colors, typography, spacing
β”‚   └── utils/               # Logger, helpers
β”‚
β”œβ”€β”€ data/                    # Data layer
β”‚   β”œβ”€β”€ datasources/         # Remote data sources (API calls)
β”‚   β”œβ”€β”€ models/              # Data transfer objects
β”‚   └── repositories/        # Repository implementations
β”‚
β”œβ”€β”€ domain/                  # Domain layer
β”‚   β”œβ”€β”€ entities/            # Business entities (freezed)
β”‚   β”œβ”€β”€ repositories/        # Repository interfaces
β”‚   └── usecases/            # Business logic use cases
β”‚
β”œβ”€β”€ presentation/            # Presentation layer
β”‚   β”œβ”€β”€ blocs/               # BLoC state management
β”‚   β”œβ”€β”€ pages/               # UI screens
β”‚   └── widgets/             # Reusable components
β”‚
β”œβ”€β”€ app.dart                 # App widget with MaterialApp
└── main.dart                # Entry point

πŸš€ Installation

Prerequisites

  • Flutter SDK 3.19.0 or higher
  • Dart SDK 3.3.0 or higher
  • Android Studio / VS Code with Flutter extensions
  • Backend server running (RESTAUS API on port 3000)

Setup

  1. Clone the repository

    git clone https://github.com/yourusername/restoapp.git
    cd restoapp
  2. Install dependencies

    flutter pub get
  3. Generate code (freezed, json_serializable, injectable)

    dart run build_runner build --delete-conflicting-outputs
  4. Configure API endpoint

    Edit lib/core/constants/api_endpoints.dart:

    static const String baseUrl = 'http://localhost:3000/api';
    // For Android emulator: 'http://10.0.2.2:3000/api'
    // For iOS simulator: 'http://localhost:3000/api'
    // For physical device: 'http://YOUR_IP:3000/api'
  5. Run the app

    # For Chrome (Web)
    flutter run -d chrome
    
    # For Android
    flutter run -d android
    
    # For iOS
    flutter run -d ios

πŸ“‘ API Documentation

The app connects to the RESTAUS backend API. Ensure the backend is running on http://localhost:3000.

Authentication Endpoints

Method Endpoint Description
POST /api/auth/login User login
POST /api/auth/register User registration
POST /api/auth/logout User logout

Menu Endpoints

Method Endpoint Description
GET /api/menus Get all menus
GET /api/menus/:id Get menu by ID
POST /api/menus Create menu
PUT /api/menus/:id Update menu
DELETE /api/menus/:id Delete menu

Table Endpoints

Method Endpoint Description
GET /api/tables Get all tables
POST /api/tables Create table
PUT /api/tables/:id Update table
PATCH /api/tables/:id/status Update status
DELETE /api/tables/:id Delete table

User Endpoints

Method Endpoint Description
GET /api/users Get all users
POST /api/users Create user
PUT /api/users/:id Update user
PUT /api/users/:id/password Reset password
DELETE /api/users/:id Delete user

Category Endpoints

Method Endpoint Description
GET /api/categories Get all categories

🎨 Theme

The app uses a custom orange-based Material Design theme:

Color Hex Usage
Primary #F57C00 Main brand color
Secondary #4CAF50 Success states
Background #FFF8F0 App background
Surface #FFFFFF Cards, dialogs
Error #E53935 Error states

πŸ“Š Progress

Phase Status Completion
Phase 1: Foundation βœ… Complete 100%
Phase 2: Authentication βœ… Complete 100%
Phase 3: Admin Module βœ… Complete 100%
Phase 4: Waiter Module πŸ”„ Pending 0%
Phase 5: Kitchen Module πŸ”„ Pending 0%
Phase 6: Cashier Module πŸ”„ Pending 0%
Phase 7: Receipt & Extras πŸ”„ Pending 0%
Phase 8: Polish & Testing πŸ”„ Pending 0%

Overall Progress: 55%

πŸ§ͺ Testing

# Run all tests
flutter test

# Run with coverage
flutter test --coverage

# Run specific test file
flutter test test/widget_test.dart

πŸ“± Supported Platforms

  • βœ… Android (SDK 21+)
  • βœ… iOS (12.0+)
  • βœ… Web (Chrome, Edge, Firefox)
  • βœ… Windows
  • βœ… macOS
  • βœ… Linux

πŸ”§ Development Commands

# Analyze code
flutter analyze

# Format code
dart format lib/

# Generate code (freezed, injectable)
dart run build_runner build --delete-conflicting-outputs

# Watch mode for code generation
dart run build_runner watch --delete-conflicting-outputs

# Clean build
flutter clean && flutter pub get

πŸ“‚ Related Projects

  • RESTAUS - Backend API (Node.js + Express + MySQL)
  • restaus-app - Web Admin Dashboard (Next.js)

🀝 Contributing

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

πŸ“„ License

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

πŸ“ž Support

For support, open an issue in the repository or contact the development team.


Made with ❀️ using Flutter

About

**RestoApp** is a comprehensive mobile Point of Sale (POS) application designed for restaurants. Built with Flutter, it provides role-based access for different staff members including Admin, Waiter, Cashier, and Kitchen staff.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published