https://github.com/bbb1991/innopolis_hw2
Repo for homework 2 by Java course.
https://github.com/bbb1991/innopolis_hw2
Last synced: 18 days ago
JSON representation
Repo for homework 2 by Java course.
- Host: GitHub
- URL: https://github.com/bbb1991/innopolis_hw2
- Owner: bbb1991
- License: mit
- Created: 2016-11-16T18:58:20.000Z (over 9 years ago)
- Default Branch: hibernate
- Last Pushed: 2016-12-25T22:09:25.000Z (over 9 years ago)
- Last Synced: 2025-02-23T01:44:59.498Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 459 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#Домашнее задание №2
##Вариант 1.d. Электронная библиотека
##Задания, текущий ход исполнения
1. [ ] Сделать UML диаграммы:
- [x] Use case diagram
- [ ] Sequence diagram
2. [x] Набросать примерную реализацию, познакомиться с сервлетами
3. [x] Создать рабочий прототип с использованием сервлетов, JSP, JDBC
4. [x] Замена JavaEE на Spring.
5. [x] Замена JDBC на Hibernate.
6. [x] Добавление Spring Security к проекту
##Общие сведения
Документ описывает требования к разрабатываемой информационной системе **Электронная библиотека**.
##Основная цель системы
Цель системы предоставление в открытый доступ ресурсов. Главное требование к ресурсам - публикация с открытой лицензией (предпочтительно в [Creative Commons](http://creativecommons.ru/licenses))
##Термины и сокращения
| Наименование | Расшифровка |
|--------------|-------------|
| Администратор | Пользовтаель с повышенными привелегиями в системе |
| Читатель/Автор | Зарегистрированный в системе пользователь |
| Гость | Незарегистрированный в системе пользователь |
| БД | База данных |
##Описание сценариев использования
Сценарий использования показана на рисунке ниже:

##Функциональные требования к системе
ФТ1. Система должна позволять осуществлять следующий набор действий с книгами:
- Просмотр списка книг;
- Сортировка книг по дате, по популярности, по автору;
- Добавление новых книг;
- Удаление книг;
- Добавление рецензий/комментария;
- Чтение книги;
ФТ2. Система должна позволять осуществлять следующий набор действий с пользователями:
- Создание нового пользователя;
- Удаление пользователя;
- Блокирование пользователя;
- Разблокировка заблокированного пользователя;
##Функциональные роли системы
**Гость** - пользователь с минимальными правами. Может просматривать список книг, пользоваться поиском а так же читать описание книги и рецензий читателей.
**Читатель/Автор** - пользователь со стандартными правами. Имеет все права гостя, плюс может читать книги, оставлять отзывы, а так же оставлять жалобу. К тому же имеет право на добавление ресурсов, редактирование и удаление собственных ресурсов.
**Администратор** - пользователь с особыми привелегиями. Имеет привелегию гостя и читателя. Плюс ко всему имеет право блокировать пользователей и удалять спорный ресурс.
##Срок исполнения
ETA: ~6 недель.
##План-график реализации системы
| Наименование релиза | Срок | Состав |
|---------------------|------|--------|
| 0.0.1 | до 21 ноября 2016 | Составление ТЗ, UML схемы |
| 0.0.2 | до 25 ноября 2016 | Сервлеты, JSP, работа с замечаниями |
| 0.0.3 | до 03 декабря 2016 | DI, IoC |
| 0.0.4 | до 09 декабря 2016 | Spring Security, Hibernate |
##Общие требования к решениям:
- Стойкость к высоким нагрузкам;
- Отказоустойчивость;
- Логгирование состояний (разные уровни – как минимум дебаг, ошибки);
- Покрытие публичных методов модульными тестами;
- Javadoc’и;
- Корректное разбиение на версии и релизы;
- Наличие web-интерфейса (минимум jsp + html);
- Наличие RESTful API;
##Используемые стек технологий:
- ***Java 8*** - язык программирования
- ***Jetty*** - веб сервер
- ***PostgreSQL*** - БД
- ***slf4j (log4j)*** - библиотека логгирования
- ***Bootstrap*** - фронтенд
- ***JUnit 4*** - фреймворк юнит тестировния
- ***Mockito*** - фреймворк mock тестирования
- ***Gradle*** - система сборки
- ***Spring MVC***
- ***Spring Security***
- ***Hibernate***
- ***Apache Tiles*** - шаблонизатор
##Допущения и ограничения
- Требования к эстетическому виду и эргономичности пользовательского интерфейса не выдвигаются