https://yatter-python.herokuapp.com/
Yet Another Twitter clone (now with python!)
Simple microblogging platform:
- Register and sign in
- Post messages
- Edit and Delete messages
- ... thats it for now!
Простенький твиттер:
- Работает регистрация и вход
- Можно отправлять сообщения
- Сообщения можно редактировать и удалять
- ... и всё!
Основная работа была вложена в построение архитектуры приложения. На мой взгляд, стандартный подход flask с декораторами не очень хорошо ложится на те принципы ООП, которым мы учим.
Я посторался перевести приложене на архитектуру MVC:
- Model: Файлы с описанием классов для ORM(SQLAlchemy). Папка models.
- View: Шаблоны + Классы для заполнения этих шаблонов. Папки templates и view_models.
- Controller: Блюпринты для связи View c основным приложением. Папка controllers.
В папке x_app - модуль с базовыми классами для всей этой системы.
В одно приложение это все собирается прямо в main.py: здесь объявлен класс PitterApp, в нем подключены все контроллеры.
Источники данных реализованы отдельными классами:
- XDataProvider хранит необходимые ссылки для SQLAlchemy.
- XIdentityProvider - абстрактный менеджер авторизации. Конкретный класс UserProvider - реализация авторизации через Flask-Login, находится в main.py.
Настройки приложения вынесены в файл application.cfg
Как собрать проект:
По идее все собирается само из-под PyCharm. Если нет, то нужно просто сделать
pip install -r requirements.txt
python main.py
Для удобства проверки всем настройкам заданы значения по умолчанию. В поставке идет база данных с несколькими пользователями и сообщениями.
TODO:
- перенаправление на исходную страницу после отправки формы;
- возможность редактировать настройки профиля;
- загрузка картинок на сервер;
- возможность отслеживать сообщения пользователей;
- ... лайки, репосты и т.д.