![Restaurant Reservation App]
- Overview
- Features
- Technology Stack
- API Documentation
- Next Steps
- Project Structure
- Contributing
- License
The Restaurant Reservation App is a web-based platform designed to streamline the process of managing restaurant information and handling customer reservations. Built with Flask, this application allows restaurant managers to create and edit restaurant profiles, assign multiple categories to each restaurant, and manage reservations through a robust API.
-
Restaurant Management:
- Create Restaurants: Add new restaurants with details such as name, address, phone number, description, and assign multiple categories.
- Edit Restaurants: Update existing restaurant information and manage associated categories.
- List Restaurants: View a comprehensive list of all registered restaurants along with their categories.
-
Category Management:
- View Categories: Retrieve a list of all available restaurant categories.
- Filter Restaurants by Category: Display restaurants filtered by selected categories.
-
Reservation Management:
- Create Reservations: Allow customers to create reservations by specifying restaurant, date, time, number of people, and personal details.
- Update Reservation Status: Enable restaurant managers to accept or decline reservations.
- List Reservations: View all reservations associated with a particular restaurant.
-
API Endpoints:
- Comprehensive API endpoints for interacting with restaurants, categories, and reservations.
- Example usage with
curl
commands provided for easy integration.
-
User-Friendly Interface:
- Intuitive frontend templates for managing restaurants and reservations.
- Responsive design for optimal viewing on various devices.
-
Backend:
- Flask - Web framework for Python.
- Flask-WTF - Form handling and CSRF protection.
- SQLAlchemy - ORM for database interactions.
- SQLite - Lightweight relational database.
-
Frontend:
- HTML5 & CSS3 - Markup and styling.
- JavaScript - Client-side interactivity.
-
Version Control:
-
GET /api/restaurants
- Retrieve a list of all restaurants with their associated categories
- curl http://localhost:5000/api/restaurants
-
GET /api/restaurants/int:restaurant_id
- Retrieve detailed information about a specific restaurant, including categories and reservations.
- curl http://localhost:5000/api/restaurants/1
-
GET /api/categories
- Retrieve a list of all restaurant categories.
- curl http://localhost:5000/api/categories
-
GET /api/categories/int:category_id/restaurants
- Retrieve a list of restaurants filtered by a specific category.
- curl http://localhost:5000/api/categories/1/restaurants
-
POST /api/reservations
- Create a new reservation
- curl -X POST http://localhost:5000/api/reservations
-H "Content-Type: application/json"
-d '{ "restaurant_id": 1, "name": "Max Mustermann", "date": "2024-05-20", "time": "19:30", "number_of_people": 4, "timestamp": "2024-04-27T14:35:22Z" }'
-
POST /api/reservations/int:reservation_id
- Update the status of a reservation (accept or decline).
- curl -X PATCH http://localhost:5000/api/reservations/1
-H "Content-Type: application/json"
-d '{ "status": "accepted" }'
- Create a new API Endpoint to send reservation data to the Frontend APP + add to index.html api documentation + readme
- Define a unique identifier for the frontend user so we can differentiate between their information/reservations
- Create a login functionality and a way to sign up
- Create a Dashboard where the Restaurant sees their most important information clearly
- Create a navigation header to quickly navigate between sites
- Color code reservations according to their status pending/accepted/declined and their datetime (today, tomorrow, past,..)