Графический интерфейс для управления базой данных видеоигр, разработанный в рамках курсовой работы.
Приложение представляет собой desktop GUI на Python с использованием PyQt6 для работы с PostgreSQL базой данных видеоигр. Позволяет управлять каталогом игр, фильтровать их по различным параметрам и добавлять интересные факты об играх.
База данных состоит из следующих таблиц:
- Games - основная таблица с информацией об играх
- Genres - справочник жанров
- Platforms - справочник платформ
- Publishers - справочник издателей
- GameFacts - факты об играх
- Просмотр всего каталога игр
- Фильтрация по названию, жанру, платформе, издателю и году выпуска
- Сортировка по столбцам
- Редактирование информации об играх
- Удаление игр из базы данных
- Добавление новых игр в каталог
- Редактирование существующих записей
- Удаление игр с подтверждением
- Контекстное меню для быстрого доступа к операциям
- Просмотр фактов о конкретной игре
- Добавление новых фактов
- Редактирование существующих фактов
- Удаление фактов
- Указание источника информации
- Python 3.8 или выше
- PostgreSQL 12 или выше
- Windows / Linux / macOS
PyQt6
psycopg2
git clone <repository-url>
cd CourseBDpython -m venv venvWindows:
venv\Scripts\activateLinux/macOS:
source venv/bin/activatepip install -r requirements.txtcreatedb video_games_dbpsql -U postgres -d video_games_db -f video_games_db_dump.sqlСоздайте файл db_config.txt в корневой директории проекта со следующим содержимым:
dbname=video_games_db
user=имя пользователя
password=ваш_пароль
host=адрес хоста
python main.pyCourseBD/
│
├── main.py # Точка входа в приложение
├── db.py # Модуль работы с базой данных
├── ui/
│ └── main_window.py # Главное окно приложения
│
├── db_config.txt # Конфигурация подключения к БД
├── video_games_db_dump.sql # Дамп базы данных
├── requirements.txt # Зависимости проекта
├── icon.ico # Иконка приложения
└── README.md # Документация
- Откройте вкладку "Просмотр игр"
- Используйте фильтры для поиска нужных игр
- Дважды кликните на игру для добавления факта
- Используйте контекстное меню (ПКМ) для дополнительных операций
- Перейдите на вкладку "Добавить игру"
- Заполните все обязательные поля
- Нажмите "Добавить игру"
- Выберите игру в таблице
- Нажмите "Просмотреть факты" или дважды кликните на игру
- В открывшемся окне можно добавлять, редактировать и удалять факты
- Безопасность: Использование параметризованных запросов для защиты от SQL-инъекций
- Конфигурация: Параметры подключения к БД вынесены в отдельный файл
- Интерфейс: Интуитивно понятный интерфейс с поддержкой контекстных меню
- Валидация: Проверка введенных данных перед отправкой в БД
- Обработка ошибок: Информативные сообщения об ошибках
- Python 3 - язык программирования
- PyQt6 - фреймворк для создания GUI
- PostgreSQL - система управления базами данных
- psycopg2 - PostgreSQL адаптер для Python
Класс Database инкапсулирует всю логику работы с базой данных:
- Подключение к PostgreSQL
- CRUD операции для игр
- Работа с фактами
- Фильтрация и поиск
Класс MainWindow реализует пользовательский интерфейс:
- Вкладки для различных операций
- Таблицы с данными
- Диалоговые окна для редактирования
- Обработка пользовательских действий
Точка входа, инициализация и запуск приложения.
- Добавление поддержки экспорта данных в различные форматы (CSV, Excel)
- Реализация полнотекстового поиска
- Добавление графиков и статистики
- Поддержка множественного выбора для массовых операций
- Добавление истории изменений
- Резервное копирование базы данных через GUI