Skip to content

forafox/greenatom-app

Repository files navigation

Приложение для форума/доски объявлений (только backend)

Разработан простой движок для форума или доски объявлений с функциональностью CRUD для топиков и сообщений. Топик содержит заголовок и одно или несколько сообщений, а сообщение включает в себя имя автора, текст и дату создания. Реализована авторизация и регистрация пользователей с использованием jwt-токенов. Движок обеспечивает хранение данных во встроенной базе данных (IMDB) и реализацию REST-API для выполнения следующих операций:

Авторизация и регистрация

  • Регистрация пользователя
  • Регистрация администратора
  • Авторизация пользователя
  • Обновление токена доступа

Client API

  • Создание топика с первым сообщением
  • Создание сообщения в топике
  • Обновление топика (Пользователь должен быть владельцем топика)
  • Обновление сообщения (Пользователь должен быть владельцем сообщения)
  • Удаление топика (Пользователь должен быть владельцем топика)
  • Удаление сообщения (Пользователь должен быть владельцем сообщения)
  • Получение списка всех топиков (без пагинации)
  • Получение списка топиков (Список определенного размера. Пагинация)
  • Получение списка всех сообщения в выбранном топике (без пагинации)
  • Получение списка сообщения в выбранном топике (Список определенного размера. Пагинация)
  • Получение информации о себе

Admin API

  • Обновление любого топика
  • Обновление любого сообщения в любом топике
  • Получение данных любого пользователя
  • Удаление любого топика
  • Удаление любого сообщения в любом топике

Стек

  • Java
  • Spring Boot
  • Gradle
  • H2 Database

Дополнительно

  • Реализована пагинация для топиков и сообщений.
  • Реализована аутентификация пользователей. (Используются Jwt-токены. Также реализованы refresh-токены).
  • Реализовано REST-API администратора. Администратор может редактировать и удалять любые сообщения и топики.
  • Unit тесты.
  • Скрипт по наполнению тестовыми данными. (Создается 15 топиков. Каждый имеет 5 сообщений. Пользователи-владельцы. топиков не создаются. Для тестирования создан суперюзер (см. Сборка)).

Особенности

  • Документация к API.(Интерактивная и api-example.yaml)
  • Для приложения разработана инструкция по сборке. Сборка выполняется с помощью Docker.
  • Присутствует файл .env. Представленные данные являются публичными и используются только! при тестировании.

Ссылки (Доступны во время работы приложения)

Сборка

Для сборки приложения необходимо выполнить следующие действия.

  1. Склонировать репозиторий:

    git clone https://github.com/forafox/greenatom-app
    cd greenatom-app
    
  2. Выполнить сборку проекта:

    ./gradlew bootJar
    
  • В случае возникновения ошибки "./gradlew: команда не найдена", выполните следующую команду:

    gradle wrapper --gradle-version 8.7 
    

    Повторите команду "./gradlew bootJar" из пункта 2.

  1. Выполнить build в директории приложения с помощью следующей команды:

    docker compose build 
    
  2. Для запуска приложения необходимо выполнить следующую команду:

    docker compose up
    
  • Пункты 3 и 4 можно объединить в следующую команду:

    docker compose up --build
    
  1. Можно начинать работу с приложением. Для работы создан суперюзер. Ниже представлены данные для входа под аккаунтом администратора.

    Для администратора:
      username: [email protected]
      password: JohnDoeAdmin
    

About

Application for a forum or bulletin board. Backend only

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published