Менеджер задач
На практике узнаете о проектировании баз данных, PaaS, Rollbar, ORM, фреймворке Django, шаблонизации и Bootstrap.
Цель
Способность создавать с нуля полноценные сайты, используя современные технологии – то, ради чего приходят на Хекслет. Четвертый проект подводит черту всего обучения и включает в себя все ключевые аспекты разработки сайтов.
Большое внимание в этом проекте мы уделим созданию сущностей с помощью ORM и описанию связей между ними (o2m, m2m). Вам предстоит спроектировать модели и их отображение на базу данных. Благодаря этому появляется возможность повысить уровень абстракции и оперировать не сырыми данными, а связанными наборами объектов с удобным семантическим доступом к зависимым сущностям.
Для большего уровня автоматизации в проекте используется ресурсный роутинг, который позволяет унифицировать и упростить работу с типичными CRUD–операциями. Так вырабатывается правильный взгляд на формирование URL-адресов и их связь друг с другом.
CRUD-операции тесно связаны с формами, которые используются для создания и редактирования сущностей. По умолчанию Django предоставляет очень хорошую поддержку форм, что позволяет ускорить генерацию форм и вывод ошибок для них.
Как только на сайте появляются пользователи с возможностью что-то создать, тут же возникает авторизация – выдача прав на действия над ресурсами и контроль этих действий. Авторизация часто задействуется при попытке изменить запрещенные вещи — например, настройки чужого пользователя. Механизм авторизации в Django встроен в сам фреймворк, настолько это важная вещь. В проекте авторизация отрабатывается на 100%.
Одна из важных и типовых задач в веб-разработке – создание форм для фильтрации данных. При неправильном подходе эта задача превращается в большой блок запутанного кода. Проект позволяет отработать этот момент, используя удобные библиотеки, которые показывают правильный путь решения данной задачи.
Эксплуатация проекта не менее важна, чем разработка. Разработчик должен быть уверен, что его код работает правильно. Для этого он пишет тесты. Но даже тесты не могут гарантировать 100% работоспособности, поэтому нужен механизм, которые отслеживает ошибки в продакшене и оповещает о них. Эту задачу решают коллекторы ошибок — например, Rollbar. Подобный сервис собирает ошибки в режиме реального времени и отправляет информацию о них в Slack, на почту или в любые другие каналы. Этот проект – хороший способ потренироваться интегрировать такой сервис.
Описание
Task Manager – система управления задачами, подобная http://www.redmine.org/. Она позволяет ставить задачи, назначать исполнителей и менять их статусы. Для работы с системой требуется регистрация и аутентификация:
Менеджер задач
Проекты входят в стоимость обучения на любом плане: самостоятельном, групповом и индивидуальном. Дополнительно платить не нужно.
Проекты дают опыт разработки в реальной среде. Проходите каждый проект сразу после изучения курсов, которые стоят в учебном плане перед ним, — это отличный способ глубже разобраться в материале.
Проекты — портфолио программиста. Их код останется в вашем аккаунте на GitHub и будет преимуществом при поиске работы.
Чтобы узнать о том, что такое проекты и в чём их польза, прочитайте нашу статью «Анатомия проектов Хекслета».
Задавайте вопросы в разделе «Обсуждение» на странице шага, на котором возникли трудности, или вашему наставнику. Изучите вопросы других студентов в «Обсуждениях»: там собрана большая база знаний, ей можно и нужно пользоваться.
Автоматизированные тесты и линтер. В групповом и индивидуальном форматах наставник дополнительно проверит то, что тестами проверить невозможно (архитектуру проекта, правильность именования, удачность решений), и проведёт код-ревью, чтобы сделать проект ещё качественнее.
Нажмите на виджет в правом нижнем углу экрана и поищите ответ в нашей справке. Или сразу пишите на support@hexlet.io — вам ответит живой человек из команды Хекслета.