Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workshop Website

Учебно-боевой проект по разработке сайта мастерской на Django + PostgreSQL + Django Templates + CSS + JS.

Проект ведётся в командном формате через GitHub Organization.

Наша цель — пройти реальный процесс командной разработки:

  • задачи (Issues)
  • ветки (Git)
  • Pull Request
  • Code Review
  • CI и качество кода

Стек проекта

Основной стек

  • Python
  • Django
  • Django Templates (HTML)
  • CSS
  • JavaScript
  • PostgreSQL

Инструменты качества

  • Git + GitHub
  • Ruff
  • Pytest + Pytest-Django
  • Pre-commit
  • GitHub Actions CI
  • uv

Как устроена работа над проектом

У нас есть 3 типа веток:

  • main — стабильная ветка проекта
  • dev — общая ветка разработки
  • feature/..., bug/..., chore/... — ваши рабочие ветки

Общая схема работы

  1. Берёте задачу из GitHub Project / Issues
  2. Обновляете локальную ветку dev
  3. Создаёте новую ветку от dev
  4. Делаете задачу
  5. Перед пушем запускаете локальные проверки
  6. Пушите ветку
  7. Создаёте Pull Request в dev
  8. После ревью и CI изменения попадают в dev
  9. Стабильные изменения из dev периодически мержатся в main

Важное правило

Нельзя пушить напрямую в main и dev.

Эти ветки защищены. Работаем только через отдельные ветки и Pull Request.


Как развернуть проект локально

1. Клонируем репозиторий

git clone <URL_репозитория>
cd workshop-website

2. Устанавливаем uv

Если uv ещё не установлен — вот инструкция https://docs.astral.sh/uv/getting-started/installation/.

3. Устанавливаем зависимости

uv sync --all-groups

Эта команда:

  • создаёт локальное окружение проекта;
  • устанавливает основные зависимости;
  • устанавливает dev-зависимости.

4. Устанавливаем pre-commit hooks

uv run pre-commit install

После этого перед каждым коммитом Git будет автоматически запускать быстрые проверки.


Основные команды проекта

Проверка линтера

uv run ruff check .

Автоформатирование

uv run ruff format .

Запуск тестов

uv run pytest

Полная проверка перед пушем (обязательно!)

uv run python scripts/check.py

Как работать с ветками

Переключитесь на dev

git checkout dev
git pull origin dev

Создайте свою ветку от dev

git checkout -b feature/nazvanie-zadachi

Префиксы веток:

  • feature/ — новая функциональность
  • bug/ — исправление ошибки
  • chore/ — технические задачи, настройка, инфраструктура

Как сделать commit

  1. Добавьте изменения git add .
  2. Сделайте commit
git commit -m "Add product card template"

Важно

Перед коммитом автоматически запустится pre-commit.

Если pre-commit исправит файлы, вам нужно сделать ещё раз:

git add .
git commit -m "..."

Как отправить изменения на GitHub

git push -u origin <имя_вашей_ветки>

Пример:

git push -u origin feature/product-card

После первого push можно будет использовать просто:

git push

Как сделать хороший Pull Request

  • PR решает одну задачу
  • Небольшой и понятный
  • Есть хорошее описание
  • Проходит scripts/check.py и CI
  • Base branch: dev

Если что-то не работает

Проверь ветку и попробуй:

uv sync --all-groups
uv run pre-commit install
uv run python scripts/check.py

При возникновении ошибки — сохрани текст и обратись к тимлиду или преподавателю.


Базовый flow

Разработчик

  • берёт задачу
  • делает ветку от dev
  • делает работу
  • создаёт PR

Reviewer

  • проверяет код
  • даёт правки
  • аппрувит

QA

  • проверяет поведение
  • заводит баги при необходимости

Что нельзя делать

Нельзя:

  • пушить напрямую в main
  • пушить напрямую в dev
  • работать без отдельной ветки
  • создавать PR без локальной проверки
  • игнорировать упавший CI
  • менять чужую ветку без согласования
  • смешивать несколько несвязанных задач в одном PR

Короткая памятка

Начало работы

git checkout dev
git pull origin dev
git checkout -b feature/my-task

Перед первым запуском (один раз)

uv sync --all-groups
uv run pre-commit install

Перед пушем

uv run python scripts/check.py

Если всё хорошо

git add .
git commit -m "Your commit message"
git push -u origin feature/my-task

После этого

  • создаёте PR в dev
  • ждёте CI
  • проходите ревью

Главная идея проекта

Наша задача — не просто “сделать сайт”, а научиться работать как команда разработки:

  • аккуратно;
  • предсказуемо;
  • через задачи;
  • через ветки;
  • через review;
  • через проверки качества.

Если процесс соблюдается, проект движется быстрее и стабильнее

About

Create a brand website that conveys the philosophy of craftsmanship and the aesthetic appeal of the combination of wood and metal

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages