Создание веб-интерфейса для построения генеалогических деревьев
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
Введение
Темой данного дипломного проекта является создание веб-сервиса для построения генеалогических деревьев, а именно разработка и реализация серверной компоненты.
Развитие современных информационных технологий и методов теории графов (см. [1]) повлекло за собой существенное продвижение в различных областях знаний, в частности, в области генеалогии (см. [2]). В результате этого началось активное развитие сервисов, пользующихся спросом как у профессионалов, так и у любителей, желающих систематизировать всю известную информацию о своих родственниках и наглядно представить эту информацию в виде генеалогического дерева.
Существует большое количество разного рода средств, предназначенных для построения генеалогических деревьев. Данные средства подразделяются на два основных вида: локальные программы и веб-сервисы. Применение локальных программ затрудняет обмен собранной информацией с другими пользователями (родственниками). В веб-сервисах эта проблема исчезает, но проявляется ряд других недостатков, таких как отсутствие импорта и экспорта данных, отсутствие системы прав доступа к деревьям пользователя, ограничения функциональности в бесплатном режиме и другие.
В этой связи становится необходимым создание бесплатного веб-сервиса для построения генеалогических деревьев с возможностью хранения и отображения различной пользовательской информации.
Целью дипломной работы является разработка и реализация ключевых компонентов системы создаваемого веб-приложения, на которых будет основана работа всего сервиса для построения генеалогических деревьев.
Стоит отметить, что данная цель является локальной относительно цели создания всего веб-приложения, а работа является частью комплексного проекта, выполняемого тремя студентами гр. 9208.
Цель дипломного проекта формирует следующий список взаимосвязанных работ:
-исследование предметной области;
-поиск и рассмотрение существующих аналогов разрабатываемого сервиса, выявление их достоинств и недостатков;
-составление общих и функциональных требований;
-исследование и выбор оптимальных средств разработки для решения поставленной задачи;
-изучение выбранных программных средств;
-разработка и реализация архитектуры системы хранения данных;
-разработка и реализация интерфейса для доступа к хранимым данным;
-разработка и реализация системы разграничения прав доступа для разных групп пользователей;
-разработка и реализация вычисления степеней родства между двумя персонами в генеалогическом дереве;
-отладка и тестирование разработанного сервиса;
-анализ и оценка полученных результатов.
Для проведения работ решено использовать: операционную систему Linux Ubuntu, систему контроля версий Git, язык программирования Python, фреймворк Django, объектно-реляционную СУБД PostgreSQL, документо-ориентированную СУБД CouchDB, скриптовый язык программирования JavaScript, инструмент управления проектами и отслеживания ошибок в программном обеспечении Trac, текстовый редактор Jedit.
1. Постановка задачи
1.1 Общее описание создаваемого сервиса
Создаваемый веб-сервис предназначается для пользователей сети интернет, интересующихся историей своего рода, собирающих сведения о своих предках, и желающих разобраться в родственных связях, а также привлечь к этому своих близких.
Функции, выполняемые сервисом в интересах пользователя:
а) построение и печать родословных деревьев;
б) импорт и экспорт данных;
в) вычисление и отображение степеней родства между двумя персонами в генеалогических деревьях;
г) хранение мультимедийных данных:
1)текст,
2)фотографии;
д) поиск и фильтрация данных;
е) статистика:
1)количество персон,
2)количество мужчин,
)количество женщин,
)число поколений,
)средняя продолжительность жизни,
)число детей.
Все эти функции доступны пользователю сервиса в личном кабинете - разделе, который доступен только для зарегистрированных пользователей. Личный кабинет позволяет авторизированным пользователям быстро и удобно получать доступ к таким функциям, как работа с генеалогическими деревьями, редактирование личной информации, обмен сообщениями с другими пользователями, хранение мультимедиа-файлов и так далее.
1.2 Суть задачи
сервис генеалогическое дерево
Задача дипломного проекта - создать веб-сервис для построения генеалогических деревьев. Поставленная задача разбивается на следующие подзадачи:
-разработка и реализация серверной части сервиса;
-разработка и реализация клиентской части сервиса, которая будет предоставлять пользователям возможность создания и редактирования генеалогических деревьев;
-разработка и реализация возможностей импорта и экспорта данных.
Комплексный проект создания веб-сервиса для построения генеалогических деревьев инициирован группой студентов. Его окончательная формулировка и формулировка конкретных задач проведена совместно с научным руководителем.
Задачей данной дипломной работы является разработка и реализация ключевых компонентов системы создаваемого веб-сервиса, на которых будет основана работа всего сервиса для построения генеалогических деревьев. В эту задачу входят такие обширные подзадачи, как:
а)разработка и реализация базы данных для хранения всей получаемой от пользователей информации и всех данных проекта. Для решения этой под