Skip to content

Repository files navigation

Приложение для контроля финансов

Данное приложение было создано в рамках курсовой работы (ознакомиться с поставленной задачей можно в файле Курсовая Скворцов А.А.docx). Первоначально проект был создан с использованием фреймворка PySide6, но в дальнейшем перенесен на фреймворк PyQt5 с целью проверки кроссплатформенности последнего.

Основной функционал:

  • Регистрация и авторизация пользователей
  • Учет доходов и расходов
  • Формирование отчётности за заданный период по доходам и расходам в виде диаграммы

Для работы с данными использована встроенная в Python библиотека Sqlite3.

Авторизация

Чтобы начать работу с приложением необходимо авторизоваться. Для этого нужно создать аккаунт/войти в него. При входе осуществляется проверка существования пользователя с введеными данными с помощью sql-запроса. В случае ошибки предусмотрено поле, которое проифнормирует пользователя о том, что такого пользователя/пароля не существует.

В этом же окне есть кнопки регистрации и восставновления пароля, при нажатии на которые откроются соответствующие окна.

Регистрация

После ввода данных приложение делает sql-запрос для проверки существования пользователя с такими данными/логином. В случае отрицательного результата сообщает об успешной регистрации. Так как проект учебный, то пароль хранится в БД как обычный набор символов (любых) без хэширования и соли.

Восстановление пароля

После ввода данных приложение делает sql-запрос для проверки существования пользователя с таким логином. В случае положительного результата - пароль обновляется в БД.

Главное окно

Главное окно приложения представлено в виде таблицы доходов и расходов, переключиться между ними можно, нажав сверху на соответствующую "кнопку". Снизу можно добавить доход/расход в зависимости от выбранной таблицы, а также сформировать отчёт в виде диаграммы на основе существующих данных. Над таблицей можно выбрать категории сортировки (прим. дата), а также временной интервал, за который мы хотим видеть наши доходы/расходы.

Добавление/Удаление/Редактирование/Сортировка реализованы с помощью sql-запросов. Однако в связи с особенностью sqlite3, заключающейся в отсутствии типа данных date, пришлось создать "костыль" для корректной работы приложения.

Редактирование

Чтобы изменить выбранную строку в таблице, необходимо нажать ПКМ, в результате откроется контекстное меню, где ее на выбор можно удалить/редактировать.

Сам процесс редактирования (sql-запрос) реализован неверно :( и в дальнейшем будет исправлен.

Диаграмма

Диаграмма формируется на основе существующих доходов/расходов пользователя в режиме "реального" времени.

Сделано с помощью

  • Python
  • PyQt5
  • Sqlite3

Автор

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages