Coder Social home page Coder Social logo

loan-offers's Introduction

Сервис показа пользовательских предложений

Задача

  1. Реализовать сервис показа пользовательских предложений. Реализовать бд для хранения предложений и фиксации ответа клиента.

Доступные ответы:

  • отказался
  • принял
  • попросил озвучить позднее
  1. Не показывать повторно предложение, по которому получен ответ "отказ" или "принял", за исключением заново сгенерированного предложения.

  2. Реализовать глубину хранения предложений и ответов не более 6 месяцев, по которым был ответ "отказ" или "принял".

  3. Реализовать сервис генерации предложений, который будет генерировать каждый месяц преложение на оформление кредита.

Дополнительные условия.

  • если клиент ранее уже получал подобное предложение и принял его, то новое генерировать не ранее чем через 3 месяца.
  • если клиент отказался, то генерировать новое не ранее чем через 1 месяц.
  • не генерировать новое предложение, если клиент попросил озвучить предложение позже.

Технологический стек

  • java 17 и выше
  • spring boot
  • spring data
  • kafka
  • postgres

Дополнительные требования

  • микросервисная архитектура
  • реализовать систему авторизации

Реализация

На чем делался проект:

  • Windows 11.
  • Intellij IDEA Ultimate Version.
  • Java 17.

Фреймворки, библы и стороннее ПО, которые использовались в разработке:

  • Spring Boot.
  • Spring JPA/Hibernate.
  • Spring Web.
  • Spring Security.
  • Spring Thymeleaf.
  • Spring DevTools.
  • Lombok.
  • java-jwt (GroupID: com.auth0).
  • PostgreSql + pgAdmin.

Как запустить

  1. Должны быть установлены Maven, Java версии 17 и PostgreSql.
  2. Склонировать проект к себе на хост.
  3. Поменять в application.properties значения переменных на нужные: spring.datasource.url, spring.datasource.username и spring.datasource.password. Если потребуется, то можно еще добавить переменную, меняющая значение порта проекта: server.port (у меня по дефолту запускается на 8080).
  4. Зайти в проект и выполнить команду в терминале: mvn spring-boot:run.
  5. Проект запущен, базы данных автоматически созданы и заполнены тестовыми значениями.
  6. Теперь нам нужно выполнить запрос к апишке через Insomnia, Postman или что-нибудь другое (POST хост:порт/login), чтобы авторизироваться в приложении, иначе вас просто не впустят.
  7. Заранее были созданы две учетки с разными ролями (но ролевка тут для красоты). Возьмем, например, данные админской учетки и передадим их в виде json:

POST http://localhost:порт/login

{ "email": "[email protected]", "password": "test123" }

Добавить к запросу хедер Content-Type со значением application/json. Или можно не добавлять, если у вас он автоматически его подставляет.

  1. В ответе придет токен, ОБЯЗАТЕЛЬНО ЗАПОМИНАЕМ!!! или просто делаем копипаст в буфер обмена.
  2. Если пользуетесь Гугл Хромом, то ставим расширение ModHeader к себе в браузер. Какие аналоги есть в других браузерах - без понятия. Всю жизнь пользуюсь Хромом, поэтому не могу подсказать.
  3. Заходим в ModHeader, создаем хедер Authorization со значением: Bearer + знак пробела + ваш токен.
  4. Заходим в браузере на адрес хост:порт/main.
  5. Если все пункты соблюдены, то должно все работать :) Там можно уже и код смотреть, и дебажить его и т.д.

loan-offers's People

Contributors

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