Position: Junior Java Developer
Category: Java
English level: intermediate
Years of experience: 0.5


Development of the "Library" web application that supported the functionality:
The reader registers in the system and then has the opportunity to:
- search (by author/title);
- place an order for a Book from the Catalogue
An unregistered Reader cannot order a book.
For the catalog, implement the ability to sort books:
- by name;
- by author;
- by edition;
- by the date of publication.
The librarian issues a book to the reader for subscription or to the reading room.
The book is issued to the Reader for a certain period.
If the book is not returned within the specified period, the reader will be charged a fine.
The book can be present in the library in one or more copies.
The system keeps track of the available number of books.
Each user has a personal account,
  which displays the registration information as well as
1) for the reader:
- a list of books that are on the subscription and the date of possible return
(if the date is overdue, the amount of the fine is displayed);
2) for the librarian:
- list of readers' orders;
- list of readers and their subscriptions.
The system administrator has the following rights:
- adding/deleting a book, editing information about a book;
- creating/deleting a librarian;
- blocking / unblocking the user.
I used a database MySQL to access data.
The application was multilingual, the architecture followed the pattern MVC,
Used Apache Tomcat as a servlet container,
During development, I used sessions, filters, and listeners.
Authentication and authorization were implemented in the application
Implemented a library log4j usage event log into the project
Covered the application with unit tests.
Implemented page pagination mechanism, all fields were with data validation.
I used frameworks HTML, CSS (Bootstrap) for the interface