Мне предстояло написать backend социальной сети для инвесторов с нуля.
Стек технологий, которые я использовал: - Используется PostgreSQL для хранения данных о странах и пользователях. - Для безопасности паролей пользователей применяется хеширование (например, bcrypt). - Для аутентификации и генерации сессионных токенов применяеться JWT (JSON Web Tokens). - Реализованы RESTful API эндпоинты для выполнения различных операций, таких как регистрация, аутентификация, управление профилями, друзьями, публикациями и взаимодействие с контентом. - Реализован механизм пагинации для эффективной загрузки больших объемов данных, таких как список друзей и лента новостей.
Что представлял из себя сервис?
Социальная платформа представляет собой backend, разработанное для управления и обмена контентом между пользователями. Платформа предоставляет функционал для регистрации, аутентификации, создания и просмотра профилей, публикации постов, управления списком друзей, а также взаимодействия с контентом других пользователей.
Функциональные возможности: 1. Регистрация и аутентификация: Пользователи могут зарегистрироваться на платформе, предоставив уникальные регистрационные данные. Пароли хешируются для обеспечения безопасности. Зарегистрированные пользователи могут аутентифицироваться с использованием своих учетных данных.
2. Профили пользователей: Каждый пользователь имеет свой профиль, содержащий персональные данные. Пользователи могут получать доступ к своим профилям, а также просматривать профили других пользователей в зависимости от настроек приватности.
3. Управление друзьями: Пользователи могут добавлять других пользователей в список своих друзей, что позволяет им взаимодействовать с контентом друг друга. Доступ к контенту определяется настройками приватности профиля.
4. Публикация постов: Пользователи могут создавать и публиковать посты на платформе. Каждый пост имеет уникальный идентификатор и содержит контент пользователя, а также метаданные, такие как дата и время публикации.
5. Лента новостей: Пользователи могут просматривать ленту новостей, в которой отображаются их собственные посты, посты друзей и публичные посты других пользователей. Лента поддерживает пагинацию для удобства просмотра.
6. Лайки и дизлайки: Пользователи могут выражать свое отношение к постам, ставя лайки или дизлайки. Подсчитывается количество лайков и дизлайков для каждого поста, учитывая только последнюю реакцию каждого пользователя.