Skip to content

RayStar-k/BD_Browser_CourseWork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Games Database - GUI приложение

Графический интерфейс для управления базой данных видеоигр, разработанный в рамках курсовой работы.

Описание проекта

Приложение представляет собой desktop GUI на Python с использованием PyQt6 для работы с PostgreSQL базой данных видеоигр. Позволяет управлять каталогом игр, фильтровать их по различным параметрам и добавлять интересные факты об играх.

Структура базы данных

База данных состоит из следующих таблиц:

  • Games - основная таблица с информацией об играх
  • Genres - справочник жанров
  • Platforms - справочник платформ
  • Publishers - справочник издателей
  • GameFacts - факты об играх

Функциональные возможности

Просмотр и фильтрация игр

  • Просмотр всего каталога игр
  • Фильтрация по названию, жанру, платформе, издателю и году выпуска
  • Сортировка по столбцам
  • Редактирование информации об играх
  • Удаление игр из базы данных

Управление играми

  • Добавление новых игр в каталог
  • Редактирование существующих записей
  • Удаление игр с подтверждением
  • Контекстное меню для быстрого доступа к операциям

Работа с фактами

  • Просмотр фактов о конкретной игре
  • Добавление новых фактов
  • Редактирование существующих фактов
  • Удаление фактов
  • Указание источника информации

Требования

Системные требования

  • Python 3.8 или выше
  • PostgreSQL 12 или выше
  • Windows / Linux / macOS

Зависимости Python

PyQt6
psycopg2

Установка

1. Клонирование репозитория

git clone <repository-url>
cd CourseBD

2. Создание виртуального окружения

python -m venv venv

3. Активация виртуального окружения

Windows:

venv\Scripts\activate

Linux/macOS:

source venv/bin/activate

4. Установка зависимостей

pip install -r requirements.txt

5. Настройка базы данных

Создание базы данных

createdb video_games_db

Импорт дампа базы данных

psql -U postgres -d video_games_db -f video_games_db_dump.sql

6. Настройка подключения к БД

Создайте файл db_config.txt в корневой директории проекта со следующим содержимым:

dbname=video_games_db
user=имя пользователя
password=ваш_пароль
host=адрес хоста

Запуск приложения

python main.py

Структура проекта

CourseBD/
│
├── main.py                      # Точка входа в приложение
├── db.py                        # Модуль работы с базой данных
├── ui/
│   └── main_window.py          # Главное окно приложения
│
├── db_config.txt               # Конфигурация подключения к БД
├── video_games_db_dump.sql     # Дамп базы данных
├── requirements.txt            # Зависимости проекта
├── icon.ico                    # Иконка приложения
└── README.md                   # Документация

Использование

Просмотр игр

  1. Откройте вкладку "Просмотр игр"
  2. Используйте фильтры для поиска нужных игр
  3. Дважды кликните на игру для добавления факта
  4. Используйте контекстное меню (ПКМ) для дополнительных операций

Добавление игры

  1. Перейдите на вкладку "Добавить игру"
  2. Заполните все обязательные поля
  3. Нажмите "Добавить игру"

Работа с фактами

  1. Выберите игру в таблице
  2. Нажмите "Просмотреть факты" или дважды кликните на игру
  3. В открывшемся окне можно добавлять, редактировать и удалять факты

Особенности реализации

  • Безопасность: Использование параметризованных запросов для защиты от SQL-инъекций
  • Конфигурация: Параметры подключения к БД вынесены в отдельный файл
  • Интерфейс: Интуитивно понятный интерфейс с поддержкой контекстных меню
  • Валидация: Проверка введенных данных перед отправкой в БД
  • Обработка ошибок: Информативные сообщения об ошибках

Технологии

  • Python 3 - язык программирования
  • PyQt6 - фреймворк для создания GUI
  • PostgreSQL - система управления базами данных
  • psycopg2 - PostgreSQL адаптер для Python

Разработка

Структура кода

db.py

Класс Database инкапсулирует всю логику работы с базой данных:

  • Подключение к PostgreSQL
  • CRUD операции для игр
  • Работа с фактами
  • Фильтрация и поиск

ui/main_window.py

Класс MainWindow реализует пользовательский интерфейс:

  • Вкладки для различных операций
  • Таблицы с данными
  • Диалоговые окна для редактирования
  • Обработка пользовательских действий

main.py

Точка входа, инициализация и запуск приложения.

Возможные улучшения

  • Добавление поддержки экспорта данных в различные форматы (CSV, Excel)
  • Реализация полнотекстового поиска
  • Добавление графиков и статистики
  • Поддержка множественного выбора для массовых операций
  • Добавление истории изменений
  • Резервное копирование базы данных через GUI

About

Курсовая работа по базам данных 2 семестр.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages