Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/edwinabdonshayo/jabudine

A mobile application designed for restaurant management, enabling customers to place orders, make table reservations, and streamline restaurant operations. Works of @Daemon403 & @EdwinAbdonShayo
https://github.com/edwinabdonshayo/jabudine

flask kivy mobile python restaurant

Last synced: 6 days ago
JSON representation

A mobile application designed for restaurant management, enabling customers to place orders, make table reservations, and streamline restaurant operations. Works of @Daemon403 & @EdwinAbdonShayo

Awesome Lists containing this project

README

        

***

# 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
- SQLite
- Buildozer (for Android APKs)
- Xcode (for iOS builds)

### Installation Steps
1. Clone the repository:
```bash
git clone https://github.com/yourusername/jabudine.git
cd jabudine
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Run the backend server:
```bash
cd backend
python app.py
```
4. Run the mobile app (Kivy):
```bash
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](https://github.com/Daemon403) or [Edwin](https://edwinshayo.com).

---

## License
See the LICENSE file for details.