Web-портал управления домашней бухгалтерией
СУБД MySQLэто система управления реляционными базами данных. В реляционной базе данных данные хранятся не все скопом, а в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно… Читать ещё >
Web-портал управления домашней бухгалтерией (реферат, курсовая, диплом, контрольная)
- Введение
- 1. Постановка задачи
- 2. Обзор предметной области
- 2.1 Описание основных понятий
- 2.2 Поиск и сравнение аналогов
- 2.2.1 Family 2009 Pro
- 2.2.2 Домашняя бухгалтерия Lite 4,4.5.0.2
- 2.2.3 MoneyTracker
- 2.2.4 «Дребеденьги»
- 3. Анализ требований
- 3.1 Варианты использования (Use-cases диаграмма)
- 3.2 Интерфейсы пользователя
- 4. Обзор используемых технологий
- 4.1 ЯзыкPHP
- 4.2 Технология Yii Framework
- 4.2.1 Model-View-Controller
- 4.2.2 jQuery
- 4.3 MySQL
- 4.4 JUDE — инструмент UML проектирования (UML Tool)
- 4.5 PhpMyAdmin
- 4.6 Wiki
- 5. Архитектура разрабатываемогоWeb-сайта
- 5.1 Общая архитектура ПС
- 5.2 Модель данных
- 5.3 Описание таблиц, входящих в базу данных
- 5.4 Описание связей между таблицами
- 5.5 Нормализация
- 6. Описание возможностей Web-приложения
- 6.1 Описание страниц
- Заключение
- Библиография
- Приложения
- Введение
- С бурным развитием информационных технологий и сетей интернет происходит насыщение сети контентом различного содержания, качества и важности. Каждый пользователь старается разместить информацию, которая важна для него и удовлетворяет его потребности.
- Приложения доступны для широкой массы людей, но чтобы найти, что-то стоящее порой приходится потратить много времени и трафика. Приложения desktop удобны с точки зрения пользователя тем, что хранятся на одном носителе, доступном ряду пользователей. Но тут возникает проблема мобильности, управления удаленным доступом, и зависимости от характеристик пользовательского компьютера. Прежде чем использовать программу необходимо произвести установку и сопутствующие ей действия. Интернет приложения в отличие от desktop не нуждаются в этих действиях и требуют только наличие интернет соединения.
- Благодаря широкому распространению сети Интернет организации получают возможность посредством Web-сайта оказывать своевременную информационную поддержку, осуществлять различную деятельность в той или иной области, экономя при этом время и обеспечивая себе большее количество клиентов и прибыли.
- Некоторые Web-сайты предлагают доступ к огромному количеству разнообразных ресурсов. Обычно такие Web-сайты называют Web-порталами.
- Создание портала решает проблему соединения с несколькими пользователями, что позволяет экономить ресурсы пользователя, решает проблему мобильности и лишает пользователя проблем сопровождения ПО. Бухгалтерия рассматривается как упорядоченная система сбора, регистрации и обобщения информации в денежном выражении, о состоянии имущества, и его изменениях путём учёта всех хозяйственных операций. Размещение портала в интернете поможет пользователям осуществлять операции над своей бухгалтерией и просматривать статистику в любом месте, где присутствует интернет соединение. Когда возникла необходимость написания портала, были рассмотрены современнейшие средства разработки интернет приложений. Была произведена работа по сбору информации об автоматизированных средствах разработки — PHP программной библиотеке Yii.
- Итак, целью работы является разработка web-портала Домашней Бухгалтерии.
- домашняя бухгалтерия сайт база
- 1. Постановка задачи
- Постановка задачи это фундаментальная часть в жизненном цикле программного продукта. Один из первых этапов, который должен быть проработан настолько тщательно, насколько это, возможно, иначе придется возвращаться к этому этапу снова и снова, что нежелательно из-за ограниченности временного ресурса.
- В результате были поставлены следующие задачи, такие как:
1. Анализ методов и задач учета домашней бухгалтерии;
2. Анализ существующих аналогичных программных продуктов;
3. Формирование требований к будущей системе и выбор платформы разработки;
4. Проектирование общей архитектуры приложения;
5. Проектирование структуры портала;
6. Проектирование пользовательской части системы;
7. Реализация спроектированных подсистем;
8. Проведение тестирования системы на примере реальных задач.
Все эти задачи мы рассмотрим в следующих главах, и в плане выполнение всех задач целиком и полностью.
В процессе анализа мы выявим детали и разберем подробнее, что требуется, в плане возможностей, от портала. Проводить исследование мы будем посредством сравнения, уточнения и обобщения, а так же прибегнем к поиску наилучшего для нас решения.
В процессе проектирования мы создадим архитектуру, систему взаимодействия между пользователем и порталом, таблиц базы данных. Здесь придется применить иллюстрированные пояснения — такие как диаграммы, таблицы, графики и рисунки.
Тестирование будет проводиться с помощью заполнения таблиц из приложения, то есть создание новых пользователей, новых расходов и доходов, новых категорий и сравнение результатов статистики подсчитанной вручную и тех значений, которые выдает график и диаграмма.
В итоге мы должны получить полностью функционирующий сайт в виде портала, которым смогут пользоваться одновременно несколько пользователей, и сможет составить конкуренцию своим аналогам.
2. Обзор предметной области Для постановки осмысленной задачи необходимо изучить предметные области, в которых мы будем работать, а значит необходимо разобраться, что такое бухгалтерия, система бухгалтерского учета.
Бухгалтерия — упорядоченная система сбора, регистрации и обобщения информации в денежном выражении о состоянии имущества, обязательств организации и их изменениях (движении денежных средств) путём сплошного, непрерывного и документального учёта всех хозяйственных операций. Объектами бухгалтерского учёта являются имущество организаций, их обязательства и хозяйственные операции, осуществляемые организациями в процессе их деятельности[1].
Основной задачей бухгалтерского учёта является формирование полной и достоверной информации (бухгалтерской отчётности) о деятельности организации, и её имущественном положении. В нашем случае это личный (семейный) бюджет.
Так что же мы хотим получить в итоге нашей работы? Главной целью нашего проекта является проектировка Системы ведения домашней бухгалтерии в виде web-приложения.
Бухгалтерская система (система автоматизации бухгалтерского учёта, САБУ) — предназначенная для ведения учета: бухгалтерского, фискального, то есть направленного на удовлетворения требования государства по расчёту и уплате налогов.
По масштабности и сложности учёта САБУ можно разделить на несколько условных классов: персональные, для малых и средних предприятий, для крупных предприятий и для банков. В первое десятилетие XXI века, в России, в силу усложнения структуры финансовых взаимоотношений личности и личных финансовых операций (из-за появления института кредитования, дифференциации доходов по слоям населения и во времени, увеличении статей расходов, появлении возможности частных инвестиций и пр.), набирает популярность управление личными финансами. Чаще всего для этих целей используют персональные системы бухгалтерского учёта.
Чтобы правильно планировать расходы и рационально распорядится финансами, нужно знать основные и вторичные статьи расходов. Как правило, потребители домашней бухгалтерии далеки от теории ведения бухучета, следовательно, методика ведения домашней бухгалтерии должна быть понятна и доступна для людей, которые не знакомы с теорией и практикой бухучета. Эта идея является главенствующей в данном проекте.
2.1 Описание основных понятий
В процессе решения поставленной задачи будут использоваться различные термины и определения, которые представлены в Приложении А.
Определившись с используемой терминологией, перейдем к краткому описанию назначения Web-приложения. Web-приложение должно предоставлять доступ только зарегистрированным пользователям. Для выполнения данного условия необходимо определить критерии задачи.
В процессе просмотра Web-сайта через браузер, Web-приложение, размещенное на Web-сервере, будет работать с «исходными данными» и выдавать пользователю только «конечные данные». В процессе получения «конечных данных» могут также возникнуть «исключительные ситуации». Дадим более подробное описание.
· Исходные данные:
o сведения о поступлении и расходе денежных средств, местах хранения
· Конечные данные:
o статистика и баланс;
· Исключительные ситуации:
o потеря соединения с сетью интернет;
o окончание сессии на сервере, выделенное после авторизации пользователя;
o потеря соединения с базой данных.
Сайт будет содержать функцию планирования. Должен выводиться структурированный отчет в виде графика или радиальной диаграммы, в качестве сравнения так же запланированный бюджет должен быть отображен. Необходимо создать базу данных для хранения пользовательских данных, защитить ее при помощи пользовательского пароля.
Изучая программы ведения домашней бухгалтерии, наткнулся на то, что нет подходящей программы. По ходу анализа, приведенном в 2.1, становится понятно, что аналоги имеют ряд минусов и плюсов. Например, в одном не хватает эргономичности дизайна, в другом — функциональность отстает от аналогов, недостаточно функций, не там расположены кнопки. Неудобство, и во многих программах назойливые напоминания о том, что требуется заплатить — либо за полную версию, либо, чтобы пользоваться неограниченное время. Мобильность — вот то, что диктует нам сейчас время. С мощным развитием интернета становится актуальным написание всех приложений в качестве интернет сайтов.
2.2 Поиск и сравнение аналогов
Для формирования представления необходимы подобные образцы программных продуктов. Более детально рассмотрим их в этой главе и в конце описания аналогов создадим сводную таблицу.
2.2.1 Family 2009 Pro
Первое программное средство, представленное для сравнения это Family 2009[17]. Дизайн данной программы представлен на рисунке 2.1.
Данное ПО устанавливается на компьютере, бесплатная версия (без регистрации) работает только 30 дней, при каждом запуске надоедливо напоминает, сколько дней осталось до конца использования и предлагает купить ее. При подключении к интернету подгружаются свежие новости с сервера. Регистрационный процесс легок и не заставляет долго думать над вводимым содержимым.
Первый раз, взглянув на программу, можно сказать в основном только о ее интерфейсе и совсем чуть-чуть о функциональности. Красивый дизайн, простота интерфейса вот какой вывод мы можем сделать с первого просмотра. Далее начинаем разбираться в функциональности, что оказывается не совсем долгим занятием, при этом рассматривая набор доступных функций. Можно отметить такие как экспорт / импорт БД, обновление курса валют возможно через подключение к интернету, функция контрагенты — возможен только просмотр дерева расходов. В программе присутствует свой калькулятор, который можно вызвать практически на каждой вкладке. В деревьях расходов/доходов только добавить/удалить — а переименовать не присутствует — видимо, проще удалить, чем переименовать; в программе есть выбор пользователя.
В процессе ознакомления с данным ПО, была обнаружена ошибка, которая вылезла при перемещении статьи расходов в доходы. Календарь с добавлением напоминания, имеется функция распечатки статистики и отчетов, отчеты подробные удобные. Бюджеты и отчеты можно детально просмотреть по месяцу, году, по категориям; интересная функция прогноз. В итоге можно сделать вывод, что программа является достойным представителем своего класса. Размер 9,6 МБ. Так же ведется разработка Family 2010, что не может не радовать людей, выбравших данную программу.
2.2.2 Домашняя бухгалтерия Lite 4,4.5.0.2
Вторым рассмотренным программным средством будет программа, под названием «Домашняя бухгалтерия» [19], а именно ее бесплатная версия Lite. (смотреть рисунок 2.2)
Рисунок 2.2 — Оболочка «Домашняя бухгалтерия», Lite версия | |
«Домашняя бухгалтерия Lite» предназначена для ведения учета финансов. С ее помощью пользователь может вести учет не только личных финансов, но и финансов всей своей семьи или использовать ее для ведения учета расходов и доходов.
Эта программа так же, как и Family 2009 имеет только desktop версию. Особенность данной программы — бесплатность Lite (облегченной, с меньшим набором функций) версии. Так как бесплатно только Lite версия, она и была взята для проведения анализов. При установке возникла трудность — без online регистрации работать данная домашняя бухгалтерия не захотела, потребовав ввести код, присланный на зарегистрированный мною ящик. При первом запуске сразу практически стало ясно, как работать сданным ПО, это осуществилось за счет малого количества цифр, полей и слов на главном окне. Дизайн очень простой, не заостряет на себе внимание, с одной стороны это и правильно — главное функциональность. Обнаружилось что курсы валют необходимо вводить самому, категории не удобно расположены — разделение на подкатегории располагается уже в отдельном окне. Полезная функция — сжатие БД, экономит место на вашем жестком диске. Кроме столбца рубли присутствует еще и столбец доллары, что на самом деле является необязательным, скорее ненужным; отсутствие календаря. Практически самое главное в программах ведения домашних финансов это отчетность, и данная программа показала скудность в данном пункте. В результате можно сказать, что данная программа не имеет ничего лишнего, даже имеет недостаток. Размер 2.1 Мб; Обновление версий происходит примерно раз в месяц. Но не для Lite версии.
2.2.3 MoneyTracker
Следующая программа, приведенная как аналог, это MoneyTracker. Рисунок 2.3 иллюстрирует внешний вид данной программы. Функциональные особенности рассмотрим ниже.
Рисунок 2.3 — Оболочка MoneyTracker | |
Производитель утверждает, что основная идея программы «MoneyTracker — Домашняя бухгалтерия» — максимальная функциональность при внешней простоте. Никаких лишних элементов управления, десятка разнородных таблиц и кнопок одновременно в одном окне программы. Интерфейс аккуратен и удобен, не смотря на то, что программа обладает многими уникальными и удобными функциями. И это действительно похоже на правду.
В «MoneyTracker — Домашняя бухгалтерия» Вы можете легко перейти в тот раздел, который Вам нужен, используя главное меню или кнопки быстрого доступа. Вы можете работать только с одним списком расходов, а можете дополнительно открыть календарь, справочник счетов и пару отчетов для сравнения — но это будет только Ваш выбор, а не прихоть разработчиков.
Программа предлагает купить ее, или попробовать поработать около месяца бесплатно. В отличие от Family 2009 программа не такая навязчивая. При первом запуске немного непонятно, с чего начать — слишком много на форме управляющих элементов, что не позволяет быстро сориентироваться. Информационное окно программы открывается при запуске и отображает множество полезных данных: доходы, расходы и сбережения в этом месяце, курсы валют на сегодня, показатели выполнения семейного бюджета, остатки на счетах, самые дорогие покупки и суммарные траты на выбранные категории расходов, напоминания о предстоящих доходах, расходах и событиях и многое другое.
Справочник статей доходов/расходов обычно является наиболее объемным и важным в программе. Присутствие поля комиссия там, где это необходимо. На все операции есть горячие клавиши, позволяющие вводить расходы за считанные секунды. Внесение расхода — большая часть полей заполняется программой автоматически. В календаре есть система фильтрации напоминаний, возможность создания, редактирования, удаления напоминаний и событий. Планируемые расходы незаменимы при оплате кредитов или ежемесячных коммунальных счетов. Отчеты «Динамика остатков на счете», «Динамика доходов и расходов». Имеется планирование, печать отчетов, экспорт в Excel, Резервное копирование. Размер: 6.7 МБ Обновление версий не прослеживается. В итоге можно сказать, что это довольно мощный инструмент, но видимо разработчики забыли, что программа должна иметь помимо большого функционала еще и дружественный интерфейс.
2.2.4 «Дребеденьги»
Завершает наш анализ программ аналогов web-портал «Дребеденьги». Единственная программа, представленная в виде web-приложения, изображена на риснке 2.4.
Домашнюю бухгалтерию «Дребеденьги» удобно вести как в оффлайн программе, так и онлайн, всей семьёй, когда под рукой интернет или даже телефон.
Устанавливать программу «Дребеденьги» не понадобилось, что дает уже на раннем этапе анализа свои плюсы. При регистрации были презентованы: бесплатный тестовый и несколько платных видов акаунтов. Был выбран бесплатный аккаунт для анализа возможностей. При авторизации нас приветствует современный интерфейс. Удобная программа в плане разграничения денег в кошельке и денег в других местах — причем в кошельке может быть и долг — может быть это как-то и объяснимо, но на первый взгляд не логично. Многопользовательность и независимость пользователей друг от друга, защита паролем. Разобраться сразу не удалось — пришлось потратить немного времени. В плане дизайна данная программа имеет запутывающий пользователя интерфейс, на многих вкладках слишком много полей и букв. Одно из удобств это то, что необязательно регистрироваться чтобы просто посмотреть на работу программы — есть специальная тестовая база, где пользователю доступны все сервисы, присутствует так же мобильная версия и очень радует то что валюты обновляются автоматически. Более значимые категории расходов выделяются буквами большего размера, что очень упрощает визуальный просмотр главных статей расходов.
Имеется планирование и статистика, в виде круговой диаграммы, которая выполнена без выделения цветом, и графика. Так же присутствует сохранение в Excel (не доступно в бесплатной версии), и еще несколько актуальных функций. Все денежные суммы, возможно, конвертировать в другую валюту. Есть напоминания. Имеется даже форум что показывает развитость программного средства. Не занимает место на диске. Не имеет минимальные системные требования. Есть поиск по всему содержимому. Так же есть органайзер. Реклама и баннеры являются небольшим недостатком. Обновление версий происходило, ведутся постоянные доработки портала. В итоге этот аналог является, на мой взгляд, самым лучшим и удобным по функционалу, интерфейс приятен и нейтрален. В итоге можно все критерии свести в таблицу и посмотреть, какие пункты стоит выбрать. В итоге анализа аналогов была сформирована таблица 2.1.
Таблица 2.1 — Сравнение аналогов
Критерий | Family2009 | MoneyTracker | Д.б.Lite4 | «Дребеденьги» | |
Необходимость в интернет соединении | ; | ; | |||
Обновление курса валют | ; | ; | |||
Современность дизайна | ; | ; | |||
Наличие справочного материала | ; | форум | |||
Удобство эксплуатации | ; | ||||
Удобство обучения | |||||
Полнота отчетов | ; | ; | |||
Защищенность данных | ; | ; | |||
Несколько членов семьи | ; | ; | |||
Стоимость, руб. | ~500 | 0 -Lite, 400 — Full | от 100до500* | ||
Наличие тестового аккаунта | ; | ||||
Богатые интерактивные возможности | ; | ||||
Поддерживаемые ОС ** | Win | Win | Win | большинство | |
Необходимость в обновлении | ; | ||||
Расширяемость | ; | ||||
Размер, Мб | 6.2 | 2.1 | ; | ||
* - в зависимости от комплектации[18]
**- winвсе Windows имеющие браузеры, большинство — все ОС имеющие браузеры
В результате можно выявить один из главных критерий будущего проекта это стоимость — в нашем случае программа будет предоставлять пользователю возможность зарегистрироваться бесплатно. Программа будет поддерживать только русский вариант интерфейса, но так как наша система будет обладать свойством расширяемости в дальнейшем мы можем сделать доступными и другие языки.
В обязательном порядке должен быть тестовый аккаунт, в котором пользователь сможет изменять данные точно так же как и в самой программе. Это будет безусловным плюсом. Так же преимущество интернет приложения в кросс-платформенности и в отсутствие необходимости обновления программы.
3. Анализ требований
В результате анализа являющимся методом индукции и синтезом представляемым как дедукция, мы в результате обработки аналогов рассматриваемого программного обеспечения обозначим ряд требований, который позволил нам определить достаточный набор необходимых функций, мы пришли к логическому выводу, что нам будет достаточно применить в данной работе, затрагивающей раздел домашних бухгалтерий, некоторый набор функций, обеспечивающий нужную функциональность проекта:
1. Возможности авторизированного входа:
· Предусмотреть соответствующий GUI (графический интерфейс); Спроектировать удобную форму для регистрации/авторизации пользователя. Регистрация не должна быть трудной, иначе пользователь может отказаться от данного программного продукта.
· Хранение информации в БД; Занесение всех изменений и манипуляций в базу. Самый распространенный, простой и надежный способ хранить данные и обрабатывать их.
· Возможности регистрации. Возможность создания нового аккаунта. Иначе создание нового пользователя становиться довольно трудной задачей.
2. Заведение собственных счетов. Например, наличные, счет в банке, счет на Яндекс деньгах и т. д. Указание счетов делает удобным просмотр источников расхода и дохода.
3. Задание статей расходов. Упорядочивание по группам затрат. Одна из основных операций, по результатам которой будет стоиться статистика, графики.
4. Задание статей приходов. Упорядочивание по группам доходов. Не менее важная операция, чем задание статей расходов.
5. Задание статей приходов. Указание количества потраченных средств, и времени. Так же указание валюты, в которых проведена данная операция.
6. Перевод денег между счетами. Манипуляции со счетами. При переносе денег из одного хранилища в другое или при ошибочном введении суммы необходимо изменять баланс на счету.
7. Расчет кредита и автоматизированного списания денег по таймеру. Инструменты планирования и подсчета процентов. Автоматизм упрощает пользование и уменьшает время ввода информации. Прогнозирование позволяет спланировать, например, покупки будущего месяца.
8. Разработка таймера для обеспечения расхода/прихода по расписанию.
Рассмотрено выше.
9. Возможность Экспорта/Импорта информации. Возможность хранения БД на машинном носителе и возможность распечатки. Очень большим плюсом будет данная возможность.
10. Генерация отчетов:
· Графики. Несколько видов графиков для удобства просмотра.
· Радиальная диаграмма; Просмотр расходов/доходов в долях круга.
· Баланс. Сведение дебита с кредитом.
11. Для обеспечения защищенности акаунтов пользователей необходимо обеспечить механизмы шифрования. Встроенные hashфункции позволяют очень хорошо защитить данные от взлома.
12. Написание документации по работе с порталом. По сути, руководство пользователя, упрощающее изучение ПО. При возникновении вопросов пользователь может обратиться к документации.
13. Расширяемость ПС. Возможность переработки, доработки, дополнения функциональности и дизайна. Создание новых тем.
В соответствии с изложенным выше, Web-сайт разбит на десятьWeb-страниц, каждая из которых несет свою информацию и предназначена для выполнения определенных операций. Это так же позволяет избежать отображения излишней информации на странице и делает страницу максимально удобной и простой в использовании.
Для оформления Web-сайта в едином стиле, создана специальная таблица стилей, которая используется на каждой Web-странице. В таблице стилей описаны свойства для различных групп Web-элементов. Это в свою очередь позволяет определять и менять параметры целой группыWeb-элементов сразу на всех страницах.
Для облегчения пользователям работы с Web-сайтом все кнопки и поля для ввода значений имеют подсказки, которые отображаются при наведении курсора мыши на соответствующий Web-элемент.
· При успешной авторизации пользователь будет переведен на следующую Web-страницу Web-сайта.
· Если авторизация не прошла (были введены неверные логин или пароль), пользователю будет выдано предупреждение: «Вы ввели неправильный логин или пароль». После этого поля ввода будут очищены, а пользователь сможет пройти авторизацию повторно.
· Если одно из полей не было заполнено, то пользователь так же получит предупреждение: «Введите логин и пароль» и сможет пройти авторизацию повторно.
Для того чтобы пройти авторизацию, пользователь должен ввести свой логин и пароль в соответствующие поля и нажать кнопку «Вход», после чего будет задействован процесс авторизации, описанный выше.
Если пользователь передумал проходить авторизацию, он всегда может вернуться к начальной странице, нажав кнопку «Назад».
3.1 Варианты использования (Use-cases диаграмма)
Для того, чтобы более точно понять как должна работать система, все чаще используется описание функциональности системы через варианты использования (Use-Case). Варианты использования — это описание последовательности действий, которые может осуществлять система в ответ на внешние воздействия пользователей или других программных систем.
Рисунок 3.1 -UML диаграмма
Просмотр тестовой базы: Может делать любой неавторизированный пользователь. Необходимо для ознакомления с работой программы, просмотр дизайна. Для этого достаточно зайти на сайт портала. Возможности просмотр базы, тестирование возможностей, изменения не сохраняются. Регистрация: Ее проходит неавторизированный пользователь. Это нужно для создания новых учетных записей. Для этого необходимо, чтобы был произведено правильное заполнение всех полей, нажатие кнопки Enter, если пользователь с таким именем уже существует — выдается сообщение, что данная учетная запись существует. Предлогается ввести новое имя пользователя. Данный процесс предшествует Авторизации.
Авторизация: Может проходить только пользователь имеющий учетную запись — в противном случае будет выводится сообщение, что такой пользователь не существует. Для входа на личную страницу и загрузки данных нужна данная процедура. Из этой локации можно попасть в Регистрацию, либо при удачной Аворизации на страницу пользователя. От пользователя требуется ввод правильных login и password и нажатие Enter.
Просмотр справочного материала: Могут просматривать любые пользователи. Необходимо для ознакомления с документацией, для получения информации о портале. Пользователь может только просматривать
Генерация отчетов: Только Авторизированому пользователю доступна данная функция. Необходима для просмотра статистики, динамики изменений. Нужна Авторизация, чтобы была доступна эта функция была. Отчет можно просматривать, сохранять на носитель, распечатывать.
Задание расходов: Может осуществлять только авторизированный пользователь. Задание расходов нужно для внесения изменений о расходах в базу. Для задания расходов необходима предварительная Авторизация. Пользователь может осущетвлять ввод суммы, даты, категории названия, валюты и примечания.
Импорт и экспорт информации: Авторизированный пользователь способен осуществлять пересылку БД. Обработка информации нужна для облегчения работы с БД. Для пользования данной функцией необходима предварительная Авторизация. Пользователь можно осуществлять такие действия как Указание файла, места нахождения файла.
Манипуляции с категориями: Только авторизированный пользователь имеет право на пользование данной функцией Нужно для Изменения статей и категорий расходов. Для раьоты с категориями необходима предварительная Авторизация Переименование, создание, удаление, перемещение категорий.
Работа со счетами: Авторизированный пользователь имеет возможность пользоватся данной функцией. Для задания расходов необходима предварительная Авторизация Ввод номера, названия, примечания.
Задание доходов: Может осуществлять только авторизированный пользователь. Задание расходов нужно для внесения изменений о расходах в базу. Для задания доходов необходима предварительная Авторизация Пользователь может осущетвлять ввод суммы, даты, категории названия, валюты и примечания.
3.2 Интерфейсы пользователя
1. Форма авторизации, регистрации:
· Содержит поля для авторизированного входа (логин пароль), регистрационную форму.
· функционал состоит в авторизации существующих пользователей и создании новых.
2. Форма отчетов, графиков:
· Содержит график, диаграмму, подписи и информацию о текущем балансе.
· несет информацию о балансе, планируемой балансе, расходах, доходах, в радиальной диаграмме можно рассмотреть, на что уходит больше всего средств.
3. Форма ввода и редактирования расходов и доходов:
· В нее входят поля и информация о расходах/доходах прошлых, текущих и будущих.
· подлежит заполнению, из них строится основная статистика.
4. Форма календарь:
· Содержит календарь с «вложенными» в каждое число месяца статистику и напоминания
· изменения в расходы/доходы можно вносить и таким способом.
5. Форма редактирования категорий :
· Отдельная таблица для редактирования дерева расходов и доходов.
· можно создавать, перемещать, удалять, переименовывать статьи.
6. Форма об авторах:
· Содержит имя и обратную связь
· по ним вы можете связаться с автором, если возникнут вопросы.
4. Обзор используемых технологий В результате анализа требований была выбраны такие технологии реализации, как язык программирования Php5 [10], СУБД MySQL [9], CMF — программная библиотека Yii [14]построенная на архитектуре MVC[12], Jude[20], используемый в основном в качестве UML редактора, PhpMyAdmin — инструмент администрирования СУБДMySQL, WikiDoku[21] - портал используемый при написании документации.
4.1 Язык PHP
Рекурсивный акроним для «PHP: Hypertext Preprocessor», ранее расшифровывался как «Personal Home Page Tools» — это широко распространённый открытый язык сценариев общего назначения, который создан специально для Web и который можно внедрять в HTML. PHP отличается от других подобных языков, типа клиентского JavaScript, тем, что код выполняется на сервере. Если имеется скрипт, аналогичный вышеприведённому на сервере, то клиент получит результат работы этого скрипта, не имея возможности определить, каков был исходный код. Администратор сервера также может сконфигурировать web-сервер таким образом, чтобы он обрабатывал все ваши HTML — файлы с помощью PHP, и реально пользователь не будет иметь способа определить, какой код действительно запускается на сервере.
Наилучшим качеством PHP является то, что он предельно прост для новичка в программировании, но предлагает много продвинутых возможностей для программиста профессионального уровня.
4.2 Технология Yii Framework
Yii — это высокоэффективная, основанная на компонентной структуре, программная библиотека, для разработки масштабных web-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс web-разработки. Название Yiiозначает простой (easy), эффективный (efficient) и расширяемый (extensible).
Yii легко изучать и использовать, но для этого необходимы неплохие знания PHP и объектно-ориентированного программирования (ООП), т.к. Yii — это строго объектно-ориентированный фреймворк. Для использования Yii понадобился web-сервер с поддержкой PHP 5.1
FRAMEWORK Yii — это программная библиотека для web-программирования общего назначения, который может быть использован для разработки практически любых web-приложений. Благодаря своей легковесности и наличию продвинутых средств кэширования, Yii особенно подходит для разработки приложений с большим потоком трафика, таких как порталы, форумы, системы управления контентом (CMS), системы электронной коммерции и др. Особенности:
§ Схема разработки — MVC (Модель-Представление-Контроллер). ООП концепция, рассмотрена ниже.
§ Интегрированный jQuery. Рассмотрен ниже.
§ Database Access Objects (DAO) и ActiveRecord. ORM библиотеки для работы с базами данных. Будет рассмотрено далее.
§ Формы ввода и проверки. Встроенная валидация значений, полностью настраиваемая и легкая в обращении.
§ Встроенные Web2.0 виджеты. Календари текстовые поля с авто-заполнением, раскрывающиеся списки, деревья и многое другое. Так же есть возможность скачивания с официального сайта других, необходимых для проекта виджетов.
§ Тематизация. Возможность добавления своих тем оформления и языков.
§ Кэширование. Сохранение на компьютере пользователя части информации, необходимое для дальнейших сессий.
§ Обработчик ошибок. Профилирование базы данных, просмотр всех запросов и создание своих обработчиков являются очень удобными для пользования.
§ Соблюдение стандартов XHTML. (Extensible Hypertext Markup Language — Расширяемый язык разметки гипертекста) — язык разметки web-страниц, по возможностям сопоставимый с HTML, созданный на базе XML.
§ Автоматическая генерация кода. Встроенные инструменты Gii, Yiic. Yiic-консольный вариант, появившийся ранее, чем Gii. В последнем встроены генераторы форм, моделей, модулей, приложений.
§ Подробная документация. Несколько сайтов с русской неофициальной версией документации.
§ Расширяемость. Отлично совмещается со сторонними библиотеками, например Zend. На официальном сайте представлены сотни расширений написанных пользователями Yii.
Подобно большинству других PHP-библиотек, Yii — это MVCпрограммная библиотека.
Превосходство Yii над другими программными библиотеками заключается в эффективности, широких возможностях и качественной документации. Yii изначально спроектирован очень тщательно для соответствия всем требованиям при разработке серьезных web-приложений. Yii не является ни побочным продуктом какого-либо проекта, ни сборкой сторонних решений.
Он является результатом большого опыта авторов в разработке web-приложений, а также исследований наиболее популярных web-Фреймворков и приложений. Yii выпускается по лицензии BSD. Это означает, что вы можете использовать его бесплатно.
4.2.1 Model-View-Controller
MVC, «Модель-представление-поведение», «Модель-представление-контроллер" — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты. Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контроллера), изменяя свое состояние. Представление (View). Отвечает за отображение информации (пользовательский интерфейс). Поведение (Controller). Интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.
4.2.2 jQuery
JQuery — это библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Данная библиотека помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобныйAPI по работе с Ajax.
Возможности:
· Переход по дереву DOM, включая поддержку XPath как плагина;
· события; при нажатии клавиш мыши и клавиатуры, при наведении, таймер, при заполнении и т. д.
· визуальные эффекты, то, что диктует нам современность
· ajax-дополнения, асинхронная передача данных на сервер. Имеет ряд минусов, например, отсутствие статического адреса
· javaScript — плагины.
Точно так же, как CSS отделяет визуализацию от структуры HTML, JQuery отделяет поведение от структуры HTML. Например, вместо прямого указания на обработчик события нажатия кнопки, управление передаётся JQuery, идентифицирующей кнопки и затем преобразовывающий его в обработчик события клика. Такое разделение поведения и структуры также называется принципом ненавязчивого JavaScript.
Библиотека jQuery содержит функционал, полезный для максимально широкого круга задач. Тем не менее, разработчиками библиотеки не ставилась задача совмещения в jQuery функций, которые подошли бы всюду, поскольку это привело бы к большому коду, большая часть которого не востребована. Поэтому была реализована архитектура компактного универсального ядра библиотеки и плагинов. Это позволяет собрать для ресурса именно тот JavaScript-функционал, который на нём был бы востребован. Важно отметить, что как представление, так и поведение зависят от модели.
Однако модель не зависит ни от представления, ни от поведения. Это одно из ключевых достоинств подобного разделения. Оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели.
4.3 MySQL
СУБД MySQLэто система управления реляционными базами данных. В реляционной базе данных данные хранятся не все скопом, а в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных. Программное обеспечение MySQL — это ПО с открытым кодом. ПО с открытым кодом означает, что применять и модифицировать его может любой желающий. Такое ПО можно получать по Internet и использовать бесплатно. При этом каждый пользователь может изучить исходный код и изменить его в соответствии со своими потребностями. Использование программного обеспечения MySQL регламентируется лицензией GPL (GNU General Public License), в которой указано, что можно и чего нельзя делать с этим программным обеспечением в различных ситуациях. Если работа в рамках GPL вас не устраивает или планируется встраивание MySQL-кода в коммерческое приложение, есть возможность купить коммерческую лицензированную версию у компании MySQL AB.
4.4 JUDE — инструмент UML проектирования (UML Tool)
Jude является аббревиатурой от Java Uml Developers Environment.
Диаграммы UML сравнительно просты для чтения после достаточно быстрого ознакомления с его синтаксисом. Данный инструмент является инструментом моделирования, Community версия свободна в использовании и предлагает следующую функциональность:
· Поддержка UML1.4 (часть UML 2.0 выражение в коммерческих Jude версиях / Professional).
· Диаграмма классов (Object, пакеты, подсистемы и прочие диаграммы).
· Usecase диаграмма. Рассмотрено выше.
· Sequence диаграмма. Диаграмма последовательности — диаграмма, на которой показаны взаимодействия объектов, упорядоченные по времени их проявления. Используется в языке UML.
· Composite structure диаграммы, которые показывают роли и взаимодействие классов в рамках кооперации. Кооперации удобны при моделировании шаблонов проектирования. Диаграммы композитной структуры могут использоваться совместно с диаграммами классов.
· Activity диаграмма. Диаграммы деятельности используются при моделировании бизнес-процессов, технологических процессов, последовательных и параллельных вычислений. Аналогом диаграмм деятельности являются схемы алгоритмов по ГОСТ 19.701−90.
· Deployment diagram — служит для моделирования работающих узлов и артефактов, развёрнутых на них. В UML 2 на узлах разворачиваются артефакты, в то время как в UML 1 на узлах разворачивались компоненты. Между артефактом и логическим элементом (компонентом), который он реализует, устанавливается зависимость манифестации. Диаграмма компонентов
· Генерация Java 1.4 исходного кода из модели. Так же Импорт Java 1.4 исходных файлов для создания модели.
4.5 PhpMyAdmin
Web-приложение с открытым кодом, написанное на языке PHP и представляющее собой web-интерфейс для администрирования СУБДMySQL, PhpMyAdmin, позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у web-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.
На сегодняшний день PhpMyAdmin широко применяется на практике. Последнее связано с тем, что разработчики интенсивно развивают свой продукт, учитывая все нововведения СУБД MySQL. Подавляющее большинство российских провайдеров используют это приложение в качестве панели управления для того, чтобы предоставить своим клиентам возможность администрирования выделенных им баз данных.
Приложение распространяется под лицензией GNU General Public License и поэтому многие другие разработчики интегрируют его в свои разработки, например XAMPP, Denwer, AppServ. В нашем проекте использовался вышеупомянутый XAMPP[11].
4.6 Wiki
Данная технология очень удобна для коллективной работы с документацией. Вики — (англ. wiki) web-сайт, структуру и содержимое которого пользователи могут сообща изменять с помощью инструментов, предоставляемых самим сайтом. В рамках использования технологии wiki был выбран Doku Wiki — простой, но достаточно мощный wiki-движок, который в отличие от многих других движков использует для хранения страниц текстовые документы. Созданная в DokuWiki страница может быть сохранена в формате *.odt для дальнейшего использования и печати. В данном случае удобство заключалось в том, что:
· Автоматически осуществляется контроль версий документа;
· для редактирования документа требуется только наличие браузера и доступа в Интернет;
· научный руководитель может в любое время получить актуальную версию документа, что упрощает оценку качества и планирование работ.
В текущем проекте использованиеWiki Doku необходимо из-за требования руководителя, для удобства просмотра проделанной работы. Действительно, данный портал удобен для общения руководства и разработчиков.
5. Архитектура разрабатываемого Web-сайта
5.1 Общая архитектура ПС
Yii использует шаблон проектирования Модель-Представление-Контроллер (Model-View-Controller), который широко применяется в web-программировании.
MVC направлен на отделение бизнес-логики от пользовательского интерфейса, чтобы разработчики могли легко изменять отдельные части приложения не затрагивая другие. В архитектуре MVC модель предоставляет данные и правила бизнес-логики, представление отвечает за пользовательский интерфейс (например, текст, поля ввода), а контроллер обеспечивает взаимодействие между моделью и представлением.
Помимо этого, Yii также использует фронт-контроллер, называемый приложением (application), который выступает в роли контекста выполнения запроса. Приложение производит обработку запроса пользователя и передает его для дальнейшей обработки соответствующему контроллеру.
Следующая диаграмма (Рисунок 3.1) отображает структуру приложения Yii:
Рисунок 5.1 — Структурная схема приложения
Следующая диаграмма, изображенная на русинке 3.2, описывает типичную последовательность процесса обработки пользовательского запроса приложением:
Рисунок 5.2 — Типичная последовательность процесса обработки пользовательского запроса[13].
Принцип работы по рисунку 3.2:
1. Пользователь осуществляет запрос посредством URL ссылки, а web-сервер обрабатывает его, запуская выполнение входного скрипта инициализации;
2. Скрипт инициализации создает экземпляр приложения и запускает его на выполнение;
3. Приложение получает подробную информацию о запросе пользователя от компонента запрашивающего приложения;
4. Приложение определяет запрошенные контроллер и действие при помощи компонента urlManager. В данном примере контроллером будет post, относящийся к классу PostController, а действием — show, суть которого определяется контроллером [15];
5. Приложение создает экземпляр запрашиваемого контроллера для дальнейшей обработки запроса пользователя. Контроллер определяет соответствие действия show методу actionShow в классе контроллера. Далее создаются и применяются фильтры (например, accesscontrol, benchmarking), связанные с данным действием, и, если фильтры позволяют, действие выполняется;
6. Действие считывает из базы данных модель Post с ID равным 1;
7. Действие формирует представление show с данными модели Post;
8. Представление получает и отображает атрибуты модели Post;
9. Представление выполняет некоторые виджеты;
10. Сформированное представление добавляется в макет страницы;
11. Действие завершает формирование представления и выводит результат пользователю.
Yii предоставляет разработчику мощный инструмент для работы с базами данных — объекты доступа к данным (DAO). Yii DAO — это надстройка над расширением PHP DataObjects (PDO), позволяющая работать с различными СУБД через единый интерфейс. Приложения, разработанные с использованием DAO, могут легко переключаться с одной СУБД на другую без необходимости исправления кода, отвечающего за доступ к данным. Yii ActiveRecord (AR) реализует переработанный подход объектно-реляционного проецирования (ORM) и еще более упрощает работу с базами данных. Представляя таблицу базы данных как класс, а строки таблицы как экземпляры класса, Yii AR избавляет от необходимости написания SQL-выражений, связанных с операциями CRUD (создание, чтение, обновление и удаление).
ActiveRecord (AR) — это шаблон проектирования, используемый для абстрагирования доступа к базе данных в объектно-ориентированной форме. Каждый объект AR является экземпляром класса CActiveRecord или производного от него, представляя отдельную запись в таблице базы данных. Поля строки представлены свойствами AR-объекта. Подробнее с AR-моделью можно ознакомиться в разделе ActiveRecord[13].
Объекты доступа к данным (DAO) предоставляют общий API для доступа к данным, хранящимся в различных СУБД. Это позволяет без проблем поменять используемую СУБД на любую другую без необходимости изменения кода, использующего DAO для доступа к данным.
Компонентная диаграмма указана на рисунке 3.3:
Рисунок 5.3 — Компонентная диаграмма
5.2 Модель данных
Одно действие, например, покупка (самое основное) будет иметь следующие поля:
§ кол-во
§ цена
§ валюта
§ дата покупки
§ периодичность покупки
§ откуда деньги (место хранения)
§ категория
§ примечание Исходя из этих данных, представляется следующая картина модели данных:
· История расходов. Туда входят название, дата, сумма, валюта, примечание, задание периодичности, категория.
· История доходов. Сюда входят название, дата, сумма, валюта, примечание, задание периодичности, категория
· Справочник категорий расходов. Здесь используются название, является ли подгруппой каких-нибудь расходов
· Справочник источников дохода. Тут рассматриваются название, является ли подгруппой одной из групп доходов
· Справочник мест хранения. Рассматривается название, сумма, валюта
· Справочник валют. Сюда включаются курсы валют.
· История обмена валют. Тут содержатся сумма, дата, курс.
5.3 Описание таблиц, входящих в базу данных
Организация структуры БД формируется исходя из следующих соображений:
· Адекватность описываемому объекту/системе — на уровне концептуальной и логической модели;
· удобство использования для ведения учёта и анализа данных — на уровне так называемой физической модели.
Виды концептуальных и логических моделей БД — сетевая модель, иерархическая модель, реляционная модель (ER-модель), многомерная модель, объектная модель.
На уровне физической модели электронная БД представляет собой файл или их набор в формате TXT, CSV, Excel, DBF, XML либо в специализированном формате конкретной СУБД. Также в СУБД в понятие физической модели включают специализированные виртуальные понятия, существующие в её рамках — таблица, табличное пространство, сегмент, куб, кластер и т. д.
В настоящее время наибольшее распространение получили реляционные базы данных. Реляционная база данных — база данных, основанная на реляционной модели. Для работы с реляционными БД применяют Реляционные СУБД. В реляционных базах данных все данные представлены в виде простых таблиц, разбитых на строки и столбцы, на пересечении которых расположены данные. Запросы к таким таблицам возвращают таблицы, которые сами могут становиться предметом дальнейших запросов. Каждая база данных может включать несколько таблиц. Кратко особенности реляционной базы данных можно сформулировать следующим образом:
· Данные хранятся в таблицах, состоящих из столбцов («атрибутов») и строк («записей»);
· на пересечении каждого столбца и строчки стоит в точности одно значение;
· у каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип;
· запросы к базе данных возвращают результат в виде таблиц, которые тоже могут выступать как объект запросов.
Строки в реляционной базе данных неупорядочены — упорядочивание производится в момент формирования ответа на запрос.
Общепринятым стандартом языка работы с реляционными базами данных является язык SQL.
У всех таблиц есть свой уникальный первичный ключ (отмечен желтым ключом на схеме). Первичный ключ — понятие теории реляционных баз данных, минимальное множество атрибутов, являющееся подмножеством заголовка данного отношения, составное значение которых уникально определяет кортеж отношения. На практике термин первичный ключ обозначает поле (столбец) или группу полей таблицы базы данных, значение, которого (или комбинация значений которых) используется в качестве уникального идентификатора записи (строки) этой таблицы.
В теории реляционных баз данных таблица представляет собой изначально неупорядоченный набор записей. Единственный способ идентифицировать определённую запись в этой таблице — это указать набор значений одного или нескольких полей, который был бы уникальным для этой записи. Отсюда и происходит понятие первичного ключа — набора полей (атрибутов, столбцов) таблицы, совокупность значений которых определена для любой записи (строки) этой таблицы и различна для любых двух записей.
Итак, описание таблиц входящих в базу данных «Домашней бухгалтерии» представлено в Таблицах 5.1−5.9:
Таблица 5.1 — Categories (Категории)
название | тип | описание | |
id_cat | int | уникальное поле не пустое содержит номер категории, является первичным ключом | |
name | varchar | название категории | |
parent | varchar | родительская категория (если является подкатегорией), может быть пустым | |
id_user | int | Номер пользователя, которому принадлежат категории | |
Таблица 5.2 — Places (Места)
название | тип | описание | |
id_places | int | уникальное поле не пустое содержит номер места, является первичным ключом | |
name | varchar | название места | |
Таблица 5.3 — ValutesValue (Валюты и их значения)
название | тип | описание | |
id_valut | int | поле не пустое содержит уникальный номер валютного состояния, является первичным ключом | |
data | datatime | день, в который был представлен данный курс | |
kursToRuR | float | курс по отношению к рублю | |
name | varchar | название валюты | |
Таблица 5.4 — Trade (Товар)
название | тип | описание | |
id_trade | int | поле, содержащее уникальный индекс, для идентификации товара | |
name | varchar | имя товара | |
cost | float | цена на товар, не может быть не заполнена |