Данное приложение было создано в рамках курсовой работы (ознакомиться с поставленной задачей можно в файле Курсовая Скворцов А.А.docx). Первоначально проект был создан с использованием фреймворка PySide6, но в дальнейшем перенесен на фреймворк PyQt5 с целью проверки кроссплатформенности последнего.
Основной функционал:
- Регистрация и авторизация пользователей
- Учет доходов и расходов
- Формирование отчётности за заданный период по доходам и расходам в виде диаграммы
Для работы с данными использована встроенная в Python библиотека Sqlite3.
Чтобы начать работу с приложением необходимо авторизоваться. Для этого нужно создать аккаунт/войти в него. При входе осуществляется проверка существования пользователя с введеными данными с помощью sql-запроса. В случае ошибки предусмотрено поле, которое проифнормирует пользователя о том, что такого пользователя/пароля не существует.
В этом же окне есть кнопки регистрации и восставновления пароля, при нажатии на которые откроются соответствующие окна.
После ввода данных приложение делает sql-запрос для проверки существования пользователя с такими данными/логином. В случае отрицательного результата сообщает об успешной регистрации. Так как проект учебный, то пароль хранится в БД как обычный набор символов (любых) без хэширования и соли.
После ввода данных приложение делает sql-запрос для проверки существования пользователя с таким логином. В случае положительного результата - пароль обновляется в БД.
Главное окно приложения представлено в виде таблицы доходов и расходов, переключиться между ними можно, нажав сверху на соответствующую "кнопку". Снизу можно добавить доход/расход в зависимости от выбранной таблицы, а также сформировать отчёт в виде диаграммы на основе существующих данных. Над таблицей можно выбрать категории сортировки (прим. дата), а также временной интервал, за который мы хотим видеть наши доходы/расходы.
Добавление/Удаление/Редактирование/Сортировка реализованы с помощью sql-запросов. Однако в связи с особенностью sqlite3, заключающейся в отсутствии типа данных date, пришлось создать "костыль" для корректной работы приложения.
Чтобы изменить выбранную строку в таблице, необходимо нажать ПКМ, в результате откроется контекстное меню, где ее на выбор можно удалить/редактировать.
Сам процесс редактирования (sql-запрос) реализован неверно :( и в дальнейшем будет исправлен.
Диаграмма формируется на основе существующих доходов/расходов пользователя в режиме "реального" времени.
- Python
- PyQt5
- Sqlite3
- Telegram - AlexSkvorz
- VK - AlexSkvorz





