ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ. Full-stack ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ (MVP Π±Π»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ) Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΡ ΡΡΡΠΎΠΈΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π±Π»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΎΠ½Π΄Π°ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΌΠΈΠΊΡΠΎΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡ β Π²Π΅Π±-Π²ΠΈΠ΄ΠΆΠ΅Ρ, Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ°ΡΡ ΡΠ°ΠΌΠΎΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΈΡΠΏΠ»Π΅ΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ Π½Π° ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΊΠ°ΡΡΠ°Ρ
. ΠΠΈΠ»ΠΎΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠ°ΡΡΠ°ΠΏ ΠΊ ΡΠΎΠΌΡ ΠΆΡ Π½Π° Π±Π»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΡΠ½ΠΊΠ΅ ΠΌ Ρ ΠΈΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·ΡΠΌΡΡ Π½Π° ΡΠ΅Π±Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ MVP Β«ΠΏΠΎΠ΄ ΠΊΠ»ΡΡΒ»: ΠΎΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π΄ΠΎ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠ°ΡΡΠΎΠ²ΡΠΌ ΠΠ. Π§Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ β’ Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π΅Π±-Π²ΠΈΠ΄ΠΆΠ΅Ρ (ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ Π² WebView ΠΊΠ°ΡΡ ΡΠ°ΠΌΠΎΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ. ΠΠΈΠ΄ΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. β’ Π‘ΠΎΠ·Π΄Π°ΡΡ Π±ΡΠΊΠ΅Π½Π΄ (REST API) Π΄Π»Ρ ΠΏΡΠΈΡΠΌΠ° ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², ΡΠ°ΡΡΡΡΠ° ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ, Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π΅ΡΡΡΠΎΠ² ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ. β’ ΠΠ°ΡΡΡΠΎΠΈΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΡΡΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ (Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌ, ΠΊΠ°ΡΡΠ°ΠΌ, ΡΠΎΠ½Π΄Π°ΠΌ). β’ Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΊΠ°ΡΡΠΎΠ²ΡΠΌ ΠΠ (Set Retail, Frontol, Artix ΠΈΠ»ΠΈ ΠΈΡ
Π°Π½Π°Π»ΠΎΠ³ΠΈ): ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΌΠΌΡ ΡΠ΅ΠΊΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² ΡΠ΅ΠΊ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ° ΠΎΠΏΠ»Π°ΡΡ. β’ ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΠ€Π (ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Β«ΠΠ»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅Β» Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ Β«Π±Π΅Π· ΠΠΠ‘Β»). β’ Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ MVP Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ (Docker), ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΈΠ»ΠΎΡΠ°. β’ ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠΈΡΠ΅ΠΉΠ»Π΅ΡΠ° Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΠΈΠ»ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡ ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ β’ Π£Π²Π΅ΡΠ΅Π½Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ Python (FastAPI / Flask) ΠΈΠ»ΠΈ Node.js (Express) Π΄Π»Ρ Π±ΡΠΊΠ΅Π½Π΄Π°. β’ ΠΠΏΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SPA Π½Π° Π²Π°Π½ΠΈΠ»ΡΠ½ΠΎΠΌ JavaScript ΠΈΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π»ΡΠ³ΠΊΠΈΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² (Preact, Vue.js). ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
WebView (Chrome 37β70, Android 5.1+). β’ Π Π°Π±ΠΎΡΠ° Ρ PostgreSQL (ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡ
Π΅ΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΈΠ½Π΄Π΅ΠΊΡΡ). β’ ΠΠΏΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ REST API Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. β’ ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Docker, ΡΠΌΠ΅Π½ΠΈΠ΅ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ. β’ ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ
ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
, Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ, HMAC-ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ). ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ (ΡΠΎ, ΡΡΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡ Π²Π°Ρ ΡΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ²) β’ ΠΠΏΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠ°ΡΡΠΎΠ²ΡΠΌ ΠΠ: Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ΅ Set Retail ΠΈ Frontol, Π΄Π°Π»Π΅Π΅ Artix, ProxiPOS ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΊΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·Π»Π°, ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΈΡΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ, ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΊΠ°ΡΡΠΎΠ²ΡΡ
ΡΠ΅ΠΊΠΎΠ² (54-Π€Π). ΠΡ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΊΠ°ΡΡΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠΎΠ²Π°ΡΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΠ΅ΠΊ ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΡΡ Π·Π°ΠΊΡΡΡΠΈΡ ΡΠ΅ΠΊΠ°. ΠΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΠ€Π ΠΈ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ ΡΠΈΡΠΊΠ°Π»ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
. β’ ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΡΠΈΡΠ΅ΠΉΠ»Π°: ΡΠ°Π±ΠΎΡΠ° ΠΊΠ°ΡΡ ΡΠ°ΠΌΠΎΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, Customer Display, Π²ΡΡΠΎΠΊΠ°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°, SLA. β’ ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ»Π°ΡΡΠΆΠ½ΡΠΌΠΈ ΡΠ»ΡΠ·Π°ΠΌΠΈ ΠΈ ΡΠΊΠ²Π°ΠΉΡΠΈΠ½Π³ΠΎΠΌ (Π‘ΠΠ, Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠ΅ API). β’ ΠΠ½Π°Π½ΠΈΠ΅ 152-Π€Π (ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅) Π² ΡΠ°ΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ³Π»Π°ΡΠΈΠΉ. ΠΠΈΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° β’ ΠΡΠΎΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ: Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΠΆΠ΄Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ. β’ ΠΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ: ΡΠΌΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΠ’-ΠΎΡΠ΄Π΅Π» ΡΠΈΡΠ΅ΠΉΠ»Π΅ΡΠ°. β’ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ Π΄Π΅ΡΠ°Π»ΡΠΌ: ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠΈΡΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ. β’ ΠΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ MVP Π½ΡΠΆΠ΅Π½ Π±ΡΡΡΡΠΎ, Π½ΠΎ Π½Π°Π΄ΡΠΆΠ½ΠΎ.