ΠΠΎΠΌΠ°ΡΠ½ΠΈΠΈ Π·Π°Π΄Π°Π½ΠΈΡ 3-5 Π»Π΅ΠΆΠ°Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ hw34
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ Task (Π·Π°Π΄Π°ΡΠ°), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ:
- ΠΏΠΎΠ»Π΅ title (ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ) ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°)
- ΠΏΠΎΠ»Π΅ state (Π‘ΡΠ°ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°):
- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ - in_progress (Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ) ΠΈ ready (Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°)
- ΠΏΠΎΠ»Π΅ estimate (Π‘ΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΡΠΈΠΏΠ° datetime.date (Π΄Π°ΡΠ°)
- ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π½Π° Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ»Ρ title ΠΈ estimate, ΠΏΠΎΠ»Π΅ state ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ in_progress
- Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΉ Π°ΡΡΠΈΠ±ΡΡ remaining (ΠΡΡΠ°Π»ΠΎΡΡ Π΄ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΊΠΎΠ²) ΡΠΈΠΏΠ° datetime.timedelta (ΡΠ°Π·Π½ΠΈΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ)
- ΡΠΎΡΠΌΡΠ»Π° - estimate ΠΌΠΈΠ½ΡΡ ΡΠ΅ΠΊΡΡΠ°Ρ Π΄Π°ΡΠ°, Π΅ΡΠ»ΠΈ state ΡΠ°Π²Π½ΠΎ in_progress, ΠΈΠ½Π°ΡΠ΅ Π½ΠΎΠ»Ρ
- Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΉ Π°ΡΡΠΈΠ±ΡΡ is_failed (ΠΠ°Π΄Π°ΡΠ° ΠΏΡΠΎΠ²Π°Π»Π΅Π½Π°) ΡΠΈΠΏΠ° bool (Π±ΡΠ»Π΅Π²ΡΠΉ ΡΠΈΠΏ)
- ΡΠΎΡΠΌΡΠ»Π° - Π΅ΡΠ»ΠΈ state ΡΠ°Π²Π½ΠΎ in_progress ΠΈ estimate ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΊΡΡΠ°Ρ Π΄Π°ΡΠ°
- ΠΌΠ΅ΡΠΎΠ΄ ready, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΌΠ΅Π½Ρ state Π½Π° ready
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ Roadmap (Π΄ΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ:
- ΠΏΠΎΠ»Π΅ tasks (Π·Π°Π΄Π°ΡΠΈ) ΡΠΈΠΏΠ° list (ΡΠΏΠΈΡΠΎΠΊ), Π³Π΄Π΅:
- ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° - ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Task
- ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) Π½Π° Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ»Π΅ tasks, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ
- Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠΉ Π°ΡΡΠΈΠ±ΡΡ today ΡΠΈΠΏΠ° list (ΡΠΏΠΈΡΠΎΠΊ)
- ΡΠΎΡΠΌΡΠ»Π° - Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ tasks, Π³Π΄Π΅ estimate ΡΠ°Π²Π½ΠΎ ΡΠ΅ΠΊΡΡΠ°Ρ Π΄Π°ΡΠ°
- ΠΌΠ΅ΡΠΎΠ΄ filter, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π½Π° Π²Ρ ΠΎΠ΄ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ state ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ tasks, Π³Π΄Π΅ task.state ΡΠ°Π²Π½ΠΎ state
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ wsgi-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅Π΅ ΡΠΏΠΈΡΠΎΠΊ ΠΊΡΠΈΡΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎΡΠ΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π·Π°Π΄Π°ΡΠΈ, Π΄ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΊΠ° ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠ΅Ρ Π΄Π½Π΅ΠΉ. CΠΏΠΈΡΠΎΠΊ Π·Π°Π΄Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° dataset.yml Π² ΡΠ΅ΠΊΡΠΈΠΈ dataset (ΡΡ Π΅ΠΌΠ° ΠΎΠΏΠΈΡΠ°Π½Π° Π² ΡΠ΅ΠΊΡΠΈΠΈ schema, ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ - title, state, estimate, ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΠΊΡΠΈΠΏΡΠ΅ parse.py).
Π Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡΠΈΠΈ β3 ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΡΡΠ½ΠΎΡΡΡ Task (ΠΠ°Π΄Π°ΡΠ°). ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΡΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ. Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠ΄Π°ΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡΠΈΠΈ β4 ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΡΡΠΈΠ΅ "ΠΊΡΠΈΡΠΈΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°" (ΠΊΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎΡΠ΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π·Π°Π΄Π°ΡΠΈ, Π΄ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΊΠ° ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠ΅Ρ Π΄Π½Π΅ΠΉ). Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΡΡΡΠ½ΠΎΡΡΠΈ, Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠΉ - Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π΅Π΄Π΅Π»ΠΈΡΡ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Django ΠΈ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ (ΠΌΠ°ΡΡΡΡΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΠΎΡΠΌΡ ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠΎΡΠΌ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ).
Π€ΠΎΡΠΌΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ:
- ΠΏΠΎΠ»Π΅ title (ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ) ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°)
- ΠΏΠΎΠ»Π΅ estimate (Π‘ΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΡΠΈΠΏΠ° datetime.date (Π΄Π°ΡΠ°)
- ΠΊΠ½ΠΎΠΏΠΊΠ° "Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ", Π°ΠΊΡΠΈΠ²ΠΈΡΡΡΡΠ°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΡΠΌΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ
ΠΠΎΠ»Ρ ΡΠΎΡΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
- Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ estimate (Π‘ΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½Π΅ΠΌΡ Π΄Π½Ρ (date.today)
- Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΠΏ
Π€ΠΎΡΠΌΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ:
- ΠΏΠΎΠ»Π΅ title (ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ) ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°)
- ΠΏΠΎΠ»Π΅ state (Π‘ΡΠ°ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°):
- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ - in_progress (Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ) ΠΈ ready (Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°)
- ΠΏΠΎΠ»Π΅ estimate (Π‘ΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΡΠΈΠΏΠ° datetime.date (Π΄Π°ΡΠ°)
- ΠΊΠ½ΠΎΠΏΠΊΠ° "Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ", Π°ΠΊΡΠΈΠ²ΠΈΡΡΡΡΠ°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΡΠΌΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ
ΠΠΎΠ»Ρ ΡΠΎΡΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
- Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ state (Π‘ΡΠ°ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
- ΠΠ°ΡΡΡΡΡ, URL dispatcher
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Views
- ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, View decorators
- Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, Shortcut functions
- Π€ΠΎΡΠΌΡ, Forms
- ΠΠΎΠ»Ρ ΡΠΎΡΠΌ, Form fields
- ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠΎΡΠΌ, Form validations
Π Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡΠΈΠΈ β3 ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠ»Π°ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ Task (ΠΠ°Π΄Π°ΡΠ°) ΠΈ Roadmap (ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°). ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Django-ΠΌΠΎΠ΄Π΅Π»ΠΈ Task ΠΈ Roadmap, Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Roadmap ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Task ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ.
Π Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡΠΈΠΈ β5 ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΡΡΠ½ΠΎΡΡΠΈ Task (ΠΠ°Π΄Π°ΡΠ°), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Django Model Forms) ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΡΡΠ½ΠΎΡΡΠΈ Roadmap (ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°).
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΠΎΠΆΠ½ΡΡ
ΠΊΠ°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅:
- Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Roadmap (ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°), Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ:
- ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΏΡΠΎΡΠΌΠΎΡΡ Π·Π°Π΄Π°Ρ Π΄ΠΎΡΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ
- ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ ΠΈ Π²ΡΠ΅Ρ Π΅Π΅ Π·Π°Π΄Π°Ρ
- Π‘ΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Roadmap (ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°)
- Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Roadmap (ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°), Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ:
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°Π΄Π°Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅:
- Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Task (ΠΠ°Π΄Π°ΡΠ°), ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΠΎ ΡΡΠ°ΡΡΡΡ ΠΈ ΡΡΠΎΠΊΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ:
- ΠΏΠΎΠ»ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠΈ title (ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ), state (Π‘ΡΠ°ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΠΈ estimate (Π‘ΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ)
- ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ
- ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ
- Π‘ΠΏΠΈΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Task (ΠΠ°Π΄Π°ΡΠ°), ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΏΠΎ ΡΡΠ°ΡΡΡΡ ΠΈ ΡΡΠΎΠΊΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ:
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΡΠΎΠΆΠ½ΠΎ ΠΊΠ°ΡΡΡ
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ ΠΈ Π²ΡΠ΅Ρ Π΅Π΅ Π·Π°Π΄Π°Ρ
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ
ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ URL, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°Π΄Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΎΠ².
- ΠΠ°ΡΡΡΡΡ, URL dispatcher
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π‘Π£ΠΠ, Install database
- ΠΠΎΠ΄Π΅Π»ΠΈ, Models
- Π€ΠΎΡΠΌΡ ΠΌΠΎΠ΄Π΅Π»ΠΉ, Model Forms
Π Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊ Π»Π΅ΠΊΡΠΈΠΈ β6 ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ Task (ΠΠ°Π΄Π°ΡΠ°) ΠΈ Roadmap (ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°) ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ Π½ΠΎΠ²ΡΡ ΡΡΡΠ½ΠΎΡΡΡ Scores (ΠΡΠΊΠΈ), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ:
- ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ task (ΠΠ°Π΄Π°ΡΠ°) Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ Task (ΠΠ°Π΄Π°ΡΠ°)
- ΠΏΠΎΠ»Π΅ date (ΠΡΠ΅ΠΌΡ Π·Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ) ΡΠΈΠΏΠ° datetime.datetime (Π΄Π°ΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ)
- ΠΏΠΎΠ»Π΅ points (ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΎΡΠΊΠΎΠ²) ΡΠΈΠΏΠ° decimal.Decimal (ΡΠΈΡΠ»ΠΎ)
ΠΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ (ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π² ΡΡΠ°ΡΡΡ ready), ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΊΠΎΠ². ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅ - (today - create date / estimate - create date) + (estimate - create date / max estimate), Π³Π΄Π΅:
- estimate - ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠ°Ρ Π΄Π°ΡΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
- today - ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π°ΡΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
- create date - Π΄Π°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
- max estimate - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ estimate - create date Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ (Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Task)
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΏΠΎ Π΅Π³ΠΎ Π·Π°Π΄Π°ΡΠ°ΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΎΡΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ Π·Π°Π΄Π°Ρ.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΡ :
- Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° "Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠ΅/Π Π΅ΡΠ΅Π½Π½ΡΠ΅", Π³Π΄Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ Π½Π΅Π΄Π΅Π»ΡΠΌ ΠΈ Π΅ΡΡΡ ΠΏΠΎΠ»Ρ:
- ΠΏΠΎΠ»Π΅ ΠΠΎΠΌΠ΅Ρ Π½Π΅Π΄Π΅Π»ΠΈ Π² Π³ΠΎΠ΄Ρ ΡΠΈΠΏΠ° int (ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ)
- ΠΏΠΎΠ»Π΅ ΠΠ½ΡΠ΅ΡΠ²Π°Π» Π΄Π°Ρ ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°), Π³Π΄Π΅
- Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ "Y-m-d / Y-m-d"
- Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° - ΠΏΠ΅ΡΠ²ΡΠΉ Π΄Π΅Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ
- ΠΊΠΎΠ½Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° - ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄Π΅Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ
- ΠΏΠΎΠ»Π΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΎ ΡΠΈΠΏΠ° int (ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅Ρ Π·Π°Π΄Π°Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»
- ΠΏΠΎΠ»Π΅ Π Π΅ΡΠ΅Π½ΠΎ ΡΠΈΠΏΠ° int (ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅Ρ Π·Π°Π΄Π°Ρ, ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΡΡΠ°ΡΡΡ ready
- Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° "ΠΡΠΊΠΈ", Π³Π΄Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΠΌΠ΅ΡΡΡΠ°ΠΌ ΠΈ Π΅ΡΡΡ ΠΏΠΎΠ»Ρ:
- ΠΏΠΎΠ»Π΅ ΠΠ΅ΡΡΡ ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°), Π³Π΄Π΅
- Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ "Y-m"
- ΠΏΠΎΠ»Π΅ ΠΠ°ΡΠΈΡΠ»Π΅Π½ΠΎ ΡΠΈΠΏΠ° decimal.Decimal (ΡΠΈΡΠ»ΠΎ), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΡΠΌΠΌΡ ΠΎΡΠΊΠΎΠ², Π·Π°ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π² ΡΠΊΠ°Π·Π°Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»
- ΠΏΠΎΠ»Π΅ ΠΠ΅ΡΡΡ ΡΠΈΠΏΠ° str (ΡΡΡΠΎΠΊΠ°), Π³Π΄Π΅
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Django ΠΈ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ (ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π°Π³Π³ΡΠ΅Π³ΠΈΡΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΌΠ°ΡΡΡΡΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ).
- ΠΠ°ΠΏΡΠΎΡΡ ΠΊ Π‘Π£ΠΠ, Queries
- ΠΠ³Π³ΡΠ΅Π³ΠΈΡΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π‘Π£ΠΠ, Aggregation
- Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Database transactions
Π’Π°Π±Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ, Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ javascript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, D3. ΠΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ BSD-Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ, Π΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° GitHub, ΡΠ°ΠΌ ΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΠ²ΡΠ΅Ρ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ»Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΠ°ΠΉΠΊΠ° ΠΠΎΡΡΠΎΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΠΎΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° D3.
* Π Π°Π±ΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ