Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/light-hat/blog_platform
π ΠΠ»ΠΎΠ³-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π½Π° Django ΠΈ Vue.js
https://github.com/light-hat/blog_platform
blog django django-rest-framework docker docker-compose elasticsearch nginx postgresql python redis rest-api vuejs
Last synced: about 2 months ago
JSON representation
π ΠΠ»ΠΎΠ³-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π½Π° Django ΠΈ Vue.js
- Host: GitHub
- URL: https://github.com/light-hat/blog_platform
- Owner: light-hat
- License: mit
- Created: 2024-10-22T20:15:49.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-28T14:35:49.000Z (3 months ago)
- Last Synced: 2024-10-28T15:20:44.087Z (3 months ago)
- Topics: blog, django, django-rest-framework, docker, docker-compose, elasticsearch, nginx, postgresql, python, redis, rest-api, vuejs
- Homepage:
- Size: 122 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# π Django Blog Platform π
## π ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
`Django Blog Platform` β ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±Π»ΠΎΠ³-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ ΠΌΠΎΡΡ Django Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅ ΠΈ Vue.js Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅. ΠΡΠΎΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Redis, ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Elasticsearch, ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Ρ Grafana + Prometheus. ΠΡΡ ΡΡΠΎ ΡΠΎΠ±ΡΠ°Π½ΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Docker Compose. π³
## π§ ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
- **Django + DRF** β Π±ΡΠΊΠ΅Π½Π΄ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ π
- **Vue.js** β ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π½Π° JavaScript π¨
- **Redis** β ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ β‘οΈ
- **Elasticsearch** β ΠΌΠΎΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ π
- **Grafana + Prometheus** β ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ π
- **PostgreSQL** β Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ποΈ
- **Docker Compose** β ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ π## βοΈ Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- π **ΠΠΎΡΡΡ** β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠ³-ΠΏΠΎΡΡΠΎΠ²
- π¬ **ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ** β ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΊ ΠΏΠΎΡΡΠ°ΠΌ
- π·οΈ **Π’Π΅Π³ΠΈ ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ** β ΡΠ΄ΠΎΠ±Π½Π°Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
- π **ΠΠΎΠΈΡΠΊ** β ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡ Π½Π° Π±Π°Π·Π΅ Elasticsearch
- π¦ **ΠΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅** β ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Redis
- π **ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³** β ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Grafana ΠΈ Prometheus## π ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
1. ΠΠ»ΠΎΠ½ΠΈΡΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:
```bash
git clone https://github.com/light-hat/blog_platform.git
```2. Π‘ΠΎΠ±Π΅ΡΠΈ ΠΈ Π·Π°ΠΏΡΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅ΡΠ΅Π· Docker Compose:
```bash
docker-compose up -d --build
```3. ΠΡΠΊΡΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈ Π½Π° `http://localhost:8000/` π
## ποΈ Django Π°Π΄ΠΌΠΈΠ½ΠΊΠ°
ΠΡΠΎΠ΅ΠΊΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ `Django Admin`, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ (ΠΏΠΎΡΡΠ°ΠΌΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΡΠ΅Π³Π°ΠΌΠΈ ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌΠΈ) ΡΠ΅ΡΠ΅Π· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ.
- **ΠΠ΄ΡΠ΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ**: `http://localhost:8000/admin`
- **Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ**: ΠΡΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΡΡΡΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ:
+ ΠΠΎΠ³ΠΈΠ½: `admin`
+ ΠΠ°ΡΠΎΠ»Ρ: `admin`> β οΈ **ΠΠ°ΠΆΠ½ΠΎ! ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ°ΡΠΎΠ»Ρ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.**
- ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ:
+ Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠ³-ΠΏΠΎΡΡΠ°ΠΌΠΈ ΠΈ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ
+ Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌΠΈ ΠΈ ΡΠ΅Π³Π°ΠΌΠΈ
+ ΠΠΎΠ΄Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
+ ΠΠΎΠ»Π½ΡΠΉ CRUD-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°## π Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΊΠΎΠ΄Ρ Π΄Π»Ρ Π±ΡΠΊΠ΅Π½Π΄Π°
ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° Π² ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
**Π‘ΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°**
- π **Π‘ΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠΈΠ»Ρ Django**: Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄Π°, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎΠΌΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Django.
- π **Flake8**: ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ IDE Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ flake8 Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ.+ ΠΠ»Ρ ΡΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
```bash
cd src && flake8
```
- π **ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ**: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
- π **Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²**: Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ID Π·Π°Π΄Π°ΡΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, `refs #100500`).
- π **Docstrings**: ΠΠ°ΠΆΠ΄Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ docstring Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.**ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°**
- π‘ **KISS ΠΈ DRY**: ΠΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΠΉΡΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² _Keep It Simple, Stupid ΠΈ Don't Repeat Yourself_.
- π **ΠΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Django**: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Django Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
- π οΈ **Π‘Π΅ΡΠ²ΠΈΡΡ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ**: ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. ΠΡΠΈΠΌΠ΅ΡΡ: `UserCreator`, `OrderCreator`.+ ΠΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°Ρ β ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΡ .
- π **Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ **: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΡΠΈΠΏΠΎΠ² PEP-484 ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, `-> str`, `-> None`).
- π₯ **Manager ΠΌΠ΅ΡΠΎΠ΄Ρ**: ΠΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° (Manager) Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
- π« **Signals**: ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΠ½ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ.
- π **ΠΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ**: ΠΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· Django, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ l10n Π² ΠΊΠΎΠ΄Π΅ Python.## π ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ API
API Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ `/swagger/` ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ **Swagger**. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΡΠΎ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΡΠΎΠ½ΡΡΠ½Π΄ΠΎΠΌ. π
## π ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π°ΡΡΡΠΎΠ΅Π½ ΡΠ΅ΡΠ΅Π· **Grafana** ΠΈ **Prometheus**. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Grafana ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ `http://localhost:3000`. π―
## π οΈ Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
- Π€ΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ `frontend/` ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π½Π° **Vue.js**.
- ΠΡΠΊΠ΅Π½Π΄ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° **Django + DRF** ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΡΠ°ΠΌΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌΠΈ.
- ΠΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° ΡΠ΅ΡΠ΅Π· **Docker Compose**, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ.## π€ ΠΠΊΠ»Π°Π΄
ΠΡΠ΄Ρ ΡΠ°Π΄ Π»ΡΠ±ΠΎΠΌΡ Π²ΠΊΠ»Π°Π΄Ρ! ΠΡΠΊΡΡΠ²Π°ΠΉ issues, Π΄Π΅Π»Π°ΠΉ pull requests, ΠΎΠ±ΡΡΠΆΠ΄Π°ΠΉ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΉ ΠΈΠ΄Π΅ΠΈ. π
## π ΠΠΈΡΠ΅Π½Π·ΠΈΡ
ΠΡΠΎΠ΅ΠΊΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ! π