drvicx / jdm-timesheet-cloud

Timesheet 2.0 Spring Cloud project with microservices
0 stars 0 forks source link

jdm-timesheet-cloud

Timesheet 2.0 - Spring Cloud Timesheet project with microservices

=ЛОКАЛЬНЫЕ ССЫЛКИ

  1. Дамп основной БД HSQLDB (v1.0) - для основных сервисов
  2. Дамп БД HSQLDB (v2.0) - для сервиса "service-timesheet"
  3. Демонстрационные скриншоты rest-сервисов на разных этапах

=CHANGE LOG
*new at the beginning

13: 20211213_2240:

- для сервиса SERVICE-TIMESHEET реализован новый Метод и ендпоинт findAll - поиск всех User (см. ендпоинт 2.02);

12: 20211207_2300:

- для сервиса SERVICE-TIMESHEET создана новая HSQL БД "timesheet-udm" с новой структурой таблицы USER
  (отдельная БД была создана для максимального сходства моделей с проектом курса на Udemy);
- в таблицу ORGDATA добавлены новые поля для хранения ссылок на логотипы организации (LOGO1,LOGO2);
- изменена модель данных для сущности User сервиса SERVICE-TIMESHEET;
- изменена модель данных для сущности Orgdata сервиса SERVICE-TIMESHEET;
  (см. скриншоты с JSON-ответами)

11: 20211204_2040:

- найдена и исправлена проблема:
  в JSON-ответе для Сущности Timedata НЕ отображалось поле "userId" которое было задействовано в ManyToOne связи;

10: 20211201_1750:

- укорочены URL-ы для работы с основными сервисами - убраны префиксы сервисов /timedata, /user, /orgdata;
- обновлен дамп основной БД HSQL (v1.0) - обезличены персональные данные (фиктивные имена) + добавлены поля со ссылками на фото сотрудника и портфолио;
- создан доп. сервис "service-timesheet" который делает выборку из всех таблиц БД (Spring Data REST);
- для сервиса "service-timesheet" создана конфигурация включающая отображение полей идентификаторов в JSON-ответе (expose IDs);
- сервис "service-timesheet" временно переведен в режим работы "read-only" (запрещены HTTP-методы: POST,PUT,DELETE);
- в сервисе "service-timesheet" настроена реляционная связь OneToMany -- ManyToOne между Сущностями User и Timedata позволяющая выполнять кросс-запросы (см. ендпоинты 4.01, 4.02);
- в планах создание второй БД HSQL для сервиса (v2.0) "service-timesheet" с полями содержащими ссылки на фото сотрудника и соц.сеть;

09: 20211021_1600:

- проведена оптимизация Контроллера Сервиса Timedata (TimedataRestController): проверка данных перенесена на сервисный слой (TimedataServiceImpl);
- проведена оптимизация Контроллера Сервиса User (UserRestController): проверка данных перенесена на сервисный слой (UserServiceImpl);
- проведена оптимизация Контроллера Сервиса Orgdata (OrgdataRestController): проверка данных перенесена на сервисный слой (OrgdataServiceImpl);
- для всех сервисов реализован вывод предустановленных данных в случае отсутствия запрашиваемых данных в БД (см.примеры ниже);
- обновлен скрипт формирования БД HSQL (расположен в каталоге "_database/hsqldb-2.5.1/hsqldb");

08: 20210915_1820:

- в контроллер Сервиса Timedata добавлены новые Методы для обработки GET-запросов возвращающих предустановленные данные:
  - добавлен метод "getTimedataByYearAndMonth" - получение данных по Году и Месяцу;
  - добавлен метод "getTimedataByUserIdYearMonth" - получение данных по ID Сотрудника, Году и Месяцу;
    (см. ссылки в разделе "Available endpoints (local)", пункты 2.07, 2.08);            
- если при выполнении GET-запроса в базе данных отсутствуют записи с указанными параметрами,
  возвращаются некоторые предустановленные значения в виде JSON-ответа:
  - в поле "id" генерируется временный ID записи,
  - в поле "userID" ID сотрудника остается прежним,
  - в поле "date" дата генерируется по сетке указанного в запросе Года и Месяца,
  - в поле "hour" отработанное время устанавливается в 0 для всех записей,
  - в поле "type" тип записи устанавливается как "нд" (нет данных);
  !предустановленные данные при этом НЕ сохраняются в базу т.к инициатором сохранения будет выступать фронтенд;

07: 20210622_1220:

- переработана таблица USER в БД Timesheet: добавлены новые поля, старые переименованы;
- в контроллере Сервиса User изменены имена GET-эндпоинтов (сокращены названия с getall на all, c getsingle на id);
- в контроллере Сервиса User добавлен Метод getUserByPersonalNumber();
- в контроллере Сервиса Timedata изменены имена GET-эндпоинтов (сокращены названия с getall на all, c getsingle на id);
- в контроллере Сервиса Timedata добавлены Методы getTimedataByUserId(), getTimedataByDate(), getTimedataByUserIdAndDate();
- создана таблица ORGDATA в БД Timesheet;
- реализован Сервис Orgdata для хранения общих сведений об организации;
- с помощью компонента Swagger UI протестированы все CRUD операции сервисов User, Timedata и Orgdata;

06: 20210614_2320:

- исправлена CORS-ошибка возникающая на стороне Angular REST-Клиента при доступе к ендпоинтам User и Timedata сервисов;
- добавлена @crossorigin аннотация к контроллерам "UserRestContoller" и "TimedataRestController";

05: 20210611_1800:

- для сервисов User и Timedata реализована REST-спецификация Swagger/OpenAPI;
- теперь все ендпоинты сервисов описаны в разделе "Swagger UI" (см.ссылки ниже);
- описание ошибок и способов их решения вынесены в файл "README_BUGS.md";
- найдена и исправлена ошибка с доступом к ендпоинтам Сервисов через Zuul из Swagger UI;
- в конфигурации Zuul изменен URL для доступа к сервисам.
--было:
  http://localhost:9002/service-user/api/users/getall
--стало:
  http://localhost:9002/api/service-user/users/getall

04: 20210602_1400:

- добавлен модуль "service-timedata" для реализации REST-сервиса работы с таблицей "TIMEDATA";
- реализован весь стандартный REST-CRUD функционал;
- проверена работа всех операций с помощью инструмента "Insomnia";

03: 20210531_1450:

- произведен рефакторинг: реализация приложения переведена на Spring Data JPA;
- добавлен способ конфигурирования множественных DataSource;
- добавлен корневой раздел /api для основного приложения "service-user";
- для каждого ендпоинта реализующего CRUD операции добавлен свой алиас (см.ниже);
- проверена работа всех REST-CRUD операций с помощью инструмента "Insomnia";

02: 20210521_1705:

- добавлен модуль "service-user" для реализации REST-сервиса работы с таблицей "USER";
- добавлены необходимые зависимости для подключения к in-memory СУБД HSQLDB;
- добавлен каталог "_database" со скриптами управления СУБД и файлами БД "Timesheet";
- реализована логика выборки единичной записи по ID из таблицы "USER";
- настроена конфигурация клиента для регистрации в регистре Service Discovery сервиса Eureka;
- проверена работа сервиса "service_user" через прокси-сервис Zuul;

01: 20210518_1930:

=INFO

=APP-PREVIEW

предпросмотр

предпросмотр

предпросмотр

предпросмотр

предпросмотр

предпросмотр