Название: Connect-10
Автор: Комаровский Алексей, 10 «Б» класс
Научный руководитель: Пименова Ольга Рушановна, учитель информатики
Цель: создать веб-приложение (социальную сеть) для оптимизации процесса дистанционной коммуникации между учителями, учениками и родителями в рамках одной школы.
Задачи:
Изучить языки разметки HTML и CSS.
Изучить языки программирования JavaScript и PHP.
Изучить принцип создания веб-приложений и сайтов.
Спроектировать минималистичный и удобный дизайн.
Сверстать клиентскую часть приложения, опираясь на ранее созданный макет.
Написать программный код серверной части приложения.
Имплементировать связь между серверной и клиентской частями приложения.
Протестировать готовое приложение на наличие ошибок и багов, затем исправить их.
Представить полученный результат на научно-практической конференции.
Даты:
Сентябрь 2021 – Идея создания социальной сети.
Октябрь 2021 – Разработка дизайна приложения, начало создания клиентской части.
Октябрь 2021 – Январь 2022 – Разработка клиентской части приложения.
Январь – Март 2022 – Разработка серверной части приложения.
Материальное обеспечение: Персональный компьютер, среда разработки PHP Storm, локальный веб-сервер XAMPP, браузер Google Chrome.
Паспорт проекта 2
Введение 4
Глава 1. Теоретическая часть. 6
1.1 Термины 6
1.2 Что такое веб-приложение? 6
1.3 Языки разметки HTML и СSS 6
1.4 Язык программирования JavaScript 6
1.5 Язык программирования PHP 7
Глава 2. Практическая часть. Создание веб-приложения «Connect-10» 8
2.1 Разработка дизайна. 8
2.2 Создание фронтенда 8
2.3 Создание бэкенда 8
2.4 Рефакторинг 8
2.5 Концепция работы приложения 9
2.6 Этапы создания приложения 10
2.7 Проблемы, с которыми пришлось столкнуться 10
Выводы по второй главе: 10
ЗАКЛЮЧЕНИЕ 11
Используемые источники 12
Приложение 13
Актуальность работы: сегодня социальные сети играют огромную роль в жизни современного общества. Они позволяют поддерживать связь со своими друзьями, знакомыми, коллегами, родными даже на большом расстоянии, нужен лишь доступ к интернету. По статистике, более 40% населения планеты пользуются социальными сетями для обмена информацией.
Проблема проектной работы: В связи со сложившейся в мире ситуацией в последствии вируса, остро встаёт вопрос о дистанционном обучении, в частности о процессе сообщения между учителями и учениками. Отличным решением этого вопроса является школьная социальная сеть.
Цель работы: создать веб-приложение (социальную сеть) для оптимизации процесса дистанционной коммуникации между учителями, учениками и родителями в рамках одной школы.
Задачи проекта:
1. Изучить языки разметки HTML и CSS.
2. Изучить языки программирования JavaScript и PHP.
3. Изучить принцип создания веб-приложений и сайтов.
4. Спроектировать минималистичный и удобный дизайн.
5. Сверстать клиентскую часть приложения, опираясь на ранее созданный макет.
6. Написать программный код серверной части приложения.
7. Имплементировать связь между серверной и клиентской частями приложения.
8. Протестировать готовое приложение на наличие ошибок и багов, затем исправить их.
9. Представить полученный результат на научно-практической конференции.
Новизна работы заключается в том, что далеко не каждое образовательное учреждение может похвастаться наличием собственной социальной сети, лично мне вообще не встречались такие сети.
Экологическая оценка продукта: моё веб-приложение абсолютно безвредно для окружающей среды: всё, что надо для его работы – компьютер или смартфон с доступом в интернет.
Экономическая оценка продукта: при выполнение проекта не потребовалось денежных вложений: все программы бесплатные или имеют пробные версии, а персональный компьютер у меня уже был приобретен.
Прогнозируемые результаты:
Научиться верстать веб-страницы с помощью языков разметки HTML и CSS
Научиться разрабатывать приложения на языке PHP
Создать веб-приложение – школьную социальную сеть «Connect-10»
Этапы работы над проектом:
Изучение языков разметки HTML, CSS и языков программирования JavaScript, PHP. Результат – освоение базовых навыков пользования этими языками.
Изучение принципа работы веб-приложений. Результат – получение представления о работе веб-приложения и сайтов.
Разработка дизайна приложения. Результат – готовый макет для последующей вёрстки.
Создание клиентской и серверной частей приложения. Результат – готовое веб-приложение.
Тестирование готового приложения, поиск ошибок и багов. Результат – готовое протестированное веб-приложение.
1.1 Термины
В дальнейшем, под словом «приложение» будет пониматься именно веб-приложение, ведь наш проект по своей сути – сайт, однако его функционал выходит за рамки обычного веб-сайта, поэтому целесообразней будет называть его, как озвучено выше.
Фронтенд (frontend) – пользовательская, визуальная часть веб-сайта.
Бэкенд (backend) – серверная часть веб-сайта.
Стек технологий – набор используемых при разработке технологий.
Сайд-бар – боковое меню
1.2 Что такое веб-приложение?
Веб-приложение — клиент-серверное приложение, в котором клиент взаимодействует с веб-сервером при помощи браузера. Простыми словами, веб-приложение — это полноценная программа, доступ к которой осуществляется через браузер.
По сравнению с обычным сайтом, веб-приложение имеет обширный функционал и интерактивные элементы.
Для работы веб-приложения требуются клиент и сервер. В роли клиента выступает браузер пользователя, серверная же часть располагается на удаленном облаке, доступ к которому предоставляется через интернет.
1.3 Языки разметки HTML и СSS
HTML (от англ. HyperText Markup Language – «язык гипертекстовой разметки») – стандартизированный язык разметки веб-страниц. Это структура сайта, его разметка, которая интерпретируется браузерами и отображается пользователю.
CSS (от англ. Cascading Style Sheets «каскадные таблицы стилей») – формальный язык описания внешнего вида документа (веб-страницы), написанного с использованием языка разметки. Проще говоря, это визуальная часть приложения.
HTML и CSS являются единым стандартом и лежат в основе каждого веб-приложения или сайта, поэтому актуальность данных языков разметки неизмеримо велика и, скорее всего, будет столь же велика еще долгое время.
1.4 Язык программирования JavaScript
JavaScript – язык программирования. Наиболее широко используется как язык сценариев для придания интерактивности веб-страницам. Однако также находит применение и в backend-разработке, разработке мобильных и десктопных приложений и т.д. В нашем приложении мы используем JavaScript для получения данных фильмов и сериалов из базы данных, создания интерактивности интерфейса, а также для отправки запросов на сервер.
JavaScript – универсальный, постоянно развивающийся и востребованный язык программирование, который выполняет все поставленные перед ним задачи. JavaScript не имеет конкурентов в области веб-разработки, ведь в них нет потребности.
1.5 Язык программирования PHP
PHP – скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.
На PHP написаны большинство известных веб-приложений, это мощный и довольно быстрый язык, который удовлетворяет почти все поставленные задачи.
Глава 2. Практическая часть. Создание веб-приложения «Connect-10»
2.1 Разработка дизайна.
Первым этапом создания моего проекта стала разработка макета приложения. Я долго не мог прийти к какому-либо решению, касаемого дизайна, каждый новый вариант мне чем-то не нравился, поэтому спустя довольно долгое время я решил обратиться к уже существующем социальным сетям и подчерпнуть несколько идей. В итоге у меня получился красивый и минималистичный дизайн, довольно удобный для использования. Дизайн проектировался в известном сервисе для разработки интерфейсов – Figma.
2.2 Создание фронтенда
Первым этапом создания моего проекта стала разработка макета приложения. Я долго не мог прийти к какому-либо решению, касаемого дизайна, каждый новый вариант мне чем-то не нравился, поэтому спустя довольно долгое время я решил обратиться к уже существующем социальным сетям и подчерпнуть несколько идей. В итоге у меня получился красивый и минималистичный дизайн, довольно удобный для использования. Дизайн проектировался в известном сервисе для разработки интерфейсов – Figma.
2.3 Создание бэкенда
Визуальные элементы – это конечно хорошо, но они пока никак не взаимодействуют с данными
Для работы с информацией приложению требуется сервер. Его разработку я начал с создания базы данных приложения, в ней были созданы основные таблицы: таблица пользователей, таблица сообщений, таблица диалогов, таблица друзей, таблицы классов и ролей.
После создания базы данных, я начал разработку скриптов. Были реализованы функции авторизации, регистрации, рендера профиля пользователя, получения информации о пользователе.
Затем я создал сервер, работающий по протоколу WebSocket, который позволяет установить постоянное двунаправленное соединение с клиентом, что в свою очередь позволяет мгновенно передавать данные как от клиента на сервер, так и с сервера клиенту.
2.4 Рефакторинг
Когда весь проект был уже по большей части готов, началась самая кропотливая часть – рефакторинг. В проекте было множество багов, которые пришлось исправлять, поэтому я взяли на себя работу тестировщика и всячески тестировали приложение, чтобы выявить ошибки.
2.5 Концепция работы приложения
Моё приложение отображает динамическое содержание, т.е. контент все время меняется, однако, есть и статичный, глобальный элемент - навигационный сайд-бар, он одинаковый для всех страниц, кроме страницы авторизации, на которой он отсутствует.
При первом входе в приложение, пользователю отображается главная страница – страница с информацией о нашем лицее. Пока пользователь не авторизован, т.е. не создал или не вошёл в свой аккаунт, ему доступна лишь часть функционала: он может ознакомится с информацией о лицее, посмотреть страницы других пользователей и создать/войти в свой аккаунт.
При регистрации пользователю надо заполнить небольшую форму: указать свои имя, фамилию, электронную почту, другие контактные данные и придумать пароль.
После авторизации открываются дополнительные возможности, а именно: отправка и получение сообщений, редактирование информации своего профиля, создания записей в своей новостной ленте.
В навигационном сайд-баре можно выбрать любую из доступных страниц, а также нажать на кнопку «Выйти», что приведет к выходу из аккаунта и соответственно к изначальному виду приложения.
На странице «Моя страница», как следует понимать из названия, расположен профиль пользователя – владельца аккаунта, с которого выполнен вход в приложение. На этой странице можно создать новую запись в своей новостной ленте, отредактировать общедоступную информацию.
На странице «Сообщения» пользователь может просмотреть список своих диалогов с другими пользователями, открыть любой из них и написать сообщение.
На странице «Друзья» можно посмотреть список своих друзей, взаимодействовать с каждым из них, правда пока-что из доступного – написать сообщение и удалить из друзей, а также можно найти пользователей по имени или фамилии, введя их часть в соответствующем поле ввода.
На странице «Новости» расположена лента новостей других пользователей – список записей, которыми пользователи хотят поделиться.
В приложении создана иерархическая система модерации: пользователю с ролью учителя, например, доступно распределение учеников по классам; администратор может заблокировать аккаунт пользователя, получает доступ к изменению информации пользователей, фильтрации контента, может выдать пользователю роль учителя.
2.6 Этапы создания приложения
Для разработки моего приложения использовалась среда разработки PHP Storm.
Можно выделить 8 основных этапов разработки:
1. Изучение материалов и документаций языков HTM, CSS, JavaScript, PHP.
2. Изучение других веб-приложений, их анализ и создание примерного функционала приложения.
3. Создание дизайна приложения.
4. Работа над фронтендом приложения.
5. Работа над бэкендом приложения.
6. Реализация функционала приложения.
7. Установление взаимосвязи между фронтендом и бэкендом.
8. Тестирование готового приложения.
2.7 Проблемы, с которыми пришлось столкнуться
1. Настройка локального веб-сервера.
2. Неправильное отображение приложения в разных браузера.
3. Поломка клавиатуры.
4. Ошибки кодировки файлов.
Выводы по второй главе:
1. Результатом моей работы стала рабочая школьная социальная сеть, написанная на языке программирования PHP.
2. Веб-приложение представляет из себя набор страниц, на которых возможно отправить сообщение, добавить человека в друзья, удалить человека из друзей и др.
3. Разработка приложения состояла из 8 этапов, самым трудным из них было – написание бэкенда, самым долгим – изучение используемых языков.
ЗАКЛЮЧЕНИЕ
Подводя итоги работы в рамках проекта, можно сделать следующие выводы:
1 JavaScript— это легковесный, интерпретируемый или JIT-компилируемый, объектно-ориентированный язык с функциями первого класса.
2. JavaScript стабильно входит в десятку самых популярных языков программирования.
3. На JavaScript можно создавать абсолютно любые приложения, этот язык отлично подходит и для взаимодействия с визуальными элементами, и для написания серверной части приложения.
4. HTML и CSS – единственные в своем роде языки разметки, пришедшие на смену XML.
5. PHP — интерпретируемый язык программирования, позволяющий создавать программы в процедурном и объектно-ориентированном стиле.
6. Результатом моей работы стала рабочая школьная социальная сеть, написанная на языке программирования PHP.
7. Веб-приложение представляет из себя набор страниц, на которых возможно отправить сообщение, добавить человека в друзья, удалить человека из друзей и др.
8. Разработка приложения состояла из 8 этапов, самым трудным из них было – написание бэкенда, самым долгим – изучение используемых языков.
Этот проект дал мне очень много полезного опыта. Я научился самостоятельно проектировать структуру приложения, правильно и четко ставить цель и текущие задачи. Ранее мне довелось работать в команде, сейчас же я работал полностью сам, решил провести сравнение и понял, что работа в команде имеет как свои плюсы, так и свои минусы. Работая в одиночку, не возникает проблем организации, на решение которых уходит очень много времени. Когда над проектом работает один человек, ему известен каждый его уголок, и он не тратит времени на изучение работы другого человека. В свою очередь разделение обязанностей в команде дает возможность и время уделять внимание мелким деталям. Этот опыт точно пригодится мне в будущем.
Используемые источники
1. Рейтинг The RedMonk о востребованности языков программирования на июнь 2021 -
https://redmonk.com/sogrady/2021/08/05/language-rankings-6-21.
2. Официальный сайт PHP –
https://www.php.net/.
3. Рейтинг языков программирования Octoverse 2021 -
https://octoverse.github.com/#top-languages-over-the-years.
4. Современный учебник JavaScript –
https://learn.javascript.ru/.
5. Официальный сайт JavaScript -
https://www.javascript.com/.
6. Справочник по HTML и CSS -
http://htmlbook.ru/
Приложение
1.PHP код авторизации пользователя
2.PHP код получения списка друзей пользователя
3. CSS код для страницы пользователя
4.PHP код взаимодействия с друзьями
5. Список диалогов
6. Профиль пользователя