Backend соц.сети для инвесторов

Добавлено 03 мая 2024 в 18:19
Мне предстояло написать backend социальной сети для инвесторов с нуля.

Стек технологий, которые я использовал:
- Используется PostgreSQL для хранения данных о странах и пользователях.
- Для безопасности паролей пользователей применяется хеширование (например, bcrypt).
- Для аутентификации и генерации сессионных токенов применяеться JWT (JSON Web Tokens).
- Реализованы RESTful API эндпоинты для выполнения различных операций,
таких как регистрация, аутентификация, управление профилями, друзьями,
публикациями и взаимодействие с контентом.
- Реализован механизм пагинации для эффективной загрузки больших объемов данных, таких как список друзей и лента новостей.

Что представлял из себя сервис?

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

Функциональные возможности:
1. Регистрация и аутентификация: Пользователи могут зарегистрироваться на платформе, предоставив уникальные регистрационные данные. Пароли хешируются для обеспечения безопасности. Зарегистрированные пользователи могут аутентифицироваться с использованием своих учетных данных.

2. Профили пользователей: Каждый пользователь имеет свой профиль, содержащий персональные данные. Пользователи могут получать доступ к своим профилям, а также просматривать профили других пользователей в зависимости от настроек приватности.

3. Управление друзьями: Пользователи могут добавлять других пользователей в список своих друзей, что позволяет им взаимодействовать с контентом друг друга. Доступ к контенту определяется настройками приватности профиля.

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

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

6. Лайки и дизлайки: Пользователи могут выражать свое отношение к постам, ставя лайки или дизлайки. Подсчитывается количество лайков и дизлайков для каждого поста, учитывая только последнюю реакцию каждого пользователя.
81ed4069e9