Skip to content

marchuk-engineer/company-restful

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SWAGGER API: https://app.swaggerhub.com/apis-docs/MISHAAKAMICHAEL999/smida-api-restful/1.0

Test coverage:

image

Проект використовує environment змінні! ДОДАЙТЕ ВАШІ ЗНАЧЕННЯ В ФАЙЛ .env Файл розташований у папці проекту

Ендпоінти для реєстрації, входу та виходу дозволені для всіх, інші потребують аутентифікації

Реєстрація, Вхід та Вихід: Дозволені для всіх користувачів. Інші ендпоінти вимагають аутентифікації.

Read: User, Editor, Admin Write: Editor, Admin Delete: Admin

Використовуйте наступних вже зареєстрованих користувачів:

АДМІНІСТРАТОР: ім'я користувача: smida-admin, пароль: admin

РЕДАКТОР: ім'я користувача: smida-editor, пароль: editor

КОРИСТУВАЧ: ім'я користувача: smida-user, пароль: user

Як почати:
В Intellij Idea:
  1. Клонуйте проект.
  2. Запустіть тест
mvn test
  1. Запустіть сервер
mvn clean install -Dmaven.test.skip=true
Docker:

Клонуйте проект та запустіть compose.yaml

docker.exe compose -f compose.yaml  up 
Опис завдання:
  1. Створення структури бази даних: Використовувати PostgreSQL для зберігання основної інформації про компанії та їх звіти. Використовувати MongoDB для зберігання детальної інформації про звіти (наприклад, детальні фінансові показники).

  2. Сутності: Компанія (Company): id (UUID) name (String) registration_number (String) address (String) created_at (Timestamp) Звіт (Report): id (UUID) company_id (UUID, зовнішній ключ на компанію) report_date (Timestamp) total_revenue (Decimal) net_profit (Decimal) Деталі звіту (ReportDetails) у MongoDB: report_id (UUID, зовнішній ключ на звіт) financial_data (JSON) comments (String)

  3. Вимоги до функціональності: Реалізувати CRUD операції для компаній та їх звітів. Реалізувати ендпоінт для отримання всіх звітів конкретної компанії. Реалізувати ендпоінт для отримання детальної інформації про звіт. Забезпечити міграції бази даних за допомогою Liquibase. Запакувати сервіс у Docker-контейнер для легкого розгортання. Реалізувати аутентифікацію та авторизацію за допомогою Spring Security.

  4. Технології: Java 8 -11 Spring Spring Data JPA Hibernate Spring Data MongoDB Liquibase Spring Security Docker PostgreSQL MongoDB

  5. Технічні деталі: Проект повинен бути виконаний у вигляді Maven проекту. Написати базові unit та integration тести для основних операцій. Використовувати Spring MVC для створення RESTful веб-сервісів. Конфігурації бази даних повинні бути винесені в application.properties або application.yml. Забезпечити Dockerfile для створення Docker-образу. Забезпечити docker-compose.yml для розгортання сервісу з усіма залежностями. Код повинен бути розміщений у публічному репозиторії на GitHub або GitLab з інструкцією по запуску.

  6. Критерії оцінки: Коректність реалізації CRUD операцій. Використання відповідних аннотацій та патернів Spring MVC. Якість та структура коду. Покриття коду тестами. Коректна робота міграцій Liquibase. Правильність конфігурації Dockerfile та docker-compose.yml. Реалізація аутентифікації та авторизації за допомогою Spring Security. Документація та коментарі у коді.

Термин виконання 5 днів.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages