Приложение разработано во время прохождения технологической практики в университете.
Языки программирования: Java (backend), JS+HTML+CSS (frontend) Для разработки использовалась система сборки Gradle, так как по сравнению с двумя другими наиболее популярными (Maven и Ant) содержит ряд их преимуществ и при этом гибкость.
Проект разделён на логические модули, которые являются слоями (если говорить о Clean Architecture):
- domain является главным модулем, который не имеет зависимостей и содержит в себе так называемую бизнес-логику
- dal является модулем для доступа к данным (в данном случае для работы с СУБД MySQL). DAL - это аббревиатура от Data Access Layer
- фронтенд и логика его взаимодействия с бэкедом находится в модуле Theatraxity в папке src/main
- Lib - модуль, который содержит другие независимые подмодули (библиотеки):
- builder обрабатывает аннотацию @Builder на этапе компиляции с помощью изменения байткода, благодаря чему не нужно писать лишний boilerplate код (идея взята из библиотеки Lombok)
- dal содержит классы, интерфейсы, аннотации для работы с реляционными базами данных, при этом не реализуя доступ к конкретной из них (напоминает Hibernate)
- controller содержит вспомогательные классы и аннотации для создания контроллеров (который принимает запросы и посылает ответы от клиентов, то есть фронтенда) на основе сервлетов (Java Servlets) (идея из Spring)
- di (аббревиатура Dependency Injection) связывает модули друг с другом, основной аннотацией является @Inject (идея позаимствована в основном из библиотеки Dagger2)