Домашние Финансы — Home.Finance.Ua


    Уважаемые хабра-люди, в этом посте я бы хотел рассказать об онлайн-системе для ведения домашней бухгалтерии «Домашние Финансы — Home.Finance.Ua»

    Свой пост я разделю на две части. Первая из них будет больше домашне-бухгалтерская, где я расскажу что интересного и полезного умеет система. А вторая — техническая, в которой я попытаюсь раскрыть некоторые ее архитектурные особенности. Если для кого-то много букв — на главной странице есть такая большая кнопка «Протестируйте систему ДОМАШНИЕ ФИНАНСЫ», которая ведет в наполненный реальными данными аккаунт.


    Часть домашне-бухгалтерская



    Домашние Финансы — это онлайн-система для ведения домашней бухгалтерии, учета личных финансов, планирования семейного бюджета. Структурно ведение домашней бухгалтерии в Домашних Финансах можно разделить на учет, планирование и анализ. И так, все по порядку.

    Учет

    Все финансовые операции в Домашних Финансах упрощены до расходов, доходов (которые определяют обмен деньгами бюджета с внешним миром) и переводов по счетам (внутрибюджетное перемещение денег). Этими тремя простыми и интуитивно понятными операциями несложно описать любой финансовый кульбит: взятие кредита, одалживание денег на короткий или длительный срок, обмен валюты, откладывание сбережений, возврат денег за возвращенный в магазин товар, компенсация служебных расходов и т. д. Некоторые схемы (в частности разные варианты учета долгов) описаны здесь.

    Внести очередную операцию можно непосредственно или по SMS, отправив составленное по определенным правилам текстовое сообщение на обычный (в смысле тарифификации SMS-сообщений) номер МТС. Кстати, совсем недавно один из наших пользователей написал небольшое Android-приложение, в котором можно удобно создавать и хранить операции а затем отправлять на сервер сообщением, составленным автоматически.

    Планирование

    Планирование в Домашних Финансах состоит из трех разных… «планирований».

    Вы можете планировать каждую отдельную финансовую операцию. Можете внести заранее известные операции наступившего месяца и затем, по мере, наступления соответствующей даты, просто «подтверждать» их. Таким образом «запланированная» операция превратиться в «совершенную» и начнет проходить по всем финансовым отчетам. Если нет — то станет «просроченной» и будет висеть бельмом в глазу до удаления или подтверждения. Маньяки, которые любят загодя создавать множество «запланированных» операций, могут использовать клонирование операций с указанием алгоритма периодичности (каждый будний день, каждый выходной; этот же день каждой недели, месяца).

    Планирование бюджета — второй вид планирования. Оно заключается в установке плановых значений для каждой отдельной категории расходов и доходов. Для тех кто только начинает планировать удобно начать с каких-то условных значений. А те кто из месяца в месяц замечает закономерности может использовать «Планирование с компенсацией» — это возможность изменять план по одной категории как за счет обратного изменения планов по другим (всем или заданным) категориям, так и за счет изменения общей суммы плановых расходов или доходов.


    Финансовые цели — последний вид планирования который позволяет планировать остатки. Накопить денги на отпуск, дорогую покупку, просто отложить некоторую сумму в сбережениях к назначенному сроку — это финансовая цель, если можно так сказать, заиметь средства в некотором размере, т. е. Получить остаток.

    Анализ

    Для анализа своего финансового состояния, контроля ключевых финансовых показателей в Домашних Финансах есть множество финансовых отчетов.

    Наиболее общий и открывающийся при входе в систему — отчет «Итоги отчетного периода». Здесь можно создавать свои виджеты для отображения интересующих пользователя показателей: сумма расходов (доходов) по заданным категориям, сумма остатков на заданных счетах. Если правильно подобрать для себя финансовые показатели, этого отчета будет достаточно в большинстве случаев работы с системой.


    «Таблица расходов» демонстрирует все операции за активный бюджетный период. Она может быть отсортирована по любому столбцу, отредактирована в ячейках, в футер таблицы выводится общая сумма перечисленных операций.


    Гистограмма «Расходы по дням/периодам» демонстрирует суммы расходов в соответствующие дни. Если у вас есть запланированные и/или просроченные операции — их суммы будут видны на этой гистограмме другим цветом.


    Круговые диаграммы «Суммы расходов по категориям» и «Суммы расходов по счетам» позволяют сравнить расходы по разным категориям или с разных счетов.


    Стоит отметить широкие возможности фильтрации операций. Вы можете отфильтровать исследуемый набор операций активного периода по категориям, счетам, валюте, дате, типу или фрагменту комментария. При этом и в таблице, и на диаграммах вы будете видеть отчеты составленные только по отобранным фильтром операциям. Так, например, на гистограмме можно получить суммы расходов по дням только по категории «Транспорт», или же сравнить на круговой диаграмме расходы только по двум категориям «Продукты» и «Развлечения».


    Для контроля выполнения расходного и доходного бюджетов используются два табличных отчета и один графический (на нем вы увидите плановые и фактические суммы как по отдельным категориям расходов и доходов, так и в общем планы и факты расходной и доходной частей бюджета).


    Комплексная диаграмма «Динамика остатков по дням/периодам» показывает линейный график изменения остатков на счетах а также суммы расходов-отчислений и доходов-начислений по счетам. Вы можете выбрать счета для анализа и валюту интересующих вас остатков. Кроме того можно увидеть динамику изменения остатков во всех валютах в эквиваленте основной валюты аккаунта (с учетом реального курса обмена наличных валют по соответствующим датам).


    Отчет «Финансовые цели» демонстрирует отдельные для каждой финансовой цели гистограммы: процент накопленного остатка от запланированнго и процент прошедшего времени от отведенного.


    В Домашних Финансах есть так называемый мультиплейер — возможность вести одним пользователем несколько независимых бюджетов и доступ нескольких пользователей в один бюджетный аккаунт с разными уровнями прав. Поскольку система ориентирована на домашнюю бухгалтерию, уровни прав доступа достаточно характерны:
    • Гость может только просматривать отчеты
    • Пользователь может смотреть и вносить новые операции, но без возможности их редактирования или удаления
    • Редактор это Пользователь, который может редактировать и удалять свои операции
    • Опытный редактор может редактировать и удалять любые операции бюджетного аккаунта
    • Администратор имеет доступ к настройкам аккаунта


    Отдельно хочется сказать про бюджетные сетки. В Домашних Финансах вы можете пользоваться недельной, месячной (с выбором дня месяца, который будет считаться днем начала нового бюджетного периода) и квартальной бюджетными сетками. При этом вы можете в любой момент менять тип сетки (например, всегда работаете с «месячной» сеткой, но решили отследить какой-то показатель на квартальной). Это никак не влияет на финансовую историю, все данные реструктуризируются налету.

    В случае, если есть необходимость отслеживать показатели (динамика остатков, расходы по категориям) не изо дня в день внутри одного бюджетного периода, а от периода к периоду — используйте режим "Все периоды". Соответствующие отчеты самостоятельно преобразуются к нужной временной сетке.

    Если вы активно пользуетесь разными видами планирования — вам пригодится такая фича как «Дата актуальности учета». Это практически машина времени, которая позволяет перемещаться в прошлое и будущее и видеть свои финансовые показатели в том виде, в каком они были или будут. Перенеслись в будущее — и получили:
    • доступ к «будущим» бюджетным периодам
    • все запланированные операции которые относительно нового «сегодня» оказались в прошлом станут совершенными, пройдут по финансовым отчетам и будут доступны для любого анализа

    Кроме таких глобальных штук есть много небольших удобных фич: ввод чеков, «Заметки», экспорт в csv, калькулятор и т. д.

    Система Домашние Финансы частично платная. После trial-периода длиной в 45 дней вы можете продолжать пользоваться всем набором функционала (кроме мультиплейера) но с ограничением на количество вносимых операций и частоту доступа к системе. Более подробно этот момент описан здесь. Скажу только, что плата за работу без ограничений равна 0.50 грн в сутки.

    С удовольствием отвечу на все вопросы по функционалу в комментариях. А сейчас расскажу немного об архитектуре системы.

    Часть техническая


    Архитектурно Домашние Финансы состоят из трех элементов. Основной — это клиентское js-приложение. Оно написано на замечательном js-фреймворке qooxdoo. Данные поступают в приложение в сыром виде, все расчеты и формирование отчетов происходит в браузере. Для отображения диаграмм и графиков используется OpenFlashChart.
    Вторая по значимости часть — это сервер с PHP+MySQL, с которым общается клиент. SMS-шлюз стоит отдельно и работает с сервером по http.

    Все локальные изменения в клиентском приложении (созданные, отредактированные и удаленные операции, измененные настройки) требуют принудительного сохранения на сервер (вызванного действием пользователя или автоматически). Таким образом один раз загруженное приложение может длительное время (пока открыта html-страница приложения) не требовать обращения к серверу и практически работать offline. Связь потребуется либо при сохранении изменений, либо для отмены изменений, либо при смене активного бюджетного периода. Это требует несколько избыточного трафика при «холодном старте», но с другой стороны экономит его в последствии и дает некоторую автономность в работе.

    Ну и третья часть — это обертка, внешний сайт с разными красивостями, правовой информацией, документацией и форумом поддержки. Здесь использована Kohana3 и jQuery.

    В комментариях постараюсь ответить на вопросы и конструктивную критику.
    Поделиться публикацией

    Комментарии 38

      +6
      Уже видел много Вашей рекламы в Киевском метро.
      И вообще вы начали весьма не слабую рекламную кампанию, как для интернет проекта.

      Вы можете поделится информацией, сколько уже пользователей использует платную основу Вашего продукта?

      А вообще вещь весьма удобная для личного сохранения денег.
      15 грн в месяц — плата не велика, для тех кто не может понять куда деваются его деньги)
        0
        Спасибо за отзыв.
        Информацией, к сожалению, поделиться не могу :) Могу сказать только, что динамика положительная, но ест проект пока больше чем зарабатывает.
          0
          А предоставления тестового периода не планируется?
          Еще у меня такой вопрос. В тестовом аккаунте я не нашел такой функции как вывести детальный расход по категориям.

          Т.е. к примеру я добавил «Купил пирожок» — 4 грн в раздел «Питание»
          Он отображается на вкладке clip2net.com/clip/m50902/1305621562-clip-10kb.png
          Но там все скопом + сортировка содержимого.

          Есть ли подраздел «Затраты только на еду»
          Что бы вывело исключительно затраты на еду и больше ничего.

          Было б хорошо если б пользователи могли сами строить себе ветки и подразделы.
          К примеру удобно рассортировать траты на еду:
          Питание на работе
          Походы в супер маркет
          Походы в ресторан.

          Ну и так далее)
            0
            «А предоставления тестового периода не планируется?»
            Не заметил. Он есть.
              0
              Да. Единственное, чего НЕ позволяет тестовый период — работа по https и вход в аккаунт других пользователей.
              0
              Там немного не так. В дереве вы видите типы отчетов: табличное представление, гистограмма сумм по дням, pipe сравнения и т.д. А уже внути отчета вы можете управлять данными, по которым он строится. В частности то что вы говорите делается «Фильтром данных» внутри отчета. Фильтруете операции по категории («Питание») — и видите только операции «Питания». Фильтр сохраняет свое значение по все папке отчетов. Т.е. если вы откроете «Гистограмму расходов» — вы увидите гистограмму только для категории «Питание».
          +1
          Проект интересный для меня, как раз недавно начал вести учет расходов-доходов. Хотелось бы увидеть полноценный клиент для андроида, который синхронизируется через сеть. Смс немного не удобно — бывает нужно и отредактировать одну транзакцию, и бывает их сразу много вводится, и на каждый проезд в общественном транспорте отправлять сообщение тоже не хочется.
            0
            Мобильные клиенты будут. Тот который есть сейчас группирует операции в одно сообщение, а не шлет их разными. Да, если сообщение длинное — оно будет автоматически разбито на несколько, но поместить несколько операций в одно итоговое сообщение вполне реально.
              0
              Ага, спасибо. Значит попробую. Хотелось бы еще увидеть импорт из существующих клиентов для ведения домашней бухгалтерии.
            0
            хабраэффект в действии.
              +1
              Именно, поднимаем.
              0
              А что можете сказать о защите данных ваших клиентов?
                0
                Стандартный набор.
                Оплаченные аккаунты работают по https, пароли в открытом виде не хранятся. Кроме E-mail никакой другой персональной информации для работы не требуется. Хотя, для желающих пользоваться СМС-сервисом нужно хранить в системе 7 последних цифр номеров телефонов, с которых будут слаться сообщения.
                0
                планируется ли мобильная версия сайта?
                  0
                  Да
                  0
                  Есть значительные минусы онлайн-бухгалтерии:
                  1) Непонятно, кто имеет доступ к этим базам данных. И почем потом продаст их на Петровке.
                  2) В нашем государстве, подобные вещи спокойно затребует СБУ даже без судебного решения (или один из учредителей), и обратит против тебя.
                  3) Легкая промашка одного некомпетентного программиста или сисадмина — и базы данных с помощью хакеров станут доступны всей общественности.

                  Рекомендую пользоваться оффлайновыми решениями с синхронизацией.

                    0
                    Безусловно, с одной стороны есть куча активных методов защиты, репутация компании-владельца. С другой — глупые программисты, более умные злоумышленники, решение суда и прочее. Но есть еще третья сторона — элементарные методы сохранения анонимности в интернет. Если кому-то нужны мобильность — то вот ее цена.
                      0
                      И какие есть хорошие оффлайновые решения с синхронизацией?
                  • НЛО прилетело и опубликовало эту надпись здесь
                      +1
                      Ее разработка началась в сентябре прошлого года. Первый этап тестирования (10-15 лояльных пользователей) начался в декабре. В январе вышла официальная бета, которая была доступна параллельно со старой версией. А в релиз новая версия ушла 4 марта. Примерно такой вот календарь получился.

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

                      Потом есть у нас такая интересная штука как «Дата актуальности учета». Суть в том что для «совершенных» операций система дает огромное количество аналитических возможностей. От которых «запланированные» операции остаются в стороне. Так вот «Дата актуальности учета» позволяет тем, кто очень детализировано планирует будущие операции переносится в будущее и видеть будущие остатки, оценивать реальность выполнения финансовых целей и т.д.

                      Ну и конечно есть куча просто небольших фич, которые упрощают работу но я не знаю, есть ли они у других.
                      • НЛО прилетело и опубликовало эту надпись здесь
                          0
                          Я читал в блоге запись о подкатегориях, и почему их нет.
                          Я все понимаю, но мне настолько сильно не хватает этих подкатегорий, что функционал блекнет, перед этой «проблемой»
                          Для меня не так важен функционал этих подкатегорий, как сама визуальная часть.
                          И вообще управление категориями очень неудобное.

                          Я критикую потому, что мне нравиться этот сервис. Он очень понятен для рядового пользователя и ничем не нагружает.

                          Подумайте пожалуйста еще над этой частью функцыонала.
                            0
                            Понимаете, это палка о двух концах. Сервис понятен именно тем, что в нем нет большого количества несвязанных между собой или вообще противоречивых друг другу элементов.

                            Плоская структура категорий означает что одна операция входит только в одну категорию. Иерархическая — операция входит в в несколько категорий связанных как «родитель»-«ребенок». Что это значит?
                            1. Очень просто сравнивать расходы по нескольким любым категориям на pipe (нет операций, входящих в одновременно в разные куски прирога)
                            2. Очень просто планировать расходы по категориям (не нужно задумываться о том, что план на категорию «Наши авто» должен равнятся сумме плана на «Моя машина» и «Машина супруги» )
                            3. Можно предложить пользователю простой алгоритм планирования расходов с компенсацией (увеличение плана по одной категории за счет уменьшения суммарного плана на остальные категории дабы общий план расходов остался неизменным).

                            Иерархическая структура просто более демонстративна. Т.е. выбор из дерева значительно удобнее выбора из списка — дерево лучше организовано. Но это практически единственное преимущество такой структуры. В остальном с ней работать сложнее.

                            Для выбора категорий и счетов есть одна очень проста рекомендация. Создавайте категорию (счет) только если хотите затем контролировать сумму по этой категории (остаток на счету), сравнивать этот показатель с другими. Иначе вы просто усложните себе жизнь. Кстати, для более детального анализа можете использовать «теги» в текстах комментария, по ним (с использованием логических операторов AND, OR, NOT) можно фильтровать операции. Т.е. если у вас два авто, то пускай у вас будет одна категория расходов «Авто» а уже в комментариях пишите «шкода»/«гецик», «заправка»/«тэошечка»/«шиномонтаж», «ТНК»/«Лукойл» и т.д. Потом ри желании сможете очень точно выбрать нужные операции и проанализировать их.

                            Сложное управление категориями продиктовано вот чем. Удаление категорий (или счетов) само по себе не имеет смысла. Операции по вашим категориям и счетам уже есть в системе, на их основе считаются в том числе «сегодняшние» остатки. Удаление счета логично должно было бы привести к их изменению, что неправильно. Поэтому удаления счетов как такового нет — есть их переименование (удаление последнего счета — фактически переименование его в пустое название). Операции этого счета никуда не деваются и вы не «теряете» остатки. Это такая себе… защита от нелогичного поведения пользователя.
                            А вот что касается невозможности изменить порядок счетов — здесь немного другое дело. При использовании СМС-сервиса вы можете указывать id счетов и категорий (для простоты запоминания — порядковый номер в списке) в тексте сообщения. Любое изменение порядка приведет к изменению номеров которое сложно будет запомнить заново.

                            Еще раз обращаю ваше внимание на то, что мы из одного и того же пытаемся вытянуть максимум смысла вместо того чтобы плодить кучу сущностей. Именно это и упрощает понимание системы. id счета или категории это просто его порядковый номер в списке. Категории расходов еще и активно участвуют в планировании бюджета. Финансовая цель — это НЕ что-то новое, а просто сумма остатка в условленные день на заданном счету и т.д.
                          –1
                          Сколько можно уже создавать сервисы учёта финансов? Лучше купонами займитесь
                            0
                            Сервис существует с 2008 года.
                              0
                              Тогда ладно, погорячился
                            0
                            Проект хороший, пользуем с женой.
                            Когда будет автокомплит при вводе расходов/доходов?

                            +нашел только-что баг:
                            Если закончились деньги, то в присоеденненном аккаунте нельзя сделать ничего, даже переключиться в свой (бесплатный) аккаунт.
                              0
                              Вопрос с автокомплитом обсуждался на форуме. Там пока без изменений.
                              По багу — отпишитесь сейчас на info@home.finance.ua, нужно задать некоторые уточняющие вопросы вне хабра.
                            0
                            Хорошо было бы сделать на сайте в «стоимость услуги», различные валюты, ну или хотя бы в долларах а не в гривнах. А то людям из России или других стран не очень понятна стоимость без конвертера валют. Система заинтересовала, пожалуй попробую её. Кстати, партнерская программа не помешала бы :)
                              0
                              Спасибо, учтем.
                              0
                              Реализованный в программе учет ведется только по деньгам. Т.е. возможно учитывать только денежные потоки.
                              Как быть с кредитами, долгами, с задержками выплат? Как быть с учетом имущества?
                              Собираетесь ли вы развивать сервис до полноценного учета и анализа финансового состояния?
                                0
                                Учет имущества штука неоднозначная. Мы думали над тем как это может быть, но там слишком много частных случаев чтобы сделать простой для понимания инструмент.

                                Отдельного учета кредитов и долгов нет. Но есть несколько понятных схем для их учета. Дело в том что сам по себе долг или кредит — это пользование чужими деньгами. В разных случаях (это зависит от времени на которое взяты деньги в долг, сумма долга и т.д.) их удобно видеть либо внутри бюджета, либо вне бюджета. Простой пример — когда вы даете в долг деньги небольшую сумму и уверены в своевременном возврате долга вам удобнее, чтобы эти деньги фигурировали в бюджете, чтобы вы могли исходя из них планировать бюджет (например дали в долг в мае, возврат в июне а в августе на эти деньги запланирован отпуск). В этом случае схема учета одна. А если вы дали деньги да длительное врем — лучше эти деньги вообще вывести из бюджета и «жить» без них, а при возврате долга как бы заново их обрести — это делается другой схемой. Поэтому мы не стали усложнять систему разными видами долгов а просто даем рекомендации как на основании расходов, доходов и переводов по счетам организовать любой частный случай. Более подробно о схемах учета долгов написано здесь
                                  0
                                  Про долги все логично и понятно.

                                  А вот для кредита было бы здорово сделать отдельный механизм, чтобы учитывать выплаты % и тела кредита, учитывать досрочные погашения и изменения процентной ставки.

                                  Выбираю себе сервис учета домашних финансов – и не могу найти ни одного, где это было бы реализовано.

                                  Все это можно сделать сейчас вручную, но это очень неудобно, особенно, если кредитов несколько и вы гасите их досрочно.
                                    0
                                    Мат. модель кредита-депозита может быть достаточно сложной. На каждое действие клиента у банка может быть запасена комиссия (в зависимости от даты, суммы действия, суммы остатка, валюты и т.п.). Поэтому реализация некоего мастера, который все это будет давать смоделировать — задача невероятно сложная. Более того, вы вполне можете не знать о некоторых подобных нюансах, не заложите их в модель. И затем будете с удивлением наблюдать, как расчетные показатели будут отличаться от показателей в банковских выписках.

                                    С другой стороны, мы сейчас выпустили открытое API. Подобный функционал вполне может быть реализован в виде плагина для браузера или отдельного js-скрипта, который график выплат со всеми коэффициентами, переведет в список запланированных операций и зальет их в базу ДФ. А при необходимости (досрочном погашении) найдет оставшиеся операции и пересохранит их с новыми суммами. Если вы программист — можете попробовать. Мы разместим ссылку на ваше решение на сайте системы.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое