Skip to content

В рамках данного проекта была поставлена задача реализовать полноценную систему микроблогов для корпоративного использования, аналогичную Twitter.

Notifications You must be signed in to change notification settings

mswesson/fastapi-network

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Корпоративный сервис микроблогов (аналог Twitter)

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

Основные задачи

  1. Архитектура бэкенда: Разработана на основе FastAPI, что позволило обеспечить высокую скорость разработки и масштабируемость. Проект использует PostgreSQL в качестве базы данных для хранения информации о пользователях, постах, лайках и подписках.

  2. API: Взаимодействие с фронтендом происходит через заранее согласованный REST API. Все эндпоинты соответствуют предоставленной спецификации и поддерживают базовые CRUD-операции для пользователей, постов и подписок. Включены также функции аутентификации.

  3. Реализация бизнес-логики:

    • Посты: Пользователи могут создавать и удалять сообщения. Данные посты будут видны всем, кто зарегестрирован в системе.
    • Подписки: Реализован механизм подписок на пользователей, что позволяет получать обновления от интересующих коллег.
    • Лента новостей: Посты подписанных пользователей отображаются в ленте, которая сортируется по количеству лайков и дате публикации.
    • Лайки: Поддерживается базовый функционал взаимодействия с постами в виде лайков.
  4. Тестирование: Написаны автоматические тесты для критически важных частей приложения с использованием Pytest. Покрытие тестами включало бизнес-логику постов, подписок и систему аутентификации.

  5. Технологический стек:

    • FastAPI — для создания API.
    • PostgreSQL — для хранения данных.
    • SQLAlchemy и Alembic — для работы с базой данных и управления миграциями.
    • Docker — для контейнеризации и удобного развёртывания.
    • Nginx — для управления запросами к серверу.

Запуск

  1. Клонируйте репозиторий с помощью git clone git@github.com:mswesson/fastapi-network.git
  2. Теперь необходимо создать 2 .env файла. Один будет находиться в директории проекта, а второй по пути app/.env. Их нужно запонить полагаясь на файлы .env.example по тем же путям.
  3. Необходимо установить docker и docker-compose, если у вас их нет.
  4. Находясь в директории проекта введите docker-compouse up --build после этого соберется образ приложения и запустится.
  5. Далее необходимо заполнить нашу БД данными, для дальнейшего взаимодействия. Для этого сделаем GET запрос по адресу http://localhost/api/content/create
  6. Теперь можно перейти на наш сайт по пути http://localhost/.
  7. Так же можно очистить все данные в БД сделая GET запрос по адресу http://localhost/api/content/delete. ВАЖНО: после отчистки данных потребуется перезапустить контейнер, чтобы Alembic создал табоицы заново.

About

В рамках данного проекта была поставлена задача реализовать полноценную систему микроблогов для корпоративного использования, аналогичную Twitter.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published