Создание веб-интерфейса для построения генеалогических деревьев

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

°нит список, состоящий из id семей, которые были образованы персоной.

 

3. Описание реализации работы с данными

 

3.1 Структура классов для манипуляции с данными

 

Для манипуляции с данными используются следующие классы:

а)class User (login, password, firstname, lastname, patronymic, phone, email, sex, birthday, deathday, city_id, city_area_id, address, registration_date, update_data, ip_info) - используется для записи данных в таблицу user;

б)class Region (title) - используется для записи данных в таблицу region;

в)class RegionArea (title, region_id) - используется для записи данных в таблицу region_area;

г)class City (title, region_area_id) - используется для записи данных в таблицу city;

д)class CityArea (title, city_id) - используется для записи данных в таблицу city_area;

е)class Media (type, title, path, owner_id) - используется для записи данных в таблицу media;

ж)class Photo (media_id, user_id, rectangle) - используется для записи данных в таблицу photo;

з)class Privilege (document_id, owner_id, user_id, privilege) - используется для записи данных в таблицу privilege;

и)class Album (owner_id, avatar_id, title, create_date, update_date) - используется для записи данных в таблицу album;

к)class MediaToAlbum (album_id, media_id) - используется для записи данных в таблицу media_to_album;

л)class DatabaseConnection(address, user, password) - используется для установки соединения с нереляционной базой данных;

м)DatabaseManager(connection, db_name) - используется для создания запросов к нереляционной базе данных.

 

3.2. Разграничение прав доступа к данным

 

Для решения задач проекта необходимо реализовать две системы прав доступа. Первая система прав доступа будет отвечать за разграничение прав доступа к ресурсам сервиса, а вторая - за разграничение доступа к пользовательским данным.

 

3.2.1 Система прав доступа к ресурсам сервиса

Существуют три роли пользователей:

а)незарегистрированные пользователи;

б)зарегистрированные пользователи;

в)администраторы.

Незарегистрированные пользователи имеют доступ к:

-главной странице,

-странице регистрации,

-страницам пользователей, разрешивших полный доступ к своим данным.

Зарегистрированные пользователи имеют доступ к:

-главной странице,

-странице регистрации,

-страницам пользователей, разрешивших полный доступ к своим данным,

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

Администраторы имеют доступ как к вышеперечисленным данным, так и к интерфейсу администратора.

3.2.2 Система прав доступа к пользовательским данным

Система прав доступа к пользовательским данным базируется на трех операциях:

а)отсутствие доступа;

б)доступ на чтение;

в)доступ на запись.

Права доступа могут быть назначены пользователю или группе пользователей. При этом права, назначенные пользователю, имеют более высокий приоритет.

 

3.3 Вычисление степеней родства

 

Степени родства между персонами в одном генеалогическом дереве должны определяться в двух случаях:

а)определение кровности родства между двумя персонами в одном генеалогическом дереве;

б)определение в дереве всех персон с заданным типом родственной связи для некоторой выбранной персоны.

Задача определения кровного или некровного родства между двумя персонами в дереве была решена поиском пути, в котором все родственники между этими персонами являются кровными друг другу. Если такой путь существует, то родственники являются кровными. Если такой путь отсутствует, родство является некровным.

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

 

Заключение

 

В результате проделанной работы полностью реализован запланированный объём работы, включающий в себя реализацию системы хранения данных проекта, реализацию системы разграничения прав доступа к ресурсам сервиса и реализацию возможности определения родства между персонами генеалогического дерева.

Разработанный сервис имеет практическую ценность для работы с генеалогическими деревьями в веб-среде.

Для достижения поставленной цели проделаны следующие виды работ:

-исследована предметная область;

-найдены и исследованы существующие аналоги;

-составлены общие и функциональные требования;

-исследованы возможные средства разработки для решения поставленной задачи;

-выбраны и изучены средства разработки: объектно-реляционная СУБД PostgreSQL, документо-ориентированная СУБД CouchDB, язык программирования Python, фреймворк Django, язык программирования JavaScript;

-разработана и реализована архитектура реляционной базы данных;

-разработана и реализована архитектура нереляционной базы данных;

-разработан и реализован интерфейс для доступа к хранимым данным;

-разработана и реализована система разграничения прав доступа для разных групп пользователей;

-разработано и реализовано вычисление степеней родства между двумя персонами в генеалогическом дереве;

-проведена отладка и т