Skip to content

A mobile application designed for restaurant management, enabling customers to place orders, make table reservations, and streamline restaurant operations. Works of @ANGA-Technologies

License

Notifications You must be signed in to change notification settings

EdwinAbdonShayo/JabuDine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


JabuDine

JabuDine is a mobile application designed for restaurant management, enabling customers to place orders, make table reservations, and streamline restaurant operations. The app offers a user-friendly interface and leverages modern technologies for a seamless dining experience.

Features

  • Order Management: Customers can browse menus and place orders directly from the app.
  • Table Reservations: Customers can book tables in advance based on availability.
  • Notifications: Real-time notifications for order status and reservation confirmations.
  • Admin Panel: Manage menu items, track reservations, and view analytics.
  • User Authentication: Secure login and registration system.

Technologies Used

1. Frontend

  • Kivy: A Python-based framework for developing multi-platform mobile applications. Kivy is used for building the user interface, ensuring responsiveness and cross-platform compatibility.
  • KivyMD: Extends Kivy with Material Design components for a modern and intuitive UI.

2. Backend

  • Flask: A lightweight Python web framework used to handle API requests and manage data flow.
  • SQLite (Subjected to Change): A lightweight database for storing user data, orders, reservations, and menu details.

3. APIs

  • RESTful APIs will be developed for communication between the frontend and backend. Key endpoints include:
    • POST /register - User registration
    • POST /login - User authentication
    • GET /menu - Fetch menu items
    • POST /order - Place an order
    • POST /reserve - Make a table reservation
    • GET /reservations - Fetch user reservations

4. Deployment

  • Backend Hosting: Flask will be deployed on a platform such as AWS or Heroku.
  • Database Hosting: SQLite can be upgraded to PostgreSQL for production scalability and hosted on cloud services.
  • Mobile App Distribution: The Kivy app will be compiled into APK (for Android) and IPA (for iOS) using Buildozer and Xcode respectively.

Project Structure

JabuDine/
├── backend/
│   ├── app.py           # Main Flask application
│   ├── models.py        # Database models
│   ├── routes/          # API endpoints
│   └── templates/       # HTML templates for admin panel (optional)
│
├── mobile_app/
│   ├── main.py          # Kivy main application file
│   ├── screens/         # Kivy screen files
│   ├── assets/          # Images, fonts, and other resources
│   ├── components/      # Custom widgets and Material Design components
│   └── buildozer.spec   # Configuration for building APK/IPA
│
├── database/
│   └── db.sqlite        # SQLite database
│
└── README.md            # Project documentation

Development Approach

  1. Planning and Prototyping

    • Define core functionalities and user workflows.
    • Design wireframes for user interfaces.
  2. Frontend Development

    • Build UI screens using Kivy and KivyMD.
    • Implement navigation and user interactions.
  3. Backend Development

    • Set up Flask server and create API endpoints.
    • Design database schema for orders, reservations, and user management.
  4. Integration

    • Connect the Kivy frontend with the Flask backend via RESTful APIs.
    • Test API responses and handle errors gracefully.
  5. Testing

    • Perform unit testing for API endpoints.
    • Conduct end-to-end testing on Android and iOS devices.
  6. Deployment

    • Package the Kivy app using Buildozer and Xcode.
    • Deploy the backend to a cloud platform.

Prerequisites

Software Requirements

  • Python 3.8+
  • Kivy and KivyMD
  • Flask (or Django)
  • SQLite
  • Buildozer (for Android APKs)
  • Xcode (for iOS builds)

Installation Steps

  1. Clone the repository:
    git clone https://github.com/edwinabdonshayo/jabudine.git
    cd jabudine
  2. Install dependencies:
    pip install -r requirements.txt
  3. Run the backend server:
    cd backend
    python app.py
  4. Run the mobile app (Kivy):
    cd mobile_app
    python main.py

Future Enhancements

  • Payment Integration: Add support for online payments via mobile money or credit cards.
  • Push Notifications: Use Firebase for real-time notifications.
  • Advanced Analytics: Provide detailed insights for restaurant owners.
  • Multi-language Support: Localize the app for various regions.

Contributing

We are currently not taking any contributions. If you are interested in contributing, please reach out to us either through Nicholas or Edwin.


License

See the LICENSE file for details.

About

A mobile application designed for restaurant management, enabling customers to place orders, make table reservations, and streamline restaurant operations. Works of @ANGA-Technologies

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages