Programming

A collection of diverse Python programming projects, demonstrating creativity and expertise in various fields.

Project Description
“The Legend of Valdoria” is a top-down fantasy game developed as part of an Object-Oriented Programming (OOP) course. The game immerses players in the mystical realm of Valdoria, where they can engage in various adventures and combat against enemies.
Technologies and Tools
  • Python: The primary programming language used for game development.
  • Pygame: A library utilized for handling graphics, sounds, and events in the game.
  • Git: Version control for the project.
  • Others: Additional tools for creating and editing graphics and sounds.
Features
  • Object-Oriented Design: The game is structured using OOP principles, which include classes for different game elements such as characters, enemies, and the game environment. This modular approach allows for easy maintenance and scalability.
  • Combat System: Players can engage in battles with various enemies, utilizing different strategies and skills.
  • Game Mechanics: Includes health management, score tracking, and level progression.
Team
  • Berzan Tas
  • Jakub Sromek
My Contribution
Working on “The Legend of Valdoria” provided me with extensive experience in object-oriented programming. I was responsible for designing and implementing core game mechanics using OOP principles, ensuring that the code was modular, maintainable, and scalable. This project enhanced my skills in Python programming, game development using Pygame, and effective collaboration within a team.
Overview
The Schedule Creator is a Python-based application designed to create and manage employee work schedules. The program reads an Excel file containing employee availability data, processes the information, and generates a work schedule for the entire month. It also includes a graphical user interface (GUI) for managing employee data and work schedules.
Features
  • Excel File Processing: Reads and formats Excel files containing employee availability.
  • Database Management: Uses SQLite3 to manage employee data.
  • Scheduling Algorithm: Creates a work schedule based on employee availability, ensuring that constraints like maximum work hours and minimum availability are met.
  • GUI: Built with Tkinter for user-friendly interaction.
Project Structure
  • main.py: Main application file that initializes and runs the program.
  • database.py: Contains the EmployeeDB class for managing the SQLite database.
  • gui.py: Implements the graphical user interface using Tkinter.
  • scheduleCreator.py: Contains the ScheduleCreator class for generating the work schedule.
  • settings.py: Configuration file with various settings and constraints.

 

Detailed Description:
Excel File Processing
The program reads an Excel file using pandas, processes it to enhance readability, and extracts employee availability information. The availability data is then used to generate a work schedule.
Database Management
The SQLite database is used to store employee information, including their work hours and availability. The database.py module handles all database operations such as creating tables, adding records, and fetching data.
Scheduling Algorithm
The scheduling algorithm considers various constraints such as maximum work hours, minimum number of workers per hour, and employee unavailability. It ensures that the generated schedule meets all these constraints.
GUI
The GUI, built with Tkinter, provides an interface for users to interact with the application. It allows users to manage employee data and view the generated work schedules.
Settings
The settings.py file contains various configuration options:
    • OPEN_HOUR: The opening hour of the workday.
    • CLOSE_HOUR: The closing hour of the workday.
    • MIN_WORKERS: Minimum number of workers per hour.
    • MAX_WORKERS: Maximum number of workers per hour.
    • MAX_UNAVAILABILITY: Maximum allowed unavailability for an employee.
    • MAX_HOURS: Maximum working hours per employee.