Проект Социальная сеть SYB на фреймворке Flask

Содержание

Слайд 2

Цель проекта Проект разрабатывался в учебно-познавательных целях. В качестве темы проекта

Цель проекта

Проект разрабатывался в учебно-познавательных целях.
В качестве темы проекта была выбрана

разработка социальной сети.
В качестве ориентира мы взяли англоязычную соц.сеть Reddit. Его отличительная черта - сабреддиты, уникальные сообщества. Именно их мы решили реализовать в нашем проекте. Помимо этого должны быть такие базовые для социальных сетей опции как: умная лента - разделение на лучшие посты, набирающие популярность ("горячее"), и посты из групп, на которые подписан пользователь. 
Слайд 3

План разработки Поиск главной особенности сайта Выбор важных для пользователя функций

План разработки

Поиск главной особенности сайта
Выбор важных для пользователя функций
Проектирование удобного интерфейса

для взаимодействия с сайтом
Реализация выбранных функций
Тестирование и доработка
Загрузка на веб-хостинг
Дальнейшие перспективы
Слайд 4

Поиск главной особенности сайта В ходе долгих размышлений мы пришли к

Поиск главной особенности сайта

В ходе долгих размышлений мы пришли к решению,

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

Выбор важных для пользователя функций После выбора главной особенности сайта, наша

Выбор важных для пользователя функций

После выбора главной особенности сайта, наша задача

заключалась в разработке основной структуры сайта. В популярных социальных сетях есть общее разделение на пользователей и группы. Примерно так же должно быть и у нас, чтобы пользователю не нужно было адаптироваться под что-то незнакомое.
Система оценки публикаций (лайки), подписка на группу, и прочие распространённые функции - всё это необходимо реализовать.
Слайд 6

Проектирование удобного интерфейса для взаимодействия с сайтом Все основные разделы мы

Проектирование удобного интерфейса для взаимодействия с сайтом

Все основные разделы мы вынесли в

закреплённую сверху панель. Она присутствует на всех страницах сайта, так что с ней удобно работать.
примеры с картинками →
Слайд 7

Разделы Настройки аккаунта и создание постов/групп Логотип сайта с ссылкой на

Разделы

Настройки аккаунта и создание постов/групп

Логотип сайта с ссылкой на раздел "Лучшее"

Пример

публикации

Нажимаемые иконки для лайка, комментирования и копирования ссылки

Основная страница сайта

Слайд 8

Нажимаемые иконки для лайка комментария или удаления (если вы его автор)

Нажимаемые иконки для лайка комментария или удаления (если вы его автор)

Нажимаемые

иконки для лайка публикации, копирования ссылки, изменения и удаления (если вы его автор)

Страница публикации

Слайд 9

Поиск по группам, пользователям или записям Пример результата поиска, можно перейти нажав на него

Поиск по группам, пользователям или записям

Пример результата поиска, можно перейти нажав на

него
Слайд 10

Страница пользователя Разделы профиля: Записи пользователя Подписки пользователя Личные настройки

Страница пользователя

Разделы профиля:
Записи пользователя
Подписки пользователя
Личные настройки

Слайд 11

Реализация выбранных функций Для написания сайта были выбраны язык программирования Python,

Реализация выбранных функций

Для написания сайта были выбраны язык программирования Python, фреймворк

(библиотека, в рамках которой разрабатывается приложение) Flask.
Страницы сделаны с помощью HTML-шаблонов, скриптов (например, скрипт для лайка публикации) на JavaScript. Красивый дизайн построен с помощью инструмента для дизайна сайтов Bootstrap.
Слайд 12

Тестирование и доработка Во время и после разработки было выявлено множество

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

Во время и после разработки было выявлено множество ошибок, которые

впоследствии были устранены. В основном это были проблемы с хранением записей и информации о пользователях.
Также были созданы и некоторые новые возможности. Например, после "починки" редактора публикаций мы смогли предоставить разметку Markdown для текста.
Слайд 13

Загрузка на удалённый веб-хостинг После этапа проектирования, реализации и тестирования мы

Загрузка на удалённый веб-хостинг

После этапа проектирования, реализации и тестирования мы получили

готовый для использования продукт (сайт), который оставалось загрузить на веб-хостинг.
После этого наш сайт стал доступен по ссылке:
https://syb-blog.herokuapp.com
Слайд 14

Дальнейшие перспективы После создания основы сайта, мы можем разрабатывать новые, полезные

Дальнейшие перспективы

После создания основы сайта, мы можем разрабатывать новые, полезные функции.

Например, присутствующая почти везде возможность общения - чаты.
Также это может быть возможность создавать закрытые группы - более узкий инструмент.
Или что-то глобальное - смена дизайна, разработка новых алгоритмов лент.
Слайд 15

Конец презентации проекта

Конец презентации проекта

Слайд 16

Код сайта и полная реализация

Код сайта и полная реализация

Слайд 17

Back-end Flask - как фреймворк Flask-login - аутентификация пользователей Gunicorn -

Back-end

Flask - как фреймворк
Flask-login - аутентификация пользователей
Gunicorn - запуск сервера
Heroku -

хостинг

Сервисы
Изображения - pillow
Поиск сущностей  - методы моделей
Токен - pyjwt

Слайд 18

Front-end Шаблоны - jinja Скрипты - JS, jQuery Шрифты - Google

Front-end

Шаблоны - jinja
Скрипты - JS, jQuery
Шрифты - Google Fonts
Дизайн и компоненты

- Bootstrap
Слайд 19

БД, модели Flask-SQLAlchemy на PostgreSQL Flask-migrate

БД, модели

Flask-SQLAlchemy на PostgreSQL
Flask-migrate