Создание подкатегории, уникальной в рамках родительской категории
Для создания подкатегории необходимо пройти по кнопке «Категории» в центре вверху страницы (Рисунок 26).
Рисунок 26 – кнопка «Категории»
Затем открывается новая страница с несколькими кнопками. Если категории до этого не были созданы, будет отображаться только кнопка «Создать». При наличии категорий появляется список с возможностью изменять и удалять категории с помощью соответствующих кнопок. При нажатии кнопки «Создать» появляется новая страница, показанная на рисунке 27.
Рисунок 27 – Создание новой категории
Для создания подкатегории необходимо иметь уже созданную категорию. Пользователь должен выбрать категорию, для указания к чему принадлежит подкатегория. При нажатии кнопки «Создать» подкатегория проходит проверку на уникальность, и, при успешном прохождение проверки, создаётся новая подкатегория и открывается страница со списком категорий.
Создание записи о списании средств со счета с указанием места, категории, суммы и комментария
Для создания нового счёта необходимо пройти по кнопке «Транзакции» в центре вверху страницы (рисунок 28).
Рисунок 28 – кнопка «Счета»
Затем открывается новая страница с несколькими кнопками. Если транзакции до этого не были созданы, будет отображаться только кнопка «Создать». При наличии транзакций появляется список с возможностью изменять и удалять транзакции с помощью соответствующих кнопок. При нажатии кнопки «Создать» появляется новая страница, показанная на рисунке 29.
Рисунок 29 – Создание нового счёта
Здесь несколько обязательных для заполнения полей: сумма и дата. Также необходимо указать хотя бы один из счетов. При нажатии кнопки «Создать» счёт проходит проверку на уникальность, и, при успешном прохождение проверки, создаётся новый счёт, и открывается страница с обновлённым списком счетов.
Изменение или удаление счетов, мест, категорий и транзакций
Для удаления или изменения счетов, мест, категорий и транзакций необходимо зайти в соответствующие разделы. Напротив каждой строчки с данными находится по две кнопки (рисунок 30).
Рисунок 30 – Действия над записями
При нажатии кнопки «Удалить» появляется диалоговое окно для подтверждения удаления записи. При нажатии же кнопки изменить, появится окно аналогичное созданию с данными сохранёнными ранее. Изменяя поля, сохраняем их с помощью кнопки сохранить.
Сообщения программы
При выполнении различных операций на сайте, могут возникать сообщения обозначающие неверные действия пользователя. Некоторые поля являются обязательными или на них стоят иные ограничения, и, при не заполнении этих полей или вводе некорректных данных, пользователь получает соответствующие уведомление.
Так, например, при редактировании места, если не ввести название, то поле для ввода подсветится красным, а под полем появится надпись, что название места является обязательным для ввода (рисунок 31)
Рисунок 31 – Ошибка при редактировании места
В другом примере ошибка возникает при редактировании транзакций. Если ввести два одинаковых счёта, то сверху страницы появится сообщение о том, что счета должны быть разные (рисунок 32).
Рисунок 32 – Ошибка при редактировании транзакции
Заключение
Поставленные в рамках курсового проекта цели и задачи выполнены, все начальные требования удовлетворены. Реализован сервис учета личных финансов «MoneyTalks» на языке Python с использованием фреймворка Django в IDE PyCharm.
Основной акцент сделан на проектирование и анализ сервиса: создание схемы базы данных, диаграммы классов, описание логики взаимодействия сервиса и пользователя и компонентов сервиса между собой. Результатом является база данных, удовлетворяющая всем возможным случаям, заданным в требованиях, а также набор компонентов, построенных по схеме MVC. Создание сервиса осуществлялась в несколько этапов, результатом которых были UML диаграммы, используемые и корректируемые в дальнейшем для разработки.
Для организации коллективной работы и поддержания актуальности исходного кода проекта использовалась система управления версиями Git. В качестве системы непрерывной интеграции использовалась система Travis CI.
На данный момент проект реализовал все требования к сервису, но возможны дальнейшие пути развития. Как пример такого развития можно назвать создания API интерфейса и мобильного приложения для более удобной работы с сервисом.