π¬ ΠΠ½ΠΎΠ³ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΡΠΉ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΠΉ ΡΠ°ΠΉΡ Ρ ΡΠΎΡΠΌΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΈ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠ΅ΠΌΠΎ
Β·
Π‘ΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π½Π΄ΠΈΠ½Π³Π° Ρ ΡΠΎΡΠΌΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ. Π‘Π°ΠΉΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π°ΡΠ²ΠΊΠΈ, Π° Π²Π»Π°Π΄Π΅Π»ΡΡΡ β ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ Π½ΠΎΠ²ΡΡ Π·Π°ΠΊΠ°Π·Π°Ρ .
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠ°ΠΉΡΠ° (Desktop + Mobile, Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ Π΄Π΅ΠΌΠΎ):
ΠΠΈΠ·Π°ΠΉΠ½ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- ΠΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΠΎΡΡΡ: ΠΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΡΡΠΊΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΡΡΡΠ°Π½ΠΈΡ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ Π² Figma.
- ΠΠ΄Π°ΠΏΡΠΈΠ²Π½ΠΎΡΡΡ: ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° Π±Π°Π·Π΅ Bootstrap ΠΈ Bootstrap Icons Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ².
- Dark Mode: ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠ΅ΠΌΡ (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ + ΡΡΡΠ½ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ).
- UX/UI: ΠΠ»Π°Π²Π½ΡΠ΅ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅
- Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅: ΠΠ°ΡΠΈΡΠ° Π΄Π°Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΠΎΠ»Π΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (field-level encryption).
- ΠΠ°ΡΠΈΡΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ: Π‘ΡΡΠΎΠ³ΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ»Ρ
.env.
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
- ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ: ΠΠΎΠ»Π½Π°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· Docker, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 15 ΠΌΠΈΠ½ΡΡ.
- CI/CD Workflow: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ΡΠ΅Π· GitHub Actions ΠΈ SSH.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΈ: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΠ°
.webpΠΈ Π°Π΄Π°ΠΏΡΠΈΠ²Π½Π°Ρ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°. - Backend: Π‘Π²ΡΠ·ΠΊΠ° Django + Nginx Π΄Π»Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΈ Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
- ΠΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ°: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎ Π·Π°ΠΊΠ°Π·Π°Ρ ΡΠ΅ΡΠ΅Π· SMTP (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ β Mailjet).
ΠΡΠΎΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ:
-
FRONTEND:
-
BACKEND:
-
DATABASE:
-
VERSION CONTROL SYSTEM:
-
DEPLOYMENT:
-
WEB SERVER:
-
CI/CD:
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
PolimerBeton/
β
βββ .github/
β βββ workflows/
β βββ update_website_by_ssh.prod.yml # GitHub CI/CD ΡΡΠ΅Π½Π°ΡΠΈΠΉ: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠ° Π½Π° Ρ
ΠΎΡΡΠΈΠ½Π³Π΅ ΠΏΡΠΈ ΠΏΡΡΠ΅ Π² Π²Π΅ΡΠΊΡ `main`
β
βββ env/ # ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠ°ΠΉΠ»ΠΎΠ² .env Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² (dev, prod, staging)
β βββ .env.dev.template
β βββ .env.prod.db.template
β βββ .env.prod.proxy-companion.template
β βββ .env.prod.template
β βββ .env.staging.db.template
β βββ .env.staging.proxy-companion.template
β βββ .env.staging.template
β
βββ project/ # ΠΏΡΠΎΡΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
β βββ database/ # ΡΡ
Π΅ΠΌΠ° ΠΠ
β βββ design/ # ΠΌΠ°ΠΊΠ΅ΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π°
β βββ preview/ # ΠΏΡΠ΅Π²ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
β
βββ src/
β βββ apps/
β β βββ MainApp/ # ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django
β β β
β β βββ migrations/ # ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΠ
β β β
β β βββ static/ # ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² (Π±ΡΠ΄ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Ρ / ΡΠΎΠ±ΡΠ°Π½Ρ)
β β β βββ favicons/
β β β βββ images/
β β β βββ scss/
β β β βββ ts/
β β β
β β βββ templates/ # ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΡΡΠ°Π½ΠΈΡ
β β β β
β β β βββ email/
β β β β βββ message_template.html # ΡΠ°Π±Π»ΠΎΠ½ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΈΡΡΠΌΠ°
β β β β
β β β βββ MainApp/
β β β β βββ error.html
β β β β βββ index.html
β β β β βββ privacy.html
β β β β βββ success.html
β β β β
β β β βββ service/ # ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ
ΡΠΈΡΡΠ΅ΠΌ ΠΈ Π±ΠΎΡΠΎΠ²
β β β βββ robots.txt
β β β
β β βββ templatetags/ # ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ templateβΡΠ΅Π³ΠΈ
β β β
β β βββ __init__.py
β β βββ admin.py # ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°Π½Π΅Π»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°
β β βββ apps.py
β β βββ context_processors.py # Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡβΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π΄Π»Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²
β β βββ fields.py # ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΡΠΎΡΠΌ
β β βββ forms.py # ΠΊΠ»Π°ΡΡΡ ΡΠΎΡΠΌ
β β βββ models.py # ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΠ
β β βββ runners.py # ΡΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ
β β βββ sitemaps.py # ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ sitemap
β β βββ tasks.py # ΡΠΎΠ½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ
β β βββ tests.py # ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ
β β βββ urls.py # ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ URL Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
β β βββ utils.py # Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
β β βββ views.py # ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² (ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ)
β β
β βββ config/ # ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Django
β β β
β β βββ settings/
β β β βββ __init__.py
β β β βββ base.py # ΠΎΠ±ΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Django
β β β βββ dev.py # Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ / ΠΏΡΠ΅-ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°
β β β βββ prod.py # Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°
β β β
β β βββ __init__.py
β β βββ asgi.py
β β βββ urls.py
β β βββ wsgi.py
β β
β βββ locales/ # ΡΠ°ΠΉΠ»Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
β βββ scripts/ # ΡΠΎΡΠΊΠΈ Π²Ρ
ΠΎΠ΄Π° ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ
β β
β βββ .dockerignore
β βββ Dockerfile # ΡΠ±ΠΎΡΠΊΠ° Docker-ΠΎΠ±ΡΠ°Π·Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
β βββ Dockerfile.prod # ΡΠ±ΠΎΡΠΊΠ° Docker-ΠΎΠ±ΡΠ°Π·Π° Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°
β βββ manage.py # ΡΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Django
β βββ package-lock.json # ΡΠΈΠΊΡΠ°ΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Node.js
β βββ package.json # Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°
β βββ poetry.lock # ΡΠΈΠΊΡΠ°ΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Python
β βββ pyproject.toml # ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Python
β βββ tsconfig.json # Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ TypeScript
β
βββ web/ # ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²Π΅Π±βΡΠ΅ΡΠ²Π΅ΡΠ°
β β
β βββ apache/ # ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ Apache (Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ)
β β βββ .htaccess
β β
β βββ nginx/ # ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ nginx
β β βββ Dockerfile
β β βββ nginx.conf
β β
β βββ nginx-proxy/ # nginxβproxy (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ SSL / reverse proxy)
β β β
β β βββ vhost.d/
β β β βββ default
β β β
β β βββ .dockerignore
β β βββ custom.conf
β β βββ Dockerfile
β β βββ Dockerfile.prod
β β
β βββ templates/ # ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ dockerβgen (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ nginxβproxy)
β βββ docker-gen/
β
βββ .gitignore
βββ docker-compose.prod.selinux.yml
βββ docker-compose.prod.yml # Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°
βββ docker-compose.staging.yml # Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠ΅-ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π°
βββ docker-compose.yml # Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
βββ LICENSE
βββ README.ENG.md
βββ README.md
ΠΡΠΎΠ΅ΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ²:
Important
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½Π° Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΈ 2.0.4. ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡΡ Π²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ².
ΠΠ°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ: 1 ΠΌΠ°ΡΡΠ° 2026
(Π½Π°Π²Π΅ΡΡ )
Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΌ Π½ΠΈΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Docker ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Docker Compose. ΠΠ°ΡΠ΅ΠΌ ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ ZIP-Π°ΡΡ ΠΈΠ²Π° ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Git:
git clone https://github.com/aLeeTheY/PolimerBetonΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°Π»Π΅Π΅ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ env/ ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² .template. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ: development, staging ΠΈ production.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ production Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
cp .env.prod.template .env.prod
cp .env.prod.db.template .env.prod.db
cp .env.prod.proxy-companion.template .env.prod.proxy-companionΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
ΠΏΠ»Π΅ΠΉΡΡ
ΠΎΠ»Π΄Π΅ΡΡ Π²ΠΈΠ΄Π° <...>, Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° .env.prod.db:
| ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ | ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ |
|---|---|---|
POSTGRES_USER=<YOUR_DATABASE_USER> |
POSTGRES_USER=db_username_for_dummy_guys |
ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ |
POSTGRES_PASSWORD=<YOUR_DATABASE_PASSWORD> |
POSTGRES_PASSWORD=db_password_for_dummy_guys |
ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ |
POSTGRES_DB=polimerbeton_db_prod |
POSTGRES_DB=polimerbeton_db_prod |
ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ |
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (docker-compose.*.yml) ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²:
docker compose -f docker-compose.prod.yml up -d --buildΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Django:
docker exec -it polimerbeton-web python manage.py createsuperuserΠ‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ°Π³ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π·Π²ΡΡΠ½ΡΡΡΠΌ.
ΠΡΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΡΠ±ΠΎΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎ.
Caution
ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΈΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° Π²Π°Ρ ΡΡΡΠ°Ρ
ΠΈ ΡΠΈΡΠΊ!
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠ²ΠΎΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ
, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ.
ΠΡΠΈΡΡΠΈΡΠ΅ ΡΡΠ°ΡΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΈ ΠΊΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ°:
docker image prune
docker builder pruneΠ‘ΠΎΠ±Π΅ΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ web:
docker compose -f docker-compose.prod.yml build webΠ‘Π½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΎΡΠΈΡΡΠΊΡ:
docker image prune
docker builder pruneΠ‘ΠΎΠ±Π΅ΡΠΈΡΠ΅ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
docker compose -f docker-compose.prod.yml up -d(Π½Π°Π²Π΅ΡΡ )
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΠΏΠ° ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ (ΠΈΠ»ΠΈ Π½Π° localhost, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ).
ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ admin/:
https://your-domain/admin/
ΠΠ»Ρ Π²Ρ ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ superuser. ΠΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΅ΡΡ Π½Π΅ ΡΠΎΠ·Π΄Π°Π½, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅.
(Π½Π°Π²Π΅ΡΡ )
- ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²: ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ Django, PostgreSQL, Nginx ΠΈ Let's Encrypt Π² Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ Docker.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΠΏΠ»ΠΎΡ Django: CI/CD ΡΠΊΡΠΈΠΏΡ Π² GitHub Actions ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π²Π΅ΡΠΊΡ
mainΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Django Π±Π΅Π· Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ). - SEO ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ: ΠΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°ΡΠ΄ΠΈΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ HTML-ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ 100/100 Π±Π°Π»Π»ΠΎΠ² ΠΏΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ Accessibility ΠΈ SEO Π² Google Lighthouse.
- ΠΠΈΠ±ΠΊΠ°Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ: ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π» β SMTP; ΠΏΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ SMTP-ΠΏΠΎΡΡΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠ΅ΡΠ΅Π· Mailjet API ΠΏΠΎ HTTPS.
(Π½Π°Π²Π΅ΡΡ )
- UI/UX Π΄ΠΈΠ·Π°ΠΉΠ½: ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π² Figma, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π΄ΠΈΠ·Π°ΠΉΠ½-ΠΌΠ°ΠΊΠ΅ΡΠΎΠ² ΠΊ Π²Π΅ΡΡΡΠΊΠ΅, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°ΡΡΠ΅ΡΠΎΠ².
- Fullstack ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°: ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π² PostgreSQL, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° Django, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Sass, Bootstrap ΠΈ TypeScript.
- DevOps ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°: ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· Docker, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌΠΈ ΡΡΠ΅Π΄ (development/staging/production), Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
- Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Linux-ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Nginx ΠΈΠ»ΠΈ Apache Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΊΡΠΈ, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΡΠ΅ΡΠ΅Π· Let's Encrypt Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ: ΠΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ HTML, CSS ΠΈ JS Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
django-htmlminΠΈdjango-compressor, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ (LCP/FCP). - CI/CD: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ ΡΠ΅ΡΠ΅Π· GitHub Actions, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ SSH.
- ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ GitHub: ΠΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ README.md ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Markdown, Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅ΡΠ΅Π· Git.
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΈ ΡΠ±ΠΎΡΠΊΠ°: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Npm ΠΈ Poetry Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π²Π΅ΡΡΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ΅ΡΠ΅Π· lock-ΡΠ°ΠΉΠ»Ρ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
(Π½Π°Π²Π΅ΡΡ )
- ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π² Figma:
- ΠΠ»Π°Π²Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° (
index.html) - ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ (
privacy.html) - Π‘ΡΡΠ°Π½ΠΈΡΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ (
success.html) - Π‘ΡΡΠ°Π½ΠΈΡΠ° ΠΎΡΠΈΠ±ΠΊΠΈ (
error.html)
- ΠΠ»Π°Π²Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° (
- ΠΠ΄Π°ΠΏΡΠΈΠ²Π½Π°Ρ Π²Π΅ΡΡΡΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Bootstrap ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΡΠΌΠ½ΠΎΠΉ ΡΠ΅ΠΌΡ
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π²Π΅ΡΡΡΠΊΠΈ Π² ΡΠ°Π±Π»ΠΎΠ½Ρ Django
- ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠ Π² PostgreSQL (ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈ Π·Π°ΠΊΠ°Π·Ρ)
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π»ΠΎΠ³ΠΈΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ
django-adminΡ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½ΡΡ - Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΠΌ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
- Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ SMTP
- Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· Mailjet API
- ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π·Π°ΡΠΈΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ
- Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΠΈΠ΅ΠΌ (Cookie Consent)
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ (Google Analytics + Yandex Metrica) Ρ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Cookie
- ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Docker:
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠ΅Π΄ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ (
.env.dev,.env.staging,.env.prod) - ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² (Dockerfile ΠΈ Dockerfile.prod)
- ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² (Django, PostgreSQL, Let's Encrypt, Nginx) ΡΠ΅ΡΠ΅Π·
docker-compose
- ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠ΅Π΄ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ (
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ CI/CD ΡΠ΅ΡΠ΅Π· GitHub Actions:
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π²Π΅ΡΠΊΠΈ
main
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π²Π΅ΡΠΊΠΈ
- ΠΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ (i18n):
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° (English)
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Issues.
(Π½Π°Π²Π΅ΡΡ )
Copyright Β© 2025 aLeeTheY
ΠΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ MIT. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» LICENSE Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
(Π½Π°Π²Π΅ΡΡ )
GitHub: aLeeTheY
Email: aleethey@gmail.com
(Π½Π°Π²Π΅ΡΡ )
aLeeTheY Π²ΡΡΠ°ΠΆΠ°Π΅Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²:
- Figma
- Visual Studio Code
- Django
- Python
- Poetry
- Bootstrap
- Bootstrap Icons
- Sass
- TypeScript
- Node.js
- Npm
- PostgreSQL
- Let's Encrypt
- Docker
- Nginx
- Git
- GitHub
- GitHub Actions
- Mailjet
- Chocolatey
- FFmpeg
- gifsicle
- Chrome DevTools
- Lighthouse
ΠΠ΅Π· ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»Π° Π±Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.
(Π½Π°Π²Π΅ΡΡ )
