Giter VIP home page Giter VIP logo

messenger-system's Introduction

Messenger RESTful API

Серверная часть дипломной работы по теме "Разработка справочно-коммуникационной системы для пациентов стационара."

Стэк технологий

  • Java 11
  • Spring Boot
  • Spring Security (JWT)
  • Spring Data JPA
  • Spring Web
  • Swagger (OpenAPI 3.0)
  • Postgresql (+PostGis)
  • Docker
  • MapStruct
  • Lombok
  • Gradle

Deployment

Приложение задеплоено на heroku по адресу:

https://messenger-restful.herokuapp.com/messenger-system/swagger-ui/index.html

Сборка приложения

# Склонировать проект, либо просто скачать файл "docker-compose.yml"
git clone https://github.com/devalurum/messenger-system.git

# поднять контейнеры c PostgreSQL(+Postgis) и Spring Boot 
docker-compose up -d

Открыть в браузере Swagger: http://localhost:8080/messanger-system/swagger-ui/index.html

OpenAPI описание

  1. Откройте адрес в браузере http://localhost:8080/messanger-system/swagger-ui/index.html
  2. Выполните регистрацию пользователя http://localhost:8080/messenger-system/swagger-ui/index.html#/Authentication/register
  3. Скопируйте токен и авторизируетесь в Swagger UI. После чего token будет вставлен автоматически в запросы.
  4. pgAdmin (GUI для postgresql) http://localhost:5050
    1. login: [email protected]
    2. password: admin
      1. host: host.docker.internal (регистрация базы данных)
  • Поля time, id, sender при post/patch запросах к сущностям игнорируются, т.к генерируются на стороне сервера.
  • Формат времени в OpenAPI генерируются неправильно (пока не понятно как поменять паттерн), поэтому поля time лучше удалять при отправке запросов.

Todo:

  • Разобраться, почему не работает аннотация RolesAllowed в контроллерах.
  • Написать тесты. Попробовать Testcontainers либо H2Gis для тестирования репозиториев.
  • Разделить DTO на Requests и Responses (Возможно), для удаления невалидных полей при запросах.
  • Разобраться подробнее с маппингом DTO через MapStruct+Lombok.
  • Рефакторинг.

messenger-system's People

Contributors

devalurum 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.