Полный стек: Backend — Django + DRF (Poetry, pyproject.toml), Frontend — React + Redux (Create React App).
Проект — модернизация Conduit (RealWorld). Включает: статьи, комментарии, теги, избранное, ленту, профили, кастомную аутентификацию (access/refresh tokens + refresh в cookie).
/ (root)
├─ backend/ # Django проект
│ ├─ manage.py
│ ├─ pyproject.toml
│ ├─ poetry.lock
│ ├─ .env.example
│ ├─ articles/
│ ├─ comments/
│ ├─ profiles/
│ ├─ tags/
│ ├─ myauth/
│ └─ core/
├─ frontend/ # React + Redux (CRA)
│ ├─ package.json
│ ├─ public/
│ └─ src/
└─ api/ # Postman collections
├─ Conduit.postman_collection.json
└─ conduit_new.postman_collection.json
В
backend/есть.env.example— используйте его как шаблон для локальной конфигурации.
- Python 3.12+
- Poetry
- Node.js (LTS) + npm
- (Опционально) PostgreSQL — для продакшена; по умолчанию можно использовать SQLite
# Клонируем репозиторий
git clone https://github.com/<you>/<repo>.git
cd <repo>
# Backend
cd backend
poetry install
cp .env.example .env # отредактируйте .env при необходимости
poetry run python manage.py migrate
poetry run python manage.py createsuperuser
poetry run python manage.py runserver 0.0.0.0:8000
# В другом терминале — Frontend
cd ../frontend
npm install
npm start # dev server, обычно http://localhost:4100После старта frontend ожидает API по http://localhost:8000/api. При необходимости поправьте frontend/src/agent.js (переменная API_ROOT).
Проект использует Poetry и pyproject.toml:
cd backend
poetry install
poetry shell # опциональноСкопируйте backend/.env.example в backend/.env и заполните значения. Пример минимального .env для разработки:
SECRET_KEY=dev-secret
DEBUG=True
DATABASE_URL=sqlite:///./db.sqlite3
CORS_ALLOWED_ORIGINS=http://localhost:4100
CORS_ALLOW_CREDENTIALS=True
ACCESS_TOKEN_LIFETIME=5m
REFRESH_TOKEN_LIFETIME=7d
Внимание: точные имена переменных зависят от реализации
settings.py— проверьтеbackend/conduit/settings.py.
poetry run python manage.py migrate
poetry run python manage.py createsuperuser
poetry run python manage.py runservercd frontend
npm install
npm startПроверьте frontend/src/agent.js (переменная API_ROOT) и при необходимости поменяйте URL на http://localhost:8000/api.
- Реализован refresh токена:
agentиспользуетwithCredentials()и endpoint/api/token/refresh/. - В некоторых местах фронтенд tolerant к разным названиям полей (например
tagsvstagList) — см. редьюсерыhome/articleList.
В папке /api/ находятся Postman коллекции для тестирования:
Conduit.postman_collection.jsonconduit_new.postman_collection.json
Используйте их для проверки endpoints: авторизация, статьи, комментарии, теги, избранное, профиль.