Giter VIP home page Giter VIP logo

trendchat's Introduction

TrendChat

Обзор

Сервис является RESTful API позволяющее пользователям отправлять сообщения друг другу(аналог мессенджера). Согласно ТЗ реализованы все основные требования, все дополнительные задания и почти все дополнительные требования(будет плюсом).

Cервис реализует (основные требования):

  • регистрация нового пользователя;

  • Вход пользователя в систему;

  • Выход пользователя из системы;

  • Обновление данных пользователя;

  • Обновление пароля пользователя;

  • Удаление аккаунта пользователя;

  • Отправление сообщений другому пользователю по его никнейму;

  • Просмотр истории общения с другим пользователем;

Cервис реализует (дополнительные задания):

  • Просмотр списка друзей;

  • Добавление другого пользователя в друзья;

  • Ограничение получения сообщений своим кругом друзей;

  • Просмотр списка друзей другого пользователя;

  • Скрывание списка друзей;

Cервис реализует (дополнительные требования):

  • использование базы данных (PostgreSQL или MongoDB) для хранения данных о пользователях и переписках между ними;

  • документирование запросов через Swagger;

Использованные технологии

  • Java 20

  • Spring Boot

  • Spring Web

  • Spring WebSockets

  • Spring Data Jpa

  • Spring Security

  • Spring Validation

  • Spring Mail

  • Postgresgl

  • Liquibase

  • Swagger

  • Mapstruct

  • Docker

  • Maven

Конфигурация

Для корректной работы приложения необходимо настроить Spring Mail. Для этого нужно передать environment параметры:

  • MAIL_HOST

  • MAIL_PORT

  • MAIL_USERNAME

  • MAIL_PASSWORD

  • STARTTLS_ENABLE

Запуск

Склонировать репозиторий, выполнив команду: git clone https://github.com/lofominhili/TrendChat.git

Добавить environment переменные в сервисе app файла compose.yaml.

Написать в терминале команду mvn clean package

Написать в терминале команду docker compose up

Endpoints

Все параметры на вход Rest-запросов и ответы этих запросов можно посмотреть в swagger

Регистрация нового пользователя

Post /sign-up


Вход пользователя в систему

Get /sign-in


Выход пользователя из системы

Post /sign-out


Обновление данных пользователя

Put /update-profile


Обновление пароля пользователя

Put /update-password


Удаление аккаунта пользователя

Post /deactivate-account


Отправление сообщений другому пользователю по его никнейму

`/chatroom/*`

Просмотр списка друзей

Get /get


Добавление другого пользователя в друзья

Post /add/{username}


Просмотр списка друзей другого пользователя

Get /get/{username}


Скрывание списка друзей

Post /hide

trendchat's People

Contributors

lofominhili avatar

Stargazers

Ivan 'w1ldy0uth' Shurygin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.