Skip to content

Repository files navigation

socialMediaAPI

Test project for the Effective Mobile company

Реализованы API позволяющие пользователям:

  • регистрироваться в системе при помощи имени пользователя и пароля
  • выполнять вход в систему
  • добавлять посты с текстом и ссылкой на изображение
  • добавлять других пользователей в друзья и автоматически подписываться на ленту активности пользователя
  • подтверждать или отклонять дружбу
  • отменять заявку на добавление в друзья
  • получать ленту активности друзей, на которых пользователь подписан
  • администратор может просматривать информацию о пользователе
  • фдминистратор может удалить пользователя из системы

Програмные модели, реализованные в данном приложении:

user - пользователь, содержит уникальный номер (ID), уникальное имя пользователя, уникальный адрес электронной почты, пароль и статус

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

event - событие, содержит уникальный номер (ID), дату и время события, тип события, тип операции, идентификаторы пользователя и сущности к которой было применено данное событие

role - роль пользователя в системе, содержит уникальный номер (ID), имя и список пользователей

Для сохранения связи данных о пользователях и их роли в системе реализована дополнительная таблица user_roles.

Для сохранения дружбы пользователей реализована дополнительная таблица user_friends.

Аутентификация и авторизация пользователей в системе происходит с помощью SpringSecurity и использования JWT токенов

Для тестирования в приложение есть Postman коллекция, содержащая базовые тесты на все реализованные эндпойнты. Файл data.sql для обнуления данных при тестировании (при раскоментировании строки spring.sql.init.mode=always в application.properties).

UPDATE! Добавлено автоматическое тестирование Postman!

Спецификации API описаны в фйле api-docs.json

В дальнейшем планируется расширение функциональности и администрирования, добавление тестов и улучшение документации.

В приложении подключены зависимости: spring-boot-starter-web, spring-boot-starter-data-jpa, spring-boot-starter-validation, postgresql, lombok, spring-boot-starter-test, liquibase-core, springdoc-openapi-ui, jjwt, spring-boot-starter-security

Стек технологий: Java18, Spring Boot 2.7, Spring Security, Maven, PostgreSQL, Lombok, Spring JPA, REST, Hibernate, LiquiBase

Схема БД

plot

About

Test project for the Effective Mobile company

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages