Skip to content

Latest commit

 

History

History
94 lines (88 loc) · 7.02 KB

ROADMAP3.md

File metadata and controls

94 lines (88 loc) · 7.02 KB

План 3

  1. Провести исследовательскую работу по log4j
  2. Переписать логику приложения с использованием log4j (R3.1 && R3.2)
  3. Создать объект DBWrapper (R3.9)
    1. Создать метод getUser(login): User Находит пользователя в коллекции и возвращает весь объект
    2. Создать метод getPermissions(login): List<Permission>
    3. Создать метод addActivity(activity)
  4. Переписать классы Authentication, Authorization и Accounting для работы с DBWrapper Они должны принимать DBWrapper в конструкторе и использовать его для получения данных в методах
  5. Провести исследовательскую работу по h2
  6. В DBWrapper создать метод dbExists(): Boolean
  7. В DBWrapper создать методы для инициализации базы данных
    1. connect(url, login, pass) - подключается к существующей базе данных
    2. init(users, permissions) - создаёт таблицу пользователей и разрешений, переносит туда данные из коллекций и сохраняет полученную базу данных в рабочей директории (R3.5 && R3.6)
  8. В бизнес логику добавить проверку на существование базы данных с помощью dbExists()
    • Если она существует вызвать connect(), необходимые параметры получить с помощью System.getenv() (R3.11)
    • Иначе init()
  9. Провести исследовательскую работу по PreparedStatement
  10. Модифицировать методы DBWrapper для работы с базой данных (R3.3) Доступ к базе данных должен осуществляться через PreparedStatement (R3.7 && R3.8)
  11. Добавить индескс в БД (R3.4)
  12. Удостовериться что существующий код удовлетворяет принципам SOLID, при необходимости переписать (R3.10)

Схема данных

Пользователи

id login salt hash
0 vasya iYqHUi2<2zPhrGIL8]?p8m;bteA?ETaT dc6a8709e9fc8de1acea34fdc98c842911686ca0c2a0b12127c512a5ed7ab382
1 admin olMMIDct3GkrY:?Xp1WDJOPTw2IY0a[ c6d6ced902fe90f039f168837f7ce3d313df040e071281317fc6781a60cac2bc
2 q TtVaKT?vkBlIrtbChI72yef7iWkLxkw4 50bba7d209a17a3c36a3df151276d233ca868bf3b518165a6510b8e8c0bc2b7a
3 abcdefghij TtVaKT?nUMXGQvmro8b5;AX7dLpwS_A4L;RH^_ 2c06d373cd2549c31d8c1758daaa7773a8b905e32eb430f566c4c391827db121

Разрешения

Внешний ключ - login

id res role login
0 A READ vasya
1 A.B.C WRITE vasya
2 A.B EXECUTE admin
3 A READ admin
4 A.B WRITE admin
5 A.B.C READ admin
6 B EXECUTE q
7 A.A.A EXECUTE vasya

Активность

Внешний ключ - login

id login res role ds de vol

Исследовательские задачи

  1. Log4j (1 час)
    1. Разобраться как работать с log4j (Документация) (1 час)
      • Как подключить библиотеку к проекту?
      • Как вывести сообщение в файл?
      • Как вывести ошибку и стек?
    2. Для проведения исследования мы прочитаем официальную документацию по log4j
    3. В результате исследовательской задачи мы научимся использовать библиотеку log4j и подключим её к проекту
  2. h2
    1. Разобраться как работать с h2 (Сайт) (2 часа)
      • Как подключить базу данных к программе?
      • Как отправлять запросы базе данных?
    2. Для проведения исследования мы прочитаем официальную документацию по h2
    3. В результате исследовательской задачи мы научимся использовать базу данных h2 и подключим её к проекту
  3. PreparedStatement
    1. Ознакомиться с PreparedStatement (Документация) (20 мин.)
      • Что это такое?
      • Как использовать их для создания запросов к БД?
    2. Для проведения исследования мы прочитаем официальную документацию по PreparedStatement
    3. В результате исследовательской задачи мы научимся использовать класс PreparedStatement

Оценка времени

Пункт плана Оценка времени Фактическое время Итого
1. 20
2. 20
3. 15
3.1. 5
3.2. 5
3.3. 5
4. 15
5. 20
6. 10
7. 30
7.1. 15
7.2. 15
8. 5
9. 20
10. 20
11. 10
12. 15