Skip to content

Sunrizzin/MoneySpider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoneySpider

Этот репозиторий содержит код для приложения, которое отслеживает расходы и подсказывает нужную категорию в зависимости от тех данных которые вы добавили

Особенности

  • Простой и интерфейс на стандартных контроллерах.
  • Реализованы несколько алгоритмов подсказок категорий
  • Добавлены тесты для контроля корректности работы функций.
  • Логика и UI разделены
  • Добавлена локализация для упрощения перевода на другие языки
  • Добавлена документация к коду

Технологии и решения

Данное приложение было разработано с использованием следующих технологий и решений:

  • Язык программирования: Swift
  • UI Framework: SwiftUI
  • Test Framework XSTest

Установка и запуск

  1. Клонируйте этот репозиторий: git clone https://github.com/Sunrizzin/MoneySpider.git
  2. Откройте проект в Xcode (проверялось на версии 14.3.1)
  3. Запустите preview или симулятор для просмотра приложения

Подсказки категорий

  1. Базовая сортировка по id. Позволяет выставить начальные id которые будут сортироваться от меньшего к большему и дадут сортировку "по умолчанию"
  2. Сортировка по частоте использования. Приложение проверяет как часто используется категория и сортируем список категорий по убыванию частоты. Если частота категорий одинаковая то для них используется сортиировка из п1
  3. Сортировка по вхождению суммы в диапазон сумм для категории. При ввобде новой суммы расхода приложение проверяет уже добавленные расходы и собирает диапазоны сумм для каждой из категорий и проверят вхождение вводимой суммы в диапазоны категорий. В случае если совпадение есть то попавшие категории сортируются по частоте и/или id и показываются пользователю. Если сопадений нет то происходит сортировка из п2

Что можно добавить ещё

  1. Если введенная сумма не входит ни в один диапазон, то подставлять ближайшую подходящаяю категорию. например: ввесли число 100 и они в одной из уже добавленных расходов нет категории в которую попадает это число но одна из категорий имеет диапазон 101...200 и можно рекомендовать её
  2. Добавить подсказку по регулярности расхода. Например: если мы вводим число 100 то можем посмотреть по каким дням недели (либо будни/выходные либо времена года и т.д.) было добавление этой же суммы для одной и тоже категории. Но это решение сильно усложнит логику приложения и реализацию, так как потребует проверку сильно большего количества параметров.
  3. Идеальным решением будет обучить ML модель на большом количестве данных и принимать решения о подсказке категорий с её помощью. Но это уже совершенно другая история

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages