Группа: ПО-31 Курс: 3 Март 2013

Московский Государственный Университет Приборостроения и Информатики

ФСПО

 

Задание на практику

Группа: ПО-31 Курс: 3 Март 2013

 

Тема: Веб-разработка

 

Суть задачи: разработать веб-приложение, реализующее систему обмена сообщениями между пользователями.

 

Подробное описание: Необходимо разработать веб-приложение, позволяющее пользователям обмениваться сообщениями онлайн. Простые примеры – сообщения сайтов ВКонтакте, Одноклассники, Фейсбук и т.п.

 

Требование к системе:

  1. Функциональность

1.1 Регистрация пользователя на сайте

1.2 Авторизация пользователя на сайте

1.3 Список пользователей, находящихся сейчас (в течение последних 5 минут) онлайн.

1.4 Список пользователей (контактов), которых текущий пользователь добавил в свои контакты, возможность добавить в контаткы.

1.5 Возможность удалить пользователя из контактов

1.6 Возможность написать сообщение пользователю

1.7 Возможность принять сообщение от пользователя без перезагрузки страницы.

1.8 Возможность просмотреть историю сообщений пользователя

 

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

 

  1. Реализация

2.1 Проектирование свободное, в рамках установленных требований

2.2 Реализация отображения клиентской части системы (сайта) на HTML, CSS.

2.3 Реализация логики клиентской части системы на JavaScript. Рекомендуется, но не является обязательным, использование jQuery

2.4 Реализация серверной части на PHP

2.5 PHP обязательно с использованием ООП.

2.6 Реализация хранения данных либо в файлах либо в СУБД MySQL, как вам проще, пока это не критично.

 

  1. Внедрение

3.1 Система должна представлять собой совокупность файлов php, js, html и css, структурно распределенных по разным папкам согласно логике.

3.2 Система не должна быть привязана к каким то внешним ссылкам, локальным путям, движкам и т.п., т.е. могла бы работать на компьютере, не подключенном к Интернету.

3.3 Минимальные условия для работы системы – веб-сервер Apache или NGINX + PHP интерпретатор.

 

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

  1. соответствие сделанного исходной функциональности. «чтобы всё работало», по пунктам, изложенным выше в разделе требований к функциональности. Необходимо сделать все пункты. Т.е. система, которая умеет принимать сообщения, но и только, и не умеет работать с пользователями, не считается рабочей
  2. Архитектура системы. Т.е. будет оцениваться как вы продумаете взаимодействие между сервером и клиентом, какие будут формы, какие поля и т.д.
  3. Корректность применения ООП в PHP
  4. Качество написания PHP кода
  5. Разнесение логики отображения данных, обработки данных, и обработки на сервере. (php/js/css/html)

 

Комментарии:

  1. Акцент – на PHP. Т.е. на том, что было изучено на лекциях. В JS можно исопльзовать внешние библиотеки, и по JS спрос лояльней. Google в помощь.
  2. Вы можете использовать и сторонние PHP библиотеки, но тогда надо объяснить почему именно такие, и зачем.

 

Пример архитектуры:

 

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

Если пользователь не авторизован, выводим форму для авторизации либо регистрации.

В базе храним собственно пользователей, и их сообщения, от кого кому и когда.

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

Лучше, конечно, хранить всё в MySQL, но для начала можно и в файлах.

 

Процесс разработки:

Очень просто. Каждый день пишем маленький кусочек кода.

Процесс разработки предлагаю разбить на несколько этапов:

  1. проектирование системы и
  2. проектирование базы данных и классы для хранения пользователей и сообщений
  3. разработка непосредственно функционала
  4. доведение до ума, применение стилей и красивого оформления к системе

на каждый этап – примерно неделя

Далее начинается самое интересное.

Всем необходимо завести аккаунт в системе dropbox. Каждый студент в расшаренной мной специальной папке создает папку со своей фамилией, куда необходимо каждый учебный (когда есть пары практики) день практики в конце дня (пар) отправлять наработки. Dropbox умеет хранить версии изменений, соответсвенно, мы всегда будет понимать где что кто и как делает. Т.е. если я вижу что никаких измнений в папке несколько недель подряд нет и ничего не сделано – значит зачета по практике не будет. Началом работ, когда в папке уже должны появиться какие то результаты, считается четверг, 28.03.2013.

Окончанием времени работы является окончание практики.

 

Папка для исходного кода: https://www.dropbox.com/sh/4xzi535sofp8a2t/1Id3YL_QrR

Регистрируйтесь, добавляйтесь, создавайте свою папку.

По любым вопросам – пишите.