Разработка программного комплекса социальной сети
Все вместе работает по принципу — Клиентская часть отправляет запросы на сервер для обработки, сервер обрабатывает информацию, сохраняет в базу данных или извлекает из нее данные и отсылает ответ обратно на клиент. Преимуществами такой состоит в том, все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий… Читать ещё >
Разработка программного комплекса социальной сети (реферат, курсовая, диплом, контрольная)
Задание на курсовую работу
Разработка программного комплекса социальной сети. Система должна поддерживать возможность аутентификации и регистрации пользователя, создания личных профилей, задавать и поддерживать списки друзей, загрузки фотографии пользователя, поиска других пользователей, отображение своих текстовых сообщений и сообщений друзей.
Введение
Сейчас сложно представить себе человека, который не слышал про такие понятия как «поисковая система», «сайт» или «веб-страница». Пользователей интернета с каждым годом становится все больше, а значит, что и число предлагаемых им интернет-услуг растет. Обычный просмотр статичного текста и мультимедиа в браузере уже не устраивает людей: в использование активно входят такие сайты, где посетитель может активно взаимодействовать с остальными посетителями средствами этого сайта.
Один из наиболее интересных результатов синтеза этих возможностей стали социальные сети, которые совмещают достаточно много вариантов пользовательского взаимодействия и пожалуй, наиболее популярны среди посетителей.
1. Аналитическая часть
1.1 Краткий обзор предметной области
Социальная сеть (от англ. social networking service) — платформа, онлайн-сервис или веб-сайт, предназначенные для построения, отражения и организации социальных взаимоотношений, визуализацией которых являются социальные графы.
Характерными особенностями социальной сети являются:
· создание личных профилей (публичных или полупубличных), в которых зачастую требуется указать реальные персональные данные и другую информации о себе (место учёбы и работы, хобби, жизненные принципы и др.);
· предоставление практически полного спектра возможностей для обмена информацией (размещение фотографий, видео-записей, размещение текстовых записей (в режиме блогов или микроблогов), организация тематических сообществ, обмен личными сообщениями и т. п.);
· возможность задавать и поддерживать список других пользователей, с которыми у него имеются некоторые отношения (например, дружбы, родства, деловых и рабочих связей и т. п.)
Термин «социальная сеть» появился в работе Джеймса Барнса «Классы и собрания в норвежском островном приходе» еще в 1954 году. Это социальная структура (математически — граф), состоящая из группы узлов, и которыми являются социальные объекты (люди и организации), и связей между ними (социальных взаимоотношений).
1.2 Обзор сайтов-аналогов
1.2.1 Социальная сеть «Facebook»
Адрес: https://ru-ru.facebook.com/
Facebook — в настоящее время самая крупная социальная сеть в мире. Была основана в 2004 году Марком Цукербергом и его соседями по комнате во время обучения в Гарвардском университете — Эдуардо Саверином, Дастином Московицем и Крисом Хьюзом.
Facebook позволяет создать профиль с фотографией и информацией о себе, приглашать друзей, обмениваться с ними сообщениями, изменять свой статус, оставлять сообщения на своей и чужой «стенах», загружать фотографии и видеозаписи, создавать группы (сообщества по интересам).
В 2007 году Facebook предложил сторонним программистам создавать приложения (игры, средства обмена музыкой, фотографиями и т. д.) и зарабатывать на этом. Благодаря этой возможности посещаемость сайта повысилась.
Facebook предлагает множество функций, с помощью которых пользователи могут взаимодействовать между собой. Среди наиболее популярных — виртуальное подмигивание, фотоальбомы и «стена», на которой знакомые пользователя могут оставлять сообщения.
Пользователь может контролировать уровень доступа к информации, опубликованной в его профиле, и определять, кто имеет доступ к той или иной части страницы.
Нравится" — это выражение согласия или одобрения к понравившиеся записи. Например, если пользователю Facebook понравилась какая-нибудь песня. 23 января 2013 года Facebook для российских пользователей переименовал кнопку «Like» с «Мне нравится» на «Нравится».
Рис. 1 — Сайт контактов «Facebook»
1.2.2 Социальная сеть «Вконтакте»
Адрес: https://www.vk.com
«ВКонтакте» — крупнейшая в Рунете социальная сеть. Ресурс изначально позиционировал себя в качестве социальной сети студентов и выпускников российских вузов, позднее стал называть себя «современным, быстрым и эстетичным способом общения в сети». По данным на январь 2014 года ежедневная аудитория «ВКонтакте» — около 60 миллионов человек.
Пользователям «ВКонтакте» доступен характерный для многих социальных сетей набор возможностей: создавать профиль с информацией о себе, производить и распространять контент, гибко управлять настройками доступа, взаимодействовать с другими пользователями приватно (через личные сообщения) и публично (с помощью записей на «стене», а также через механизм групп и встреч), отслеживать через ленту новостей активность друзей и сообществ.
Кроме возможности писать новые сообщения пользователь может оставлять комментарии под уже опубликованным контентом. К своим сообщениям можно «прикреплять» фотографии, аудио-треки и видео-записи (в том числе и полнометражные фильмы), граффити и опросы.
Возможность закачивать на сайт собственные записи и использовать файлы, загруженные другими пользователями, делает «ВКонтакте» одним из крупнейших медиа-архивов Рунета. Из всех имеющихся на сайте файлов пользователь может создавать в своём профиле личную коллекцию записей, при желании группируя их в отдельные альбомы. При этом введено предельное количество для одного альбома — 10 000 изображений (фото).
«ВКонтакте» предлагает сторонним ресурсам использовать специально разработанные инструменты — виджеты — для глубокой интеграции с социальной сетью. Эти решения позволяют встраивать в сайты систему комментариев для пользователей, сообщества, систему опросов, а также возможность легко поделиться ссылкой на материал с другими пользователями и авторизоваться на сайте.
Интерфейс «ВКонтакте» доступен более чем на 50 языках.
У сайта имеется мобильная версия, расположенная по адресу m.vk.com. Также есть приложения «ВКонтакте» на различный платформах (iOS, Android, Windows Phone).
Рис. 2 — Сайт социальной сети «Вконтакте»
1.2.3 Социальная сеть «Одноклассники»
Адрес: https:// www.odnoklassniki.ru
«Однокламссники» — мультиязычная социальная сеть, используемая для поиска одноклассников, однокурсников, бывших выпускников, а также родных и близких родственников и общения с ними. Проект запущен 4 марта 2006 года, его автором является российский веб-разработчик Альберт Попков.
Основные возможности проекта Odnoklassniki.ru: поиск своих одноклассников, родственников, старых друзей, подруг, коллег. Знакомства с какими-либо новыми людьми. Возможность просматривать фото других пользователей и загружать свои. Удобные инструменты для общения и переписки. Возможности встречи и общение в реальной жизни.
Рис. 3 — Социальная сеть «Одноклассники»
2. Теоретическая часть
Для работы над данным курсовым проектом был использован локальный сервер Denwer (Apache, PHP, MySQL, Perl и т. д.), так как язык, использующийся на стороне сервера, является php, а вся разработка и отладка велась на локальном компьютере. Также в проекте использовались технологии XML и JavaScript.
Вместе с установкой Denwer были установлены так же phpMyAdmin, MySQL и т. д. PhpMyAdmin позволяет работать с базой данных по средствам графического интерфейса, доступного по ссылке localhost/Tools/phpmyadmin. После прохождения авторизации можно увидеть все созданные базы данных слева и панель инструментов для работы с ними справа. Если выбрать одну из баз данных, в ней хранятся таблицы, в нашем случае это users и contacts. Так же прямо из phpMyAdmin можно добавить или изменить существующую таблицу.
Проект основывается на языке PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи) — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.
Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.
CSS используется в проекте для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этой веб-страниц. Это формальный язык описания внешнего вида документа, написанного с использованием языка разметки. Основной целью использования CSS является разделение описания логической структуры веб-страницы (которое производится с помощью HTML или других языков разметки) от описания внешнего вида этой веб-страницы (которое теперь производится с помощью формального языка CSS). Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL.
Так же опишем используемый в курсовом проекте расширяемый язык разметки XML. Спецификация XML описывает XML-документы и частично описывает поведение XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому). XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка. Сочетание простого формального синтаксиса, удобства для человека, расширяемости, а также базирование на кодировках Юникод для представления содержания документов привело к широкому использованию как собственно XML, так и множества производных специализированных языков на базе XML в самых разнообразных программных средствах.
JavaScript используется как встраиваемый язык для программного доступа к объектам социальной сети. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.
Все вместе работает по принципу — Клиентская часть отправляет запросы на сервер для обработки, сервер обрабатывает информацию, сохраняет в базу данных или извлекает из нее данные и отсылает ответ обратно на клиент. Преимуществами такой состоит в том, все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.
3. Конструкторская часть
Опишем структуру используемой в проекте базы данных, которая содержит 6 таблиц с 35 полями.
Для обозначения первичного ключа был взят тип INT с автоинкриментированием значения. Данное поле служит идентификатором контакта, а так же данных, с которыми он связан. Это необходимо для того, чтобы записи не повторялись и вызывались только тогда, когда мы явно к ним обратились по номеру.
Так же в базах данных очень часто используют типы:
· Char — хранит текст;
· Int — целочисленные значения;
· Time — служит для хранения времени в формате «чч/мм/сс»;
· SmallInt — целочисленный тип с небольшим диапазоном значений;
· VarChar — тип хранения смешанных данных до 255 символов;
· Date — хранит дату в формате «гггг/мм/дд».
Для хранения списка пользователей, а так же принадлежащих им данных была спроектированна база данных:
Рис. 4 — База данных Таблица login служит для авторизации пользователей в сети и содержит поля:
· Userid — идентификатор пользователя;
· Email — email пользователя;
· Password — пароль;
· Online — для индикации нахождения на сайте;
Таблица message служит для хранения сообщений пользователя и содержит поля:
· Id — идентификатор сообщения;
· Userid — идентификатор автора сообщения;
· Recipientid — идентификатор получателя сообщения;
· Timestamp — время сообщения;
· Conten — содержимое;
· Private — ограничивающие правила;
Таблица Picture служит для хранения фотографии пользователя и содержит поля:
· Id — идентификатор изображения;
· Ext — формат изображения;
· Userid — идентификатор пользователя;
· Timestamp — время;
· Width — ширина в пикселях;
· Height — высота в пикселях;
Таблица Relations служит для хранения информации положение пользователй относительно друг друга (отправлен запрос, запрос отклонен, пользователь в друзьях и т. д) и содержат поля:
· Userid 1 и Userid 2 — идентификаторы участников отношения;
· Relation — статус отношения;
Таблица Schools содержит информации о школах.
Таблица Userinfo содержит информацию о пользователя и основные её поля:
· Userid — идентификатор пользователя;
· Nickname, fname, mname, mname, lname — совокупность представляет полное имя пользователя;
· Gender — пол;
· Bdate — дата рождения;
· И т.д.;
Данный ресурс разработанный в рамках курсовой работы имеет корневую папку в которой располагаются файлы index. php, home. php, header. php, addfriend. php, missinginfo. php, profpicform. php и т. д. Файл index. php запускается первым и обрабатывает подключение файлов, а они, в свою очередь, обрабатывают шапку сайта, переход на главную страницу авторизации, где пользователь должен ввести логин и пароль. Либо, если он ещё не является участником ресурса — пройти регистрацию.
После авторизации пользователь попадает на страницу, где основной функционал несет файл home. phр, который запуск код других файлов. Config. php подключает базу данных, authen. php проводит аутентификацию, profpicfrom. php отвечает за загрузку изображения пользователя, footer. php за отображение футера сайт, missinginfo. php выстапает как основа загрузки информации о пользователя.
Стоит выделить группу файлов addfriend. php, friendfuction. php, getfriend. php, denyrequest. php, request. php и friend. js для обработки запросов в друзья, группу файлов profile. js, getmyfeed. php, getuserinfo. php, getuserfeed. php и другие для обработки информации пользователя и ленты. Остальные файлы обрабатывают ошибки, регистрацию, отправку сообщений и навигацию. Всего в проекте 35 файлов PHP и 3 файла JavaScript.
Рис. 5 — Список файлов На сайте также разработан пользовательский интерфейс, при помощи которого можно взаимодействовать с сущность системы.
Стартовой является страница регистрации и аутентификации пользователя, если он уже зарегистрирован. Здесь указаны основные поля для регистрации.
Рис. 6 — Страница регистрации После прохождения процедуры аутентификации открывается главная страница с информацией и навигацией доступной зарегистрированному пользователю.
Рис. 7 — Главное окно Здесь отображается список друзей, возможность заполнить оставшиеся поля профиля, заявки в друзья, возможность оставить сообщение, загрузить фотографию и основная информация.
Пункты меню «Мой профиль» и «Мои друзья» соответственно.
Рис. 8 — Мой профиль Рис. 9 — Мои друзья Так же есть поддержка защиты пользовательской информации, защита от неккоректного входа и обеспечение приватности данных.
При вводе некорректного логина и пароля выводится сообщение об ошибке.
Рис. 10 — Неверный логин
Защита ввода email работает при заполнение отличного от принятого формата example@example.com.
Рис. 11 — Защита email
Возможность ограничения публичности реализовано в виде запрета на оставление сообщений пользователям, которые не являются вашими друзьями.
5. Экспериментальная часть
Целью экспериментальной части является тестирование ресурса на возможность возникновения ошибок и нахождения путей их устранения, для обеспечения надёжности и стабильности после окончания всех работ над ним.
Данный ресурс был протестирован на разных броузерах, что не выявило ошибок или проблем в работе ресурса.
Так же при попытке зайти на защищённую часть сайта, не имея корректных данных — сайт не позволяет этого сделать и выводит предупреждение (рис. 10).
Предусмотрены защиты ввода формата email (рис. 11) и формата поиска, что повышает надежность сайта.
Рис. 12 — Защита поля ввода поиска
Так же отсутствует возможность полной кражи пароля с cookies из-за использования алгоритма хэширования md5.
Рис. 13 — Код md5
Тестирование показало, что серьёзных ошибок на сайте нет, а основные слабые места выявлены и защищены.
Заключение
социальный сеть сайт
В результате выполнения курсовой работы был разработан сайт социальной сети, с регистрацией профилей, загрузкой изображений, отправкой сообщений, управлением списком друзей, поиском и разграничением приватности. Изучены принципы работы базы данных и полученные знания применены на практике. Все поставленные цели выполнены.
1.Martin Brampton. PHP5 CMS Framework Development. — PACKT publishing, June 2008. — 328 p. — ISBN 978−1-847 193−57−5
2.Савельева Н. Системы управления контентом (рус.) // Открытые системы. — 2004. — № 4.
3.http://php.su/books.
4.http://expertmagazine.ru/biblioteka/373-cms-sistemy-upravleniya-saytom-obzor-besplatnyh-cms.html.
5.HTML и CSS на примерах, Влад Мержевич, БХВ-Петербург, ISBN 5−94 157−360-Х; 448 стр., 2005 г.