Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/edwinabdonshayo/jabudine
- Owner: EdwinAbdonShayo
- License: other
- Created: 2025-01-01T21:21:13.000Z (9 days ago)
- Default Branch: main
- Last Pushed: 2025-01-02T23:33:26.000Z (7 days ago)
- Last Synced: 2025-01-03T00:24:34.208Z (7 days ago)
- Topics: flask, kivy, mobile, python, restaurant
- Language: Python
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.