Цель выпускной квалификационной работы – разработать информационную систему, предоставляющую информацию о фотооборудовании, позволяющую добавлять своё оборудование в БД, продавать и обсуждать его.
В ходе выполнения выпускной квалификационной работы был произведен анализ предметной области, включивший в себя сравнение с аналогами разрабатываемой системы, а также формирование функциональных требований к системе, требований пользователей к системе. На основании поставленных требований была разработана структура системы, построена диаграмма вариантов использования. Были также составлены инфологическая и даталогическая модели.
Система была реализована практически полностью, за исключением отображений некоторых разделов.
Данная ВКР также включила в себя расчет трудоёмкости, себестоимости разрабатываемой системы и обзор мер по обеспечению безопасности при эксплуатации системы.
Введение
Всё больше людей, перед тем как пойти в магазин для покупки фотооборудования, заходят в интернет и ищут всевозможную информацию об интересующей их продукции, такую как обзоры, цены, фотографии, отзывы и т.д. Так же многие фотографы покупают и продают как новую, так и б. у. фототехнику через интернет. При этом достаточно сложно найти самое выгодное предложение, так как в сети Интернет существуют десятки ресурсов по продаже той или иной фототехники, на которых цена может различаться в разы. При выборе оборудования люди ищут статьи, обзоры и отзывы об интересующей их технике, но и это весьма затруднительно, так как качественная информация в большинстве своём опубликована на сайтах, посвященных конкретному производителю.
На данный момент существует достаточно много сайтов посвященных фотографии и фотооборудованию. Но ни один из них в полной мере не реализует все описанные выше потребности людей, увлекающихся фотографией.
Целью данного дипломного проекта является создание такой системы, которая максимально упростит процесс выбора фотооборудования, поиск минимальной цены и магазина. При этом у пользователя должна быть возможность просматривать статьи, отзывы и обзоры про интересующее его оборудование.
Проектируемая система должна упростить выбор фотооборудования, максимально отвечающего требованиям пользователя, и поиск самого выгодного предложения по покупке этого оборудования.
1.1.2 Цели создания системыК основным целям можно отнести:
· Создание единого информационного пространства по тематикам фототехника и фотография;
· Обеспечение оперативного информационного взаимодействия потенциальных пользователей посредством публикаций, интерфейсов обмена данными и прочих сервисов системы;
· Предоставление пользователю исчерпывающей информации по данной тематике;
Наряду с общими целями создание системы должно преследовать следующие специфические цели:
· Привлечение большего числа пользователей, что необходимо для расширения системы и достижения целей;
· Привлечение партнёров, а именно магазинов и(или) людей, основной деятельностью которых является купля-продажа фототехники и сопутствующих товаров, с целью взаимовыгодного сотрудничества.
1.1.3 Обзор аналогов«Яндекс Маркет»
«Яндекс Маркет» – наиболее схожий по функционалу сервис с проектируемым. Даёт возможность посмотреть характеристики оборудования и его фотографии, прочитать отзывы о товаре и магазинах, обсудить оборудование и посмотреть фотографии, сделанные с его помощью. Имеет достаточно удобный расширенный поиск. У магазинов есть возможность автоматически синхронизировать свой каталог с каталогом сервиса (см. рисунок 1). К недостаткам с точки зрения пользователя можно отнести: отсутствие обзоров и статей, пользователи не могут продать своё оборудование, представители магазинов сами добавляются в каталог, у пользователя нет возможности добавить магазин с возможно более низкими ценами, нет сравнения с зарубежными ценами.
К недостаткам с точки зрения магазинов можно отнести: магазины платят за клики по ссылке, более справедливо было бы взымать с магазина процент с продажи товара, так как пользователь может и нажал на ссылку, а купил вряд ли. Нет возможности оформить заказ, не переходя на сайт магазина, следовательно, магазину обязательно надо иметь свой сайт, что затруднительно для мелких предпринимателей.
Рисунок 1 – Яндекс Маркет
Молоток.ру
Молоток.ру – самый крупный в интернет-аукцион в русскоязычной части интернета, позволяет пользователям продавать б. у. и новые вещи, технику и многое другое (см. рисунок 2). Достаточно большой выбор б.у. фототехники, основным недостатком является то, что нет единой базы оборудования в самом сервисе, поэтому описание товаров приходится искать на других сайтах, что весьма не удобно. Товары размещают в основном только физические лица, нет информации о ценах в магазинах. Очень затруднено общение пользователей.
Рисунок 2 – Молоток.ру
Различные фото форумы
Форумы предназначены в первую очередь для обсуждения пользователями конкретной темы, хотя многие публикуют там обзоры и продают через них оборудование, но это крайне неудобно.
Пример:
· http://olympus.ourlife.ru/forum/
· http://www.oly43club.ru/
· http://www.club-nikon.ru/forum
· http://www.photoforum.ru/forum/
1.1.4 Классы пользователейПредполагается, что данная система должна быть проста в использовании и доступна широкому кругу пользователей. В связи с этим, можно выделить два основных класса пользователей:
· любой пользователь Интернета, желающий купить фотооборудование и(или) интересующийся фотооборудованием и(или) желающий посмотреть / разместить фотографии в интернете;
· представители магазинов и(или) люди, основной деятельностью которых является купля-продажа фототехники и сопутствующих товаров;
· модераторы, которые будут контролировать работу сайта, добавлять новый материал и следить, чтобы остальные пользователи не нарушали правила.
1.1.5 Требования пользователей к системеОсновная цель создания любой программной системы – создание такого программного продукта, который помогает пользователю выполнять необходимые задачи. Сначала необходимо определить требования, которым должна удовлетворять система.
Для того чтобы более точно понять, как должна работать система, используется описание функциональности системы через варианты использования (Use Case или прецеденты). Варианты использования это – описание последовательности действий, которые может осуществлять система в ответ на внешние воздействия пользователей или других программных систем. Варианты использования отражают функциональность системы с точки зрения получения значимого результата для пользователя, поэтому они точнее позволяют ранжировать функции по значимости получаемого результата.
В данной системе можно выделить три основные роли:
· незарегистрированный пользователь – любой пользователь сети;
· зарегистрированный пользователь;
· модератор системы – пользователь, которому предоставляется доступ к редактированию и обновлению базы данных системы и сайта в целом.
Ниже приведены диаграммы вариантов использования системы для каждой роли. На рисунке 3 отражены варианты использования, специфические для модератора. Стоит отметить, что также для администратора доступны все действия, доступные зарегистрированному пользователю (см. рисунок 5).
Рисунок 3 – Диаграмма вариантов использования модератора
Рисунок 4 – Диаграмма вариантов использования для незарегистрированного пользователя
1.1.6 Требования к функциональности системы1. Регистрация пользователя.
2. Простой поиск по названию.
3. Расширенный поиск по категориям, характеристикам, ценам, рейтингу оборудования и т.д.
4. Вывод на экран списков оборудования, соответствующего заданным характеристикам.
5. Вывод на экран подробной информации об оборудовании, при этом выводится краткая информация из других разделов, связанная с ним.
6. Добавление и редактирование оборудования (информации о нем).
7. Создание, просмотр и редактирование статей.
8. Добавление, просмотр и редактирование информации о магазине.
9. Загрузка фотографий, создание, просмотр, редактирование альбомов.
10. Разделение оборудования, статей и альбомов на категории.
11. Возможность связывать оборудование, статьи, альбомы и магазины с тегами. При этом пользователи могут повлиять на уровень принадлежности тега к данному оборудованию (статье и т.д.).
12. Возможность оценивать оборудование, статьи, фотографии и магазины.
13. Возможность комментировать статьи и фотографии. При этом пользователи могут повлиять на степень соответствия комментария к тематике данной статьи или фотографии.
14. Возможность оставлять рекомендации об оборудовании и магазинах. При этом пользователи могут указать, полезна ли им была эта рекомендация или нет.
15. Возможность отправлять сообщения другим пользователям.
16. У зарегистрированного пользователя должна быть возможность добавления оборудования в личные списки «моё оборудование», «продам», «куплю».
17. У партнёров должна быть возможность добавления (актуализации) своего каталога товаров как в ручном режиме, так и в автоматическом.
1.1.7 Требования к дизайну системы1. Дизайн должен содержать минимум изображений;
2. Дизайн ИСПФ должен быть консервативным – использовать неброские, неяркие цвета и тона;
3. Элементы дизайна не должны сильно влиять на скорость загрузки страниц.
1. В системе должны использоваться шрифты, входящие в стандартную поставку ОС Windows (старше 98) и ОС Linux;
2. Размер (кегль) шрифтов должен обеспечивать удобство восприятия текста при минимально допустимом размере экрана.
3. Кодировка страниц системы: UTF-8.
1.1.9 Требования к средствам просмотра системыСайт должен обеспечивать корректное отображение данных в следующих браузерах:
1. Internet Explorer (версия 5.5 и выше);
2. Opera (версия 7.0 и выше);
3. Mozilla Firefox (версия 1.0 и выше).
1.1.10 Требования к компоновке страниц системыШирина информативной области страниц сайта должна быть статична и не превышать 1024px.
1.1.11 Требование к содержанию системыСтраницы Сайта должны быть оптимизированы под поисковые системы Google и Яндекс.
1.2 Проектирование системы 1.2.1 Структура сайтаОсновываясь на требованиях пользователей к системе, была составлена общая структура сайта системы. Она изображена на рисунке 6.
Приведем описание общей структуры сайта системы с кратким описанием его компонентов:
1. PhotoHQ – главная страница, на которой будет описано предназначение сайта, что на нём можно найти. Также на этой странице будет ссылка на раздел «Экскурсия по сайту», в котором будут описаны преимущества регистрации и кратки инструкции пользователя;
Рисунок 6 – Общая структура сайта
2. Раздел «Регистрация» – Раздел предназначен для регистрации нового пользователя;
3. Раздел «Поиск» – Форма поиска по разделам;
4. Раздел «Оборудование»:
· Списки оборудования – выборки оборудования по критериям, таким как: оценка, теги, тип, количество пользователей у которых оно есть и т.д.;
· Информация об оборудовании – страница, на которой расположена информация по конкретному оборудованию и краткая информация из других разделов, связанная с ним;
· Цены на оборудование – список цен конкретного оборудования, с возможностью перейти на сайт магазина для заказа или связаться с продавцом;
· Сообщить об ошибке – форма для отправки модераторам информации о неточности в описании;
5. Раздел «Статьи»:
· Списки статей – выборки статей по критериям, таким как: оценка, теги и время публикации. Так же они могут быть результатом расширенного поиска;
· Просмотр статьи – страница на которой расположена сама статья, краткая информация из других разделов, связанная с ней, и комментарии. Статья может располагаться на удалённом сайте, тогда происходит редирект на внешний источник;
· Добавление статьи – форма для добавления статьи;
6. Раздел «Магазины»:
· Списки магазинов – выборки магазинов по критериям, таким как: оценка, местоположение и тип.
· Информация о магазине – страница, на которой расположена информация по конкретному магазину и краткая информация из других разделов, связанная с ним.
· Добавление магазина – форма добавления магазина.
7. Раздел «Фотографии»:
· Списки фотографии – выборки фотографии по критериям, таким как: оценка, теги, альбом и т.д.
· Список альбомов – Страница, на которой расположен список альбомов конкретного пользователя.
· Просмотр фото – Страница, на которой будет расположена фотография, информация о ней и комментарии.
· Добавление фотографии – форма загрузки фотографии и добавления информации о ней.
8. Раздел «Пользователи»:
· Информация о пользователе – Страница с информацией о пользователе;
· Моя страница – страница пользователя;
· Редактирование \ добавление информации о себе – Форма Редактирования \ добавления информации о себе;
· Список оборудования пользователя – список оборудования, которое есть у пользователя;
· Куплю – список оборудования, которое пользователь хотел бы купить;
· Сообщения – личные сообщения пользователя.
1.2.2 Структура базы данныхПроанализировав функциональные требования к системе, а также требования пользователей системы была составлена инфологическая и даталогическая модель базы данных. Ниже будут приведены даталогическая и инфологическая модели базы данных.
Инфологическая модель базы данных
Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. На рисунке 7 изображена инфологическая схема базы данных.
Даталогическая модель базы данных
На рисунке 8 представлены основные таблицы базы данных системы. Таблицы, автоматически генерируемые фреймворком Django, были скрыты, поскольку не имеют отношения к данному дипломному проекту.
Рисунок 7 – Инфологическая схема базы данных
Рисунок 8 – Структура базы данных
Таблица users хранит основную информацию о пользователях
Таблица 1.1 – Users
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
first_name | Строковый |
last_name | Строковый |
Строковый | |
password | Строковый |
is_stuff | Логический |
is_active | Логический |
is_superuser | Логический |
last_login | Целочисленный |
date_joined | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер пользователя;
- name – отображаемое имя пользователя;
- first_name – имя пользователя;
- last_name – фамилия пользователя;
- email – электронная почта пользователя (логин пользователя для входа в систему);
- password – пароль пользователя, для входа в систему;
- is_stuff – флаг активности пользователя;
- is_active – флаг активации профиля (1 – профиль активирован, 0 – профиль не активирован);
- is_superuser – флаг суперюзера(модератора);
- last_login – дата и время последней авторизации;
- date_joined – дата и время регистрации;
· Таблица geo_countries хранит список стран
Таблица 1.2 – Geo_countries
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер страны;
- name – название страны;
· Таблица geo_cities хранит список городов
Таблица 1.2 – Geo_cities
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
country_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер города;
- name – название города;
- country_id – номер страны;
· Таблица us_info хранит дополнительную информацию о пользователе
Таблица 1.3
Название поля | Тип поля |
user_id | Целочисленный |
city_id | Целочисленный |
icq | Целочисленный |
avatar_path | Строковый |
- user_id – уникальное поле таблицы численного типа, содержащее номер пользователя;
- city_id – номер города;
- icq – ICQ UIN пользователя;
- avatar_path – путь к фотографии пользователя;
· Таблица us_groups хранит названия групп пользователей
Таблица 1.4 – Us_groups
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
- Id – уникальное поле таблицы численного типа, содержащее номер группы;
- name – название группы;
· Таблица us_permissions хранит список прав доступа
Таблица 1.5 – Us_permissions
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
content_type_id | Целочисленный |
codename | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер прав доступа;
- name – название прав доступа;
- content_type_id – номер тира содержимого;
- codename – перечень прав;
· Таблица us_group_permissions хранит связи групп пользователей и прав доступа, соответствующих им
интернет магазин фотооборудование цена
Таблица 1.6 – Us_group_permissions
Название поля | Тип поля |
id | Целочисленный |
group_id | Целочисленный |
permission_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер связи;
- group_id – номер группы пользователей;
- permission_id – номер прав доступа;
· Таблица us_user_groups хранит список принадлежностей пользователей к группам
Таблица 1.7 – Us_user_groups
Название поля | Тип поля |
id | Целочисленный |
user_id | Целочисленный |
group_id | Целочисленный |
- Id – уникальное поле таблицы численного типа, содержащее номер принадлежности;
- user_id – номер пользователя;
- group_id – номер группы;
· Таблица messages хранит сообщения пользователей
Таблица 1.8 – Messages
Название поля | Тип поля |
id | Целочисленный |
subject | Строковый |
body | Текст |
sender_id | Целочисленный |
recipient_id | Целочисленный |
parent_msg_id | Целочисленный |
send_at | Целочисленный |
read_at | Целочисленный |
replied_at | Целочисленный |
sender_deleted_at | Целочисленный |
recipient_deleted_at | Целочисленный |
- Id – уникальное поле таблицы численного типа, содержащее номер сообщения;
- subject – тема сообщения;
- body – текст сообщения;
- sender_id – номер профиля отправителя;
- recipient_id – номер профили получателя;
- parent_msg_id – номер сообщения, в ответ на которое написано данное;
- send_at – дата и время отправления;
- read_at – дата и время прочтения;
- replied_at – дата и время ответа;
- sender_deleted_at – дата и время удаления отправителем;
- recipient_deleted_at – дата и время удаления получателем;
· Таблица it_categories хранит категории содержимого (древовидная структура, вложенные множества)
Таблица 1.9 – It_categories
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
parent_id | Целочисленный |
order | Целочисленный |
slug | Строковый |
alternate_title | Строковый |
description | Текст |
lft | Целочисленный |
rght | Целочисленный |
tree_id | Целочисленный |
level | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер категории;
- name – название категории;
- parent_id – номер родительской категории;
- order – порядок категории;
- slug – название категории на латинице;
- alternate_title – альтернативное название;
- description – описание категории;
- lft – левый индекс;
- rght – правый индекс;
- tree_id – номер дерева категорий;
- level – уровень вложенности категории;
· Таблица it_brands хранит список фирм производителей
Таблица 1.10 – It_brands
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
description | Текст |
logo_path | Строковый |
country_id | Целочисленный |
user_id | Целочисленный |
status | Целочисленный |
created | Целочисленный |
slug | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер фирма;
- name – название фирмы;
- description – описание фирмы;
- logo_path – путь к логотипу;
- country_id – номер страны;
- user_id – номер профиля представителя (0, если нет);
- status – статус публикации (опубликовано, требует модерации, отказано в публикации, требует доработки и т.д.);
- created – дата и время добавления в базу;
- slug – название фирмы на латинице;
· Таблица items хранит список оборудования и его основные характеристики
Таблица 1.11 – Items
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
brand_id | Целочисленный |
description | Текст |
category_id | Целочисленный |
user_id | Целочисленный |
slug | Строковый |
status | Целочисленный |
created | Целочисленный |
max_price | Вещественный |
min_price | Вещественный |
av_price | Вещественный |
- id – уникальное поле таблицы численного типа, содержащее номер оборудования;
- name – название оборудования;
- brand_id – номер фирмы производителя;
- description – описание оборудования;
- category_id – номер категории, к которой принадлежит оборудование;
- user_id – номер пользователя, который добавил оборудование;
- slug – название оборудования на латинице;
- status – статус публикации;
- created – дата и время добавления оборудования;
- max_price – максимальная цена на оборудование;
- min_price – минимальная цена на оборудование;
- av_price – средняя цена на оборудование;
· Таблица us_want_it связывает пользователей с оборудованием, которое они хотят купить
Таблица 1.12 – Us_want_it
Название поля | Тип поля |
id | Целочисленный |
item_id | Целочисленный |
user_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер связи;
- item_id – номер оборудования;
- user_id – номер пользователя;
· Таблица us_have_it связывает пользователей с оборудованием, которое у них есть
Таблица 1.13 – us_have_it
Название поля | Тип поля |
id | Целочисленный |
item_id | Целочисленный |
user_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер связи;
- item_id – номер оборудования;
- user_id – номер пользователя;
· Таблица it_pics хранит изображения оборудования
Таблица 1.14 – it_pics
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
path | Строковый |
rating | Вещественный |
status | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер изображения;
- it_id – номер оборудования;
- path – путь к файлу изображения;
- rating – количество просмотров изображения;
- status – статус публикации;
· Таблица it_synonyms хранит синонимы названий оборудования
Таблица 1.15 – it_synonyms
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
title | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер синонима;
- it_id – номер оборудования;
- title – синоним;
· Таблица it_prop_names хранит названия параметров оборудования
Таблица 1.16 – it_prop_names
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
measurement | Строковый |
decor | Целочисленный |
category_id | Целочисленный |
obligatory | Логический |
status | Целочисленный |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер параметра;
- name – название параметра;
- measurement – измерение;
- decor – номер режима отображения;
- category_id – номер категории;
- obligatory – обязательность параметра;
- status – статус публикации;
- created – дата и время создания параметра;
· Таблица it_prop_int хранит значения целочисленных параметров
Таблица 1.17 – it_prop_int
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
name_id | Целочисленный |
value | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер значения;
- it_id – номер оборудования;
- name_id – номер параметра;
- value – значение параметра;
· Таблица it_prop_bool хранит значения логических параметров
Таблица 1.18 – it_prop_bool
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
name_id | Целочисленный |
value | Логический |
- id – уникальное поле таблицы численного типа, содержащее номер значения;
- it_id – номер оборудования;
- name_id – номер параметра;
- value – значение параметра;
· Таблица it_prop_flo хранит значения параметров
Таблица 1.19 – it_prop_flo
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
name_id | Целочисленный |
value | Вещественный |
- id – уникальное поле таблицы численного типа, содержащее номер значения;
- it_id – номер оборудования;
- name_id – номер параметра;
- value – значение параметра;
· Таблица it_prop_str хранит значения строковых параметров
Таблица 1.20 – it_prop_str
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
name_id | Целочисленный |
value | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер значения;
- it_id – номер оборудования;
- name_id – номер параметра;
- value – значение параметра;
· Таблица it_prop_list_name хранит значения параметров с типом «список»
Таблица 1.21 – it_prop_list_name
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер значения списка;
- name – значение списка;
· Таблица it_prop_list_name_prop хранит связь параметра со списком его значений
Таблица 1.22 – it_prop_list_name_prop
Название поля | Тип поля |
id | Целочисленный |
it_prop_list_name_id | Целочисленный |
it_prop_name_id | Целочисленный |
- it_prop_list_name_id – номер значения списка;
- it_prop_name_id – номер параметра;
· Таблица shops хранит информацию о магазине
Таблица 1.23 – shops
Название поля | Тип поля |
id | Целочисленный |
user_id | Целочисленный |
city_id | Целочисленный |
name | Строковый |
logo_path | Строковый |
description | Текст |
slug | Строковый |
status | Целочисленный |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер магазина;
- user_id – номер пользователя, который представляет данный магазин (0 если нет);
- city_id – номер города в котором расположен магазин;
- name – название магазина;
- logo_path – путь к файлу с логотипом магазина;
- description – описание магазина;
- slug – название магазина латиницой;
- status – статус публикации;
- created – дата и время добавления магазина;
· Таблица sh_goods хранит список товаров пользователей или магазинов
Таблица 1.24 – sh_goods
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
user_id | Целочисленный |
shop_id | Целочисленный |
used | Логический |
price | Вещественный |
comment | Текст |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер товара;
- it_id – номер оборудования;
- user_id – номер пользователя;
- shop_id – номер магазина (0 если нет);
- used – б. у. Товар или нет;
- price – цена товара;
- comment – комментарий к товару;
- created – дата добавления товара;
· Таблица galleries хранит список галерей
Таблица 1.25 – galleries
Название поля | Тип поля |
Id | Целочисленный |
date_added | Целочисленный |
title | Строковый |
title_slug | Строковый |
description | Текст |
is_public | Логический |
- id – уникальное поле таблицы численного типа, содержащее номер галереи;
- date_added – дата создания галереи;
- title – название галереи;
- title_slug – название галереи латиницей;
- description – описание галереи;
- is_public – публичная ли галерея;
· Таблица gal_photos хранит список фотографий
Таблица 1.26 – gal_photos
Название поля | Тип поля |
id | Целочисленный |
photo_path | Строковый |
user_id | Целочисленный |
date_tacken | Целочисленный |
view_count | Целочисленный |
title | Строковый |
title_slug | Строковый |
caption | Текст |
date_added | Целочисленный |
is_public | Логический |
- id – уникальное поле таблицы численного типа, содержащее номер фотографии;
- photo_path – путь до файла с фотографией;
- user_id – номер пользователя, добавившего фотографию;
- date_tacken – дата и время публикации фотографии;
- view_count – количество просмотров фотографии;
- title – заголовок фотографии;
- title_slug – заголовок фотографии латиницей;
- caption – описание фотографии;
- date_added – дата и время добавления фотографии;
- is_public – публична ли фотография;
· Таблица gal_photo_gal хранит принадлежность фотографий к альбомам
Таблица 1.27 – gal_photo_gal
Название поля | Тип поля |
id | Целочисленный |
gallery_id | Целочисленный |
photo_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер принадлежности;
- gallery_id – номер галереи;
- photo_id – номер фотографии;
· Таблица dj_content_type хранит типы содержимого сайта
Таблица 1.28 – dj_content_type
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
app_label | Строковый |
model | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер типа содержимого;
- name – название типа содержимого;
- app_label – название модуля (префикс таблицы);
- model – модель (название таблицы);
· Таблица tags хранит список тегов
Таблица 1.29 – tags
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
- Id – уникальное поле таблицы численного типа, содержащее номер тега;
- name – название тега;
· Таблица tag_taggeditem хранит связи тегов и содержимого сайта
Таблица 1.30 – tag_taggeditem
Название поля | Тип поля |
id | Целочисленный |
tag_id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер связи;
- tag_id – номер тега;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
· Таблица comments хранит комментарии пользователей
Таблица 1.31 – comments
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_pk | Целочисленный |
user_id | Целочисленный |
user_name | Строковый |
user_email | Строковый |
user_url | Строковый |
comment | Текст |
submit_date | Целочисленный |
ip_address | Целочисленный |
is_public | Логический |
is_removed | Логический |
- id – уникальное поле таблицы численного типа, содержащее номер комментария;
- content_type_id – номер типа содержимого;
- object_pk – номер содержимого;
- user_id – номер пользователя, оставившего комментарий;
- user_name – имя пользователя;
- user_email – адрес электронной почты пользователя;
- user_url – ссылка на сайт пользователя;
- comment – текст комментария;
- submit_date – дата и время добавления комментария;
- ip_address – IP адрес пользователя, оставившего комментарий;
- is_public – публичный ли комментарий;
- is_removed – дата и время удаления комментария;
· Таблица cm_flags хранит историю изменений комментария
Таблица 1.32 – cm_flags
Название поля | Тип поля |
id | Целочисленный |
user_id | Целочисленный |
comment_id | Целочисленный |
flag | Строковый |
flag_date | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер записи;
- user_id – номер пользователя, изменившего комментарий;
- comment_id – номер комментария;
- flag – действие, которое произвёл пользователь;
- flag_date – дата и время изменения;
· Таблица recomindations хранит рекомендации пользователей
Таблица 1.33 – recomindations
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
user_id | Целочисленный |
plus | Текст |
minus | Текст |
general | Текст |
positive | Целочисленный |
negative | Целочисленный |
status | Целочисленный |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер рекомендации;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
- user_id – номер пользователя, оставившего рекомендацию;
- plus – плюсы;
- minus – минусы;
- general – прочие;
- positive – количество пользователей, посчитавших рекомендацию полезной;
- negative – количество пользователей, посчитавших рекомендацию безполезной;
- status – статус публикации;
- created – дата и время создания рекомендации;
· Таблица articles хранит статьи пользователей
Таблица 1.34 – articles
Название поля | Тип поля |
id | Целочисленный |
title | Строковый |
text | Текст |
short_text | Текст |
is_remote | Логический |
url | Строковый |
user_id | Целочисленный |
slug | Строковый |
status | Целочисленный |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер статьи;
- title – заголовок статьи;
- text – текст статьи;
- short_text – сокращённый текст статьи;
- is_remote – статья расположена на удалённом ресурсе;
- url – адрес ресурса на котором расположена статья;
- user_id – номер пользователя, опубликовавшего статью;
- slug – заголовок статьи латиницой;
- status – статус публикации;
- created – дата и время добавления статьи;
· Таблица rating_scores хранит рейтинг содержимого сайта
Таблица 1.35 – rating_scores
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
score | Вещественный |
votes | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер записи;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
- score – средняя оценка;
- votes – количество проголосовавших пользователей;
· Таблица rating_votes хранит оценки содержимого сайта пользователями
Таблица 1.36 – rating_votes
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
score | Вещественный |
user_id | Целочисленный |
ip_address | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер оценки;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
- score – оценка;
- user_id – номер пользователя;
- ip_address – IP адрес пользователя;
· Таблица rating_weight хранит вес содержимого сайта
Таблица 1.37 – rating_weight
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
weight | Целочисленный |
votes | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер записи;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
- weight – вес содержимого;
- votes – количество пользователей, оценивщих вес содержимого;
· Таблица rating_weight_vote хранит оценки веса содержимого пользователями
1.2.3 Диаграмма классовНа диаграмме классов основного модуля (см. рисунок 9) классы, которые будут реализовывать взаимодействие с базой данных посредством ORM Django. Все классы будут наследоваться от стандартного класса Model, который включён в состав фреймворка. В классе Model уже реализованы необходимые функции для работы с базой данных.
В связи с большим объёмом работ окончательная реализация системы ещё не завершена. На данный момент реализованы все классы системы, методы взаимодействия классов между собой и методы их взаимодействия с базой данных. С точки зрения архитектуры программного обеспечения MVC полностью реализованы уровень модели (Model) и уровень контроллера(Controller), частично реализован уровень отображения (View).
1.3.1 План контроля измененийВ ходе реализации программного средства производился контроль промежуточных версий. Для контроля версий использовалась программа Git GUI – клиент для системы контроля версий Git, выполненный как расширение оболочки Linux.
1.3.2 Интерфейс системыВ соответствии с требованиями, выдвинутыми к дизайну системы, был разработан интерфейс системы.
Основная структура сайта состоит из пяти блоков:
1. «Шапка» сайта – в нём располагается логотип сайта, форма регистрации или краткая информация об авторизовавшемся пользователе.
2. Основное меню – горизонтальное меню навигации по основным разделам сайта.
3. Дополнительное меню – вертикальное меню содержит пункты которого зависят от раздела, который открыт в данный момент.
4. Содержимое сайта – основной блок в котором выводится информация, запрашиваемая пользователем.
5. «Подвал» – блок, в котором находятся ссылки на дополнительную информацию о сайте.
В качестве примера рассмотрим интерфейс страницы просмотра информации об оборудовании. На этой странице оказался самый сложный с точки зрения реализации интерфейс.
Основной проблемой при создании интерфейса было большое количество информации об оборудовании, которую надо было разместить на одной странице. Было принято решение разделить всю информацию блоки. При этом видимостью большинства из них может управлять пользователь.
Рассмотрим некоторые блоки более подробно:
1. Обязательный – Блок в котором отображаются обязательный характеристики оборудования, диапазон цен на него, средняя цена, средняя оценка, изображение, форма оценки и ссылки на добавление в личные списки пользователя. Пользователь не может управлять его видимостью.
2. Текстовое описание – Краткое описание оборудования. Пользователь может управлять видимостью блока. Нажав на заголовок блока его можно скрыть или раскрыть. В тексте выделяются ключевые слова в виде ссылок, при нажатии на которые пользователь переходит на другие страницы сайта.
3. Облако тегов – перечень тегов описывающих данное оборудование. Каждый из тегов имеет вес, который указывает на степень соответствия оборудования данному тегу. Пользователь может управлять видимостью блока. Так же пользователь может влиять на вес тега, нажимая на кнопки («+» и «–») справа от названия тега. Изменяя вес тега пользователь либо соглашается, что оборудование соответствует тегу («+»), либо не соглашается («–»).
4. Информация из других разделов и цены – Пользователь не может управлять видимостью блока. Блок состоит из четырёх вкладок:
· Рекомендации, которые оставляют пользователи. Отображаются две самые полезные рекомендации. Пользователь может влиять на уровень полезности, нажимая на кнопки «Да» или «Нет». Снизу находятся две ссылки, при помощи которых можно добавить рекомендацию или посмотреть все рекомендации.
... – оно должно быть изготовлено для непосредственного причинения телесных повреждений, опасных для жизни и не должно быть сконструировано для хозяйственно-бытового применения. Холодное оружие в криминалистике классифицируется: по назначению – на боевое, охотничье, криминальное; по способу изготовления – на промышленное, кустарное, самодельное, а также переделанное; по месту изготовления – на ...
... обоснование) Точная формулировка концепции (перечень конкретных задач, выбор целевого рынка и позиционирование) План освоения (т е. переход от намеченного позиционирования к плану оперативного маркетинга) Межфункциональная координация Поддержка руководством, т. е. потребность в специальной структуре, которая разрабатывала бы, координировала и поддерживала бы доведение до рынка этого товара. ...
... и рекомендаций его проведения. Учитывая особую актуальность данной темы в настоящее время в своей работе я решила рассмотреть особенности криминалистической тактики следственного осмотра и освидетельствования. 1. Осмотр и освидетельствование – следственные действия, предусмотренные УПК РСФСР.1.1. Понятие, сущность, цели следственного осмотра и освидетельствования. Первый советский учебник ...
... байта, содержание значения синего, зеленого и красного в том же порядке. Каждая строка дополняется нулями до границы 4 байт. Именно этот формат данных используется в разрабатываемой в подсистеме выделения текстильных волокон. 3.2 Преобразование изображения из RGB – представления в HSB Исходное изображение преобразуется из RGB – представления в HSB в случае выбора пунктов 2 либо 3 из главного ...
0 комментариев