Skip to content

Бэкенд сервис на Spring Boot для регистрации и погашения билетов

Notifications You must be signed in to change notification settings

Kseoni4/OpenTickets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenTickets

Проект - пример для использования при изучении Spring Framework. Представляет собой бэкенд сервис для регистрации и погашения билетов. В данном проекте использованы следующий технологический стэк:

  • Java в качестве языка программирования;
  • Spring Boot (контейнер сервлетов, реализация бизнес-логики);
  • Java Persistence API - для реализации ORM взаимодействия с базой данных;
  • Spring Security - авторизация и аутентификация пользователей, настройка безопасности для эндпоинтов;
  • JWT - для использования в качестве сессии пользователя.

Настройка проекта

Основные настройки проекта находятся в файле application.properties:

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/tickets_db
spring.datasource.username=user
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update

Для работы проекта требуется создать базу данных в СУБД PostgreSQL. Способы установки представленны в данном гайде.

Endpoints

Основные эндпоинты приложения:

Auth

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

[HTTP POST] /auth/register

Принимает JSON следующего формата:

{
    "email":"string",
    "password":"string"
}

Возвращает JSON в формате:

{
    "email": "string",
    "uuid": "UUID",
    "token": "string"
}

Авторизация пользователя

[HTTP POST] /auth/login

Принимает JSON следующего формата:

{
    "email":"string",
    "password":"string"
}

Возвращает JSON в формате:

{
    "email": "string",
    "token": "string"
}

В обоих случаях, возвращаемый токен надо включать в заголовки запросов к эндпоинтам для регистрации или погашения билетов. При этом, для погашения билетов привилегии пользователя должны быть админские.

При запуске приложения в базу данных вносятся два тестовых пользователя с правами USER и ADMIN соответственно, так же для первого пользователя создаётся тестовый билет.

JSON тело с привилегиями USER:

{
    "email":"greatoldfag@gmail.com",
    "password":"password"
}

JSON тело с привилегиями ADMIN:

{
    "email":"admin@gmail.com",
    "password":"password"
}

Tickets

Регистрация билета

[HTTP POST] /tickets/register

Принимает JSON в формате:

{
    "eventName":"string",
    "eventDate":"YYYY-MM-DD",
    "ticketType":"string",
    "emailOwner":"string"
}

Возвращает JSON:

{
    "eventName": "string",
    "ticketId": "UUID",
    "ownerEmail": "string",
    "eventDate": "YYYY-MM-DD"
}

Погашение билета (ADMIN only)

[HTTP POST] /tickets/redeem

Принимает JSON в формате:

{
    "ticketId":"UUID"
}

Возвращает JSON:

{
    "ticketId": "UUID",
    "eventName": "string",
    "eventDate": "YYYY-MM-DD",
    "ticketType": "string",
    "emailOwner": "string",
    "redeemed": "boolean"
}

Получить список всех зарегистрированных билетов (ADMIN only)

[HTTP GET] /tickets/

Возвращает JSON:

{
    "tickets": [
        {
            "ticketId": "string",
            "eventName": "string",
            "eventDate": "YYYY-MM-DD",
            "ticketType": "string",
            "emailOwner": "string",
            "redeemed": "boolean"
        }
    ]
}

About

Бэкенд сервис на Spring Boot для регистрации и погашения билетов

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages