This project is a graphical user interface (GUI) for analyzing and presenting hotel booking data for two hotels, the City Hotel and the Resort Hotel. It provides various statistical analyses and visualizations, including basic statistics, booking distributions, trends, and seasonality. The GUI allows users to interact with the data, adjust the time intervals for viewing, and store and retrieve data from a MySQL database. It was part of the coursework for CEID's Module Principles of Programming Languages & Compilers.
- Basic Statistics: Display average nights stayed, cancellation rates, and booking periods.
- Booking Distribution: Analyze booking distributions by month, season, room type, and customer type.
- Trends: Visualize monthly, yearly, and seasonal trends in bookings and cancellations.
- Seasonality: Explore seasonal patterns in bookings and cancellations.
- Database Integration: Retrieve and store data in a MySQL database.
- Data Export: Export analyzed data and database schema to CSV and SQL files.
-
Clone the repository:
git clone <https://github.com/johnvelgakis/DataManipGUI.git> cd <DataManipGUI>
-
Install the required dependencies:
pip install -r requirements.txt
-
Set up the MySQL database:
- Ensure MySQL is installed and running.
- Update the
db_connection.py
file with your MySQL credentials. - Create a db running create_db.sql.
- Insert the dataset to your db running insert_data_to_DB.py.
-
Launch the GUI:
python main_menu.py
-
Use the main menu to navigate through different analysis options:
- Basic Statistics
- Booking Distribution
- Trends
- Seasonality
-
View and interact with the visualizations and data tables presented in each section.
-
To export analyzed data and database schema:
python db_connection.py
-
Use the GUI controls to customize the analysis, such as selecting custom date ranges or different data groupings.
DataManipGUI/
│
├── main_menu.py
├── db_connection.py
├── hotel_booking.ipynb
├── requirements.txt
├── create_db.sql
├── insert_data_to_DB.py
├── LICENCE
├── README.MD
├── tables/
│ ├── basic_statistics.csv
│ ├── booking_distribution.csv
│ └── schema.sql
│
└── media/
├── src/
│ ├── bg1.jpg
│ └── Main_menu.png
└── graphics/
└── (All the plots being saved)
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.
This project is licensed under the MIT License. See the LICENSE file for more details.
For any questions or issues, please contact:
- Ioannis Velgakis - (johnvelgakis@gmail.com)