Streamify – это серверная часть новостного сервиса, вдохновленного функционалом "ВКонтакте" и др. популярных сервисов. Проект реализует возможности подписок, репостов, лайков, комментариев и отображения ленты новостей.
- Регистрация и аутентификация пользователей (JWT)
- Подписка и отписка на пользователей
- Создание постов с медиафайлами
- Репосты публикаций
- Лайки и комментарии к постам
- Уведомления о действиях пользователей
- Новостная лента с сортировкой по дате и популярности
Backend: Java 21, Spring Boot, Docker
- Database: PostgreSQL
- Security: JWT, Spring Security
- ORM: Spring Data JPA, Spring Data JDBC
- API Documentation: Swagger/OpenAPI
- Dependency Management: Lombok
- REST Framework: Spring MVC, OpenFeign
- XML Support: JAXB API
- SSH Support: JSch
POST /api/auth/register– Регистрация пользователяPOST /api/auth/login– Аутентификация и получение JWT
GET /api/users/{id}– Просмотр профиляPOST /api/users/{id}/follow– ПодпискаPOST /api/users/{id}/unfollow– Отписка
POST /api/posts– Создать постPOST /api/posts/{id}/repost– РепостGET /api/posts/{id}– Получить постDELETE /api/posts/{id}– Удалить пост
POST /api/posts/{id}/like– Поставить лайкDELETE /api/posts/{id}/like– Удалить лайкPOST /api/posts/{id}/comments– Добавить комментарийDELETE /api/comments/{id}– Удалить комментарий
GET /api/notifications– Получить список уведомлений
GET /api/feed– Получить ленту новостей
Вот обновленная версия с добавлением информации о запуске проекта через Docker Compose:
git clone https://github.com/Maxim2710/Streamify.git
cd Streamifymvn spring-boot:runПосле успешного запуска API будет доступно по адресу http://localhost:8080.
- Убедитесь, что у вас установлен Docker и Docker Compose.
- Запустите команду:
docker-compose up -d
- После успешного запуска API будет доступно по адресу
http://localhost:8080.
Проект включает Swagger-документацию, доступную по адресу:
http://localhost:8080/swagger-ui.html
Для тестирования API можно использовать Postman или cURL.
📧 Если у вас есть вопросы или предложения, свяжитесь со мной:
- GitHub: Maxim2710
- Email: pm2710@mail.ru