Проект модуля #5

Менеджер задач

Java-разработчик

На практике узнаете про проектирование баз данных, связи между сущностями, Heroku (PaaS), ORM, Rollbar, Swagger, фреймворк Spring.

2-4
недели

Цель

Способность создавать с нуля полноценные сайты, используя современные технологии – то, ради чего приходят на Хекслет. 5-й проект подводит черту всего обучения и включает в себя все ключевые аспекты разработки сайтов, в том числе сборку (gradle) и деплой (heroku).

Большое внимание в этом проекте уделяется созданию сущностей с помощью ORM и описанию связей между ними (o2m, m2m). Студентам предстоит спроектировать модели и их отображение на базу данных. Благодаря этому появляется возможность повысить уровень абстракции и оперировать не сырыми данными, а связанными наборами объектов с удобным (семантическим) доступом к зависимым сущностям.

Для большего уровня автоматизации, в проекте используется ресурсный роутинг, который позволяет унифицировать и упростить работу с типичными CRUD–операциями. Так вырабатывается правильный взгляд на формирование урлов их связь друг с другом.

Как только на сайте появляются пользователи с возможностью что-то создать, тут же возникает авторизация. Авторизация – процесс выдачи прав на действия над ресурсами и контроля их выполнения. Она часто задействуется при попытке изменить запрещенные вещи, например, настройки чужого пользователя. Механизм авторизации это важная часть веб-приложения, которой уделяется значительное внимание в проекте.

Одна из важных и типовых задач при проектировании API – это фильтрация данных. При неправильном подходе эта задача превращается в большой комок запутанного кода. Проект позволяет отработать этот момент, используя правильный путь решения данной задачи.

Эксплуатация проекта не менее важна чем разработка. Разработчик должен быть уверен, что его код работает правильно, и для этого он пишет тесты. Но тесты не могут гарантировать 100% работоспособности, поэтому нужен механизм отслеживающий ошибки возникающие в продакшене и оповещающий о них. Эту задачу решают коллекторы ошибок, например, Rollbar. Подобный сервис собирает ошибки в режиме реального времени и отправляет информацию о них в любые возможные каналы, такие как слак или почта. Проект – хороший способ потренироваться интегрировать такой сервис.

Описание

Task Manager – система управления задачами, подобная http://www.redmine.org/. Она позволяет ставить задачи, назначать исполнителей и менять их статусы. Для работы с системой требуется регистрация и аутентификация.

Task Manager Менеджер задач Проект Хекслета Менеджер задач

Наставники

Аватар наставника Андрей Серов
Андрей Серов
Работает в IT сфере три года. Начинал свой путь с ручного тестирования. Но уже через месяц начал автоматизировать некоторые части регресса, используя язык Python. Затем перешел на другой проект, где основным стеком была Java, и Андрей с радостью перешел на нее. Сейчас пишет микросервисы на Java/Kotlin, используя фреймворк Spring.
Аватар наставника Антон Ефимов
Антон Ефимов
Более 9 лет опыта в разработке, в основном на Java. В последнее время также активно использует Golang. Работал как в больших энтерпрайз-компаниях, так и в небольших стартапах. Последние 4 года работает в Германии, в основном в финтех компаниях. Например Deutsche Boerse (немецкая биржа). В последнее время активно изучает DevOps, архитектуру приложений и сервисов.
Аватар наставника Мария Теплинская
Мария Теплинская
Java-разработчик с опытом 8 лет. Обучалась в МГУ им. Ломоносова по специальности «Прикладная математика и информатика». В компании NetCracker участвовала в более чем 10 различных проектах — успела попробовать различные архитектуры и технологии. В компании RedSys работала как инженер внедрения и запускала в production уже готовый программный продукт. В компании CBS Interactive разрабатывала более локальный проект в сфере трейдинга — Enterprise приложение, написанное с учетом всех современных технологий и подходов.
Аватар наставника Наталья Пономарева
Наталья Пономарева
Выпускница СПбгу по направлению «Математическое обеспечение и администрирование информационных систем». Училась в Computer Science Center, проходила курсы ШАДа. Работала Java/Kotlin разработчиком в крупнейшем банке в мире — Deutsche Bank.
Сколько стоят проекты?

Проекты входят в стоимость обучения на любом плане: самостоятельном, групповом и индивидуальном. Дополнительно платить не нужно.

Зачем проходить проекты?

Проекты дают опыт разработки в реальной среде. Проходите каждый проект сразу после изучения курсов, которые стоят в учебном плане перед ним, — это отличный способ глубже разобраться в материале.

Проекты — портфолио программиста. Их код останется в вашем аккаунте на GitHub и будет преимуществом при поиске работы.

Чтобы узнать о том, что такое проекты и в чём их польза, прочитайте нашу статью «Анатомия проектов Хекслета».

Что делать, если возникли трудности во время выполнения проекта?

Задавайте вопросы в разделе «Обсуждение» на странице шага, на котором возникли трудности, или вашему наставнику. Изучите вопросы других студентов в «Обсуждениях»: там собрана большая база знаний, ей можно и нужно пользоваться. Попросите о помощи в нашем Slack-чате в канале #hexlet-projects.

Кто проверяет проекты?

Автоматизированные тесты и линтер. В групповом и индивидуальном форматах наставник дополнительно проверит то, что тестами проверить невозможно (архитектуру проекта, правильность именования, удачность решений), и проведёт код-ревью, чтобы сделать проект ещё качественнее.

У меня другой вопрос

Нажмите на виджет в правом нижнем углу экрана и поищите ответ в нашей справке. Или сразу пишите на support@hexlet.io — вам ответит живой человек из команды Хекслета.