Общее описание создаваемого сервиса
программное генеалогическое дерево
Создаваемый веб-сервис предназначается для пользователей сети интернет, интересующихся историей своего рода, собирающих сведения о своих предках, и желающих разобраться в родственных связях, а также привлечь к этому своих близких.
Функции, выполняемые сервисом в интересах пользователя:
а) построение и печать родословных деревьев;
б) импорт и экспорт данных;
в) вычисление и отображение степеней родства между двумя персонами в генеалогических деревьях;
г) хранение мультимедийных данных:
1) текст,
2) фотографии;
д) поиск и фильтрация данных;
е) статистика:
1) количество персон,
2) количество мужчин,
) количество женщин,
) число поколений,
) средняя продолжительность жизни,
) число детей.
Все эти функции доступны пользователю сервиса в личном кабинете - разделе, который доступен только для зарегистрированных пользователей. Личный кабинет позволяет авторизированным пользователям быстро и удобно получать доступ к таким функциям, как работа с генеалогическими деревьями, редактирование личной информации, обмен сообщениями с другими пользователями, хранение мультимедиа-файлов и так далее.
1.2 Суть задачи
Задача дипломного проекта - создать веб-сервис для построения генеалогических деревьев. Поставленная задача разбивается на следующие подзадачи:
- разработка и реализация серверной части сервиса;
- разработка и реализация клиентской части сервиса, которая будет предоставлять пользователям возможность создания и редактирования генеалогических деревьев;
- разработка и реализация возможностей импорта и экспорта данных.
|
Комплексный проект создания веб-сервиса для построения генеалогических деревьев инициирован группой студентов. Его окончательная формулировка и формулировка конкретных задач проведена совместно с научным руководителем.
Задачей данной дипломной работы является разработка и реализация ключевых компонентов системы создаваемого веб-сервиса, на которых будет основана работа всего сервиса для построения генеалогических деревьев. В эту задачу входят такие обширные подзадачи, как:
а) разработка и реализация базы данных для хранения всей получаемой от пользователей информации и всех данных проекта. Для решения этой подзадачи необходимо:
- исследовать существующие реляционные и нереляционные базы данных, их характеристики и главные достоинства;
- выбрать наиболее оптимальные СУБД для хранения данных проекта;
- разработать и реализовать архитектуру баз данных;
- реализовать возможность взаимодействия между выбранными базами данных.
б) разработка и реализация интерфейса для доступа к хранимым данным. В интерфейсе необходимо предоставить стандартный набор операций над данными:
- запись;
- чтение;
- редактирование;
- удаление.
в) авторизация зарегистрированных в сервисе пользователей;
г) разработка и реализация разграничения прав доступа для разных групп пользователей;
д) вычисление и отображение степеней родства между любыми двумя персонами в одном дереве.
Аналоги
В качестве аналогов рассмотрены такие существующие в настоящее время веб-сервисы для построения генеалогических деревьев, как:
а) сервис «Genway - больше, чем семья!» (см. [3]);
|
б) сервис «Moederevo» (см. [4]);
в) сервис «MyHeritage» (см. [5]).
Далее проанализируем достоинства и недостатки перечисленных аналогов.
1.3.1 Сервис «Genway - больше, чем семья!»
Сервис «Genway - больше, чем семья!» содержит графический редактор для построения генеалогических деревьев, обладает приятным дизайном и предоставляет возможность отметить местонахождение человека на карте.
В качестве недостатков сервиса можно отметить следующее:
- сложный интерфейс, неудобное расположение элементов управления;
- возможность строить некорректные деревья;
- отсутствие контроля приватности данных;
- отсутствие импорта и экспорта дерева.
Сервис «Moederevo»
Сервис «Moederevo», помимо графического редактора для построения деревьев и интуитивно понятного интерфейса, предоставляет возможность печати дерева. Но существенными недостатками являются отсутствие контроля приватности данных и отсутствие возможности импорта и экспорта генеалогических деревьев.
Сервис «MyHeritage»
В качестве достоинств сервиса «MyHeritage» отметим следующее:
- графический редактор для составления дерева;
- интуитивно понятный интерфейс;
- возможность печати дерева;
- разнообразие стилей и настроек вида дерева;
- приятный дизайн.
Существенным недостатком данного сервиса является отсутствие возможности импорта и экспорта генеалогических деревьев.
В таблице 1 представлен сравнительный анализ перечисленных выше веб-сервисов для построения генеалогических деревьев.
Таблица 1. Сравнительный анализ веб-сервисов для построения генеалогических деревьев
|
«Genway - больше, чем семья» | «Moederevo» | «MyHeritage» | |
Приятный дизайн | да | да | да |
Интуитивно понятный интерфейс | нет | да | да |
Графический редактор | да | да | да |
Контроль приватности данных | нет | нет | да |
Возможность импорта и экспорта данных | нет | нет | нет |
Возможность печати дерева | нет | да | да |
Подводя итог проведенному анализу существующих в настоящее время веб-сервисов для построения генеалогических деревьев можно сказать, что одним из крупнейших в сети интернет генеалогическим ресурсом является сервис «MyHeritage». Существенным недостатком данного сервиса является ограниченные возможности в бесплатном режиме (ограниченное количество родственников в дереве, ограниченное количество доступного места для хранения мультимедийных данных). Ни один из рассмотренных ресурсов не поддерживает импорт и экспорт данных, то есть не предоставляет пользователю возможности сохранить свои наработки вне сервиса.
Создаваемый сервис разрабатывается с целью устранения найденных недостатков, не забывая про имеющиеся достоинства перечисленных сервисов.
Выбранные программные средства
Для реализации сервиса основным языком разработки выбран язык Python (см. [6]).
Язык Python - это стабильный и распространённый высокоуровневый язык программирования с акцентом на производительность разработчика и читаемость кода; язык общего назначения с широким спектром возможного применения, выразительным синтаксисом и приемлемой производительностью. Недостаток языка - относительно невысокая скорость выполнения программ - компенсируется уменьшением времени разработки программы. В среднем, программа, написанная на Python, в 2-4 раза компактнее, чем её аналог на C++ или Java.
В качестве каркаса приложения выбран фреймворк Django (см. [7]). Django (Джанго) - свободный фреймворк для веб-приложений на языке Python.
Для хранения данных проекта решено использовать два типа СУБД: реляционную и нереляционную базы данных (см. [8]). Такой выбор основан на необходимости хранения разнородных данных. Реляционная база данных хранит данные, удобно представимые в табличном виде: данные о пользователях, данные о географическом расположении пользователей, о правах доступа, о мультимедийных данных. Для хранения данных о генеалогических деревьях используется документо-ориентированная база данных.