Giter Site home page Giter Site logo

mysticplacesmap's Introduction

Mystery Guide Backend

Mystery Guide - сервис, позволяющий пользователям делиться и обсуждать интересные таинственные места, тем самым способствуя развитию мистического туризма в регионах России.

Данный репозиторий содержит REST API сервиса Mystery Guide.

Репозиторий с frontend находится по ссылке.

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

  • Java 21
  • Spring Framework (Spring Boot, Spring Security, Spring Data JPA, Spring Web)
  • PostgreSQL
  • Liquibase
  • Testcontainers, JUnit, Mockito
  • AWS SDK, Yandex Object Storage
  • Swagger
  • Docker - контейнеры, образы, volumes, написание Dockerfile, Docker Compose
  • Lombok
  • Maven

Реализованный функционал

  • Сервис поддерживает аутентификацию и авторизацию пользователей по логину и паролю.
  • Доступ к API аутентифицирован с помощью JWT токена.
  • Пользователи могут добавлять в систему мистические места, а также управлять ими в последствии.
  • Пользователи могут просматривать мистические места, добавленные другими пользователями, добавлять к ним фото, выставлять оценку.
  • К местам, добавленым в систему, можно оставлять комментарии с вложениями.
  • API позволяет получать список мистических мест с различными фильтрами (по тегам, рейтингу, пользователю, пагинацией).
  • Реализована интеграция с Yandex Object Storage для хранения вложений.
  • Сервис корректно обрабатывает ошибки и возвращает понятные сообщения, а также валидирует входящие данные.
  • Сервис задокументирован и настроен Swagger UI.
  • База данных поднимает с помощью скриптов миграции Liquibase.
  • Дев среда поднимается с помощью docker compose.
  • Написаны юнит тесты для проверки основных функций системы.
  • Написаны интеграционные тесты с помощью Testcontainers для провреки системы в целом.

Инструкция по запуску проекта на локальном компьютере

  • Установить Docker на локальную машину
  • Склонировать репозиторий
git clone https://github.com/lordphiluren/mysticplacesmap
  • Запустить приложение
docker-compose up

Возможности улучшить функционал

  • Реализация админской части сервиса
  • Добавление кеширования
  • Оптимизация запросов к БД

mysticplacesmap's People

Contributors

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