https://github.com/rustamovakrom/blog-web-app
Real Blog Web Application(Django[ 🧠 ]) integrated almost all thinks which I know ℹ️
https://github.com/rustamovakrom/blog-web-app
css django html htmx-django javascript jwt-authentication python restframework restframework-simple-jwt rs256 rs256-jwt-deno security seo-optimization session-athentication
Last synced: about 1 month ago
JSON representation
Real Blog Web Application(Django[ 🧠 ]) integrated almost all thinks which I know ℹ️
- Host: GitHub
- URL: https://github.com/rustamovakrom/blog-web-app
- Owner: RustamovAkrom
- License: mit
- Created: 2024-02-13T13:22:32.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-08-22T22:33:26.000Z (10 months ago)
- Last Synced: 2025-10-25T06:45:40.334Z (8 months ago)
- Topics: css, django, html, htmx-django, javascript, jwt-authentication, python, restframework, restframework-simple-jwt, rs256, rs256-jwt-deno, security, seo-optimization, session-athentication
- Language: Python
- Homepage: https://rustamovakrom.github.io/Blog-Web-APP/
- Size: 7.59 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README

# ✨ Blog Web App
**Blog Web App** — это современное веб-приложение на **Django**, позволяющее создавать 📝, редактировать ✏️ и просматривать 👀 блог-посты с безопасной аутентификацией через **JWT-токены**.
---
## 🚀 Основные возможности
- 📝 **Создание постов**: авторизированные пользователи могут добавлять и редактировать свои посты.
- 👥 **Чтение постов**: все пользователи могут просматривать записи.
- 🔐 **Авторизация через JWT**: безопасная аутентификация с использованием Access и Refresh токенов (Algorithm **RS256**).
---
## 🛠️ Стек технологий
- **Backend**: Django, Django REST Framework
- **Аутентификация**: JWT (`djangorestframework-simplejwt`)
- **База данных**: PostgreSQL (или SQLite для локальной разработки)
- **Кэширование**: Django Cache (опционально 🚀 для ускорения работы)
---
## ⚡ Быстрый старт
### 📥 Клонирование репозитория
```bash
git clone https://github.com/RustamovAkrom/Blog-Web-APP.git
cd Blog-Web-APP
```
### 🐍 Настройка виртуального окружения
```bash
python -m venv venv
source venv/bin/activate # для Linux/macOS
venv\Scripts\activate # для Windows
```
### 📦 Установка зависимостей
```bash
pip install -r requirements.txt
```
### ⚙️ Настройка переменных окружения
Создайте файл `.env` в корне проекта и укажите настройки:
```bash
SECRET_KEY=
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
DJANGO_SETTINGS_MODULE=core.settings.development
PRIVATE_KEY_PATH=security_settings/private_key.pem
PUBLIC_KEY_PATH=security_settings/public_key.pem
DATABASE_ENVIRON=sqlite
DATABASE_NAME=
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_HOST=localhost
DATABASE_PORT=5432
ADMIN_USERNAME=admin
ADMIN_PASSWORD=password
ADMIN_EMAIL=admin@example.com
```
---
## 🔑 Генерация RSA-ключей
JWT с алгоритмом **RS256** требует приватный и публичный ключи.
👉 Подробная инструкция: [docs/generate-rsa-keys-for-simple-jwt.md](docs/generate-rsa-keys-for-simple-jwt.md)
---
### 📚 Применение миграций и создание суперпользователя
```bash
python manage.py migrate
python manage.py createadmin
```
### ▶️ Запуск сервера
```bash
python manage.py runserver
```
Теперь приложение доступно по адресу:
👉 `http://127.0.0.1:8000`
---
## 🔐 Аутентификация через JWT
После входа пользователь получает два токена:
- 🔑 **Access Token** — доступ к защищённым маршрутам
- ♻️ **Refresh Token** — обновление Access Token
Пример использования:
```http
Authorization: Bearer
```
---
## 📂 Структура проекта
- `apps/users` — управление пользователями и аутентификацией
- `apps/blog` — блог-посты
- `middleware` — JWT-middleware
- `settings` — настройки Django, базы данных и кэша
---
## ⚡ Кэширование
Для ускорения работы Blog App можно использовать кэширование JWT-токенов.
---
## 📜 Лицензия
Проект распространяется по лицензии **MIT License**.
---
## 📖 Документация
Подробная документация доступна здесь:
👉 [Documentation](https://rustamovakrom.github.io/Blog-Web-APP/)