Перейти к содержанию

ЛР 11. Django Notes App

Тема: Разработка веб-приложения для управления заметками на Django (хакатон)

Репозиторий: github.com/l1234-tech/1_sem_hacaton_mast_syr

Цель работы

Разработать полнофункциональное веб-приложение для управления заметками с аутентификацией пользователей, используя фреймворк Django.

Задание

  • Реализовать регистрацию и аутентификацию пользователей.
  • CRUD-операции для заметок (создание, просмотр, редактирование, удаление).
  • Поиск и фильтрация заметок по тегам.
  • Адаптивный интерфейс на Bootstrap 5.
  • Защита от CSRF-атак.
  • Подготовка к развёртыванию на PythonAnywhere.

Технологический стек

Компонент Технология
Backend Django 4.2
Frontend HTML5, CSS3, JS, Bootstrap 5
База данных SQLite3
Сервер Gunicorn + WhiteNoise
Хостинг PythonAnywhere

Архитектура (MVT)

Модели: Note (заголовок, содержание, даты, автор), Tag — связь Many-to-One с пользователем.

Представления: NoteListView, NoteDetailView, NoteCreateView, NoteUpdateView, NoteDeleteView, CustomLoginView, note_search().

Шаблоны: base.html, note_list.html, note_detail.html, note_form.html, note_confirm_delete.html, login.html, register.html.

Структура проекта

project/
├── config/          # Настройки Django
├── notes/           # Основное приложение
├── static/          # CSS, JS
├── templates/       # HTML-шаблоны
├── manage.py
├── db.sqlite3
└── requirements.txt

Работа в команде

Проект разрабатывался в команде из двух человек (Мастеров, Сырчин) с использованием GitHub Flow:

  • Каждая функция — в отдельной ветке
  • Pull Request с ревью перед слиянием
  • Issues для отслеживания задач
  • Семантические коммиты

Распределение:

  • Сырчин: templates, manage.py, models, hosts
  • Мастеров: views, forms, urls, static, admin

Выводы

В ходе хакатона разработано полнофункциональное веб-приложение на Django с полным циклом: от проектирования моделей до развёртывания. Реализованы аутентификация, CRUD-операции, поиск, адаптивный UI. Освоена совместная работа через GitHub Flow с code review и issues.