ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΉΡΠ°
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π£ΠΆΠ΅ Π΅ΡΡΡ: ΠΡΡΠ³ΠΎΠ΅. ΠΠΎΡΠΊΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: GitHub. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: . ΠΠΎΠ½ΡΠ΅Π½Ρ Π΅ΡΡΡ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ (Π’Π) Π½Π° Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΉΡΠ° Β«ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΡΠ»ΡΠ³Β» 1. ΠΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π³Π΄Π΅ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΠ»ΡΠ³ (ΠΌΡΠ·ΡΠΊΠ°Π½Ρ, ΡΠΎΡΠΎΠ³ΡΠ°Ρ ΠΈ Ρ.Π΄.). ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΡΠ½ Π² GitHub (ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ). ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ: ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», ΠΎΡΠΎΡΠΌΠ»ΡΠ΅Ρ Pull Request. ΠΡΠ΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ°ΠΉΡΡ, Π½ΠΎ Ρ ΡΡΡΡΠΎΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. β Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ (ΡΡΠ΅ΠΊ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Typescript/Nextjs/Nodejs/PostgreSQL/Prisma ORM/Redis/WebSocket). 2. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ 2.1. Username handle Β· Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊ, ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ username handle (ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ΅ ΠΈΠΌΡ,@Π½ΠΈΠΊΠ½Π΅ΠΉΠΌ). Β· Handle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΌΠ΅Π½Ρ handle β ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ. 3. ΠΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Dashboards) Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ 3.1. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΡΠ»ΡΠ³ Β· Π£ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΡΡΠ»ΡΠ³ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β« ΠΠΎΠ²Π°ΡΒ», Β«Π€ΠΎΡΠΎΠ³ΡΠ°ΡΒ», Β«Π€Π»ΠΎΡΠΈΡΡΒ»). Β· ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ²ΠΎΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ dashboard (ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ). Β· ΠΠ° dashboard ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ: Β· Π·Π°ΠΊΠ°Π·Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ; Β· Π³ΡΠ°ΡΠΈΠΊ/ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ; Β· ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (Π²ΡΡΡΡΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ, ΡΠ΅ΠΉΡΠΈΠ½Π³); Β· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (ΡΠ΅Π½Ρ, Π·ΠΎΠ½Π° Π²ΡΠ΅Π·Π΄Π°, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅). 4.1. SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Β· ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΠΎΠΊΡΠΏΠ°Π΅Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ SSL certificate Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ°ΠΉΡΠ°. Β· ΠΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (frontend ? backend, API, ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ) Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ HTTPS. Β· ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΠ·Π°Π½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ HTTP ? HTTPS ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ»ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅. 4.2. API ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Β· ΠΡΠΊΠ΅Π½Π΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ microservice ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°. Β· ΠΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°: Β· ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ, OTP, handle); Β· ΡΠ΅ΡΠ²ΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ (booking); Β· ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ (ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π½ΠΊΠΎΠΌ, Π²ΠΎΠ·Π²ΡΠ°ΡΡ). Β· ΠΠ΅ΠΆΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ β ΡΠ΅ΡΠ΅Π· REST API ΠΈΠ»ΠΈ message broker (Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅). Β· ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ. 5. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ 5.1. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ (Booking Full Control) Β· Π Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠΈ booking (Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ/Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ) ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ. Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°: Β· ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ (ΡΠΈΠ»ΡΡΡ ΠΏΠΎ Π΄Π°ΡΠ΅, ΡΡΠ°ΡΡΡΡ, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ); Β· ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠ°ΡΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, Π·Π°Π²Π΅ΡΡΠΈΡΡ); Β· ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΡΡ, Π²ΡΠ΅ΠΌΡ, ΡΡΠΌΠΌΡ, ΡΠΎΡΡΠ°Π² ΡΡΠ»ΡΠ³; Β· Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ±Π΅ΠΈΠΌ ΡΡΠΎΡΠΎΠ½Π°ΠΌ); Β· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΎΡΠ½ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ. Β· ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π»ΠΎΠ³ΠΈΡΡΡΡΡΡ (ΠΊΡΠΎ, ΠΊΠΎΠ³Π΄Π°, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»). 6. ΠΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΡ (Refund) 6.1. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠ»Π°ΡΠ΅ΠΆΠ°ΠΌ (Frontend + Backend) Β· ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ Π±Π°Π½ΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΆΠ½ΡΠΌ ΡΠ»ΡΠ·ΠΎΠΌ ΡΠ΅ΡΠ΅Π· Refund API (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠ²). Β· Frontend: ΡΠΎΡΠΌΡ ΠΎΠΏΠ»Π°ΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΠ°ΠΏΡΠΎΡΠΈΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΒ» (Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ). Β· Backend: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ API Π±Π°Π½ΠΊΠ°, ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅/Π·Π°ΠΌΠΎΡΠΎΠ·ΠΊΠ° ΡΡΠ΅Π΄ΡΡΠ², ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°. 6.2. Π‘ΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Π°Π΄ΠΌΠΈΠ½Π° 6.3. ΠΡΠΎΡΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° 7. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Β· ΠΠ΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ API Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²). Β· ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ SSL ΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Β· ΠΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· SMS OTP, ΡΠ°Π±ΠΎΡΡ dashboard Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ, ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΈΠΊΠ» Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ° ΡΠ΅ΡΠ΅Π· sandbox Π±Π°Π½ΠΊΠ°. 8. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΈ ΡΡΠΎΠΊΠΈ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ) Β· Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ 2, 4, 5 β Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. Β· ΠΠ»Π°ΡΡΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»Ρ β ΡΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ (Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ). Β· Π‘ΡΠΎΠΊΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Ρ ΡΡΡΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΉΡΠ°
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π£ΠΆΠ΅ Π΅ΡΡΡ: ΠΡΡΠ³ΠΎΠ΅. ΠΠΎΡΠΊΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: GitHub. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: . ΠΠΎΠ½ΡΠ΅Π½Ρ Π΅ΡΡΡ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ (Π’Π) Π½Π° Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΉΡΠ° Β«ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΡΠ»ΡΠ³Β» 1. ΠΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π³Π΄Π΅ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΠ»ΡΠ³ (ΠΌΡΠ·ΡΠΊΠ°Π½Ρ, ΡΠΎΡΠΎΠ³ΡΠ°Ρ ΠΈ Ρ.Π΄.). ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΡΠ½ Π² GitHub (ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ). ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ: ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», ΠΎΡΠΎΡΠΌΠ»ΡΠ΅Ρ Pull Request. ΠΡΠ΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ°ΠΉΡΡ, Π½ΠΎ Ρ ΡΡΡΡΠΎΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. β Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ (ΡΡΠ΅ΠΊ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Typescript/Nextjs/Nodejs/PostgreSQL/Prisma ORM/Redis/WebSocket). 2. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ 2.1. Username handle Β· Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊ, ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ username handle (ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ΅ ΠΈΠΌΡ,@Π½ΠΈΠΊΠ½Π΅ΠΉΠΌ). Β· Handle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΌΠ΅Π½Ρ handle β ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ. 3. ΠΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Dashboards) Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ 3.1. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΡΠ»ΡΠ³ Β· Π£ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΡΡΠ»ΡΠ³ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β« ΠΠΎΠ²Π°ΡΒ», Β«Π€ΠΎΡΠΎΠ³ΡΠ°ΡΒ», Β«Π€Π»ΠΎΡΠΈΡΡΒ»). Β· ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ²ΠΎΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ dashboard (ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ). Β· ΠΠ° dashboard ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ: Β· Π·Π°ΠΊΠ°Π·Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ; Β· Π³ΡΠ°ΡΠΈΠΊ/ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ; Β· ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (Π²ΡΡΡΡΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ, ΡΠ΅ΠΉΡΠΈΠ½Π³); Β· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (ΡΠ΅Π½Ρ, Π·ΠΎΠ½Π° Π²ΡΠ΅Π·Π΄Π°, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅). 4.1. SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Β· ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΠΎΠΊΡΠΏΠ°Π΅Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ SSL certificate Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ°ΠΉΡΠ°. Β· ΠΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (frontend ? backend, API, ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ) Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ HTTPS. Β· ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΠ·Π°Π½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ HTTP ? HTTPS ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ»ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅. 4.2. API ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Β· ΠΡΠΊΠ΅Π½Π΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ microservice ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°. Β· ΠΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°: Β· ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ, OTP, handle); Β· ΡΠ΅ΡΠ²ΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ (booking); Β· ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ (ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π½ΠΊΠΎΠΌ, Π²ΠΎΠ·Π²ΡΠ°ΡΡ). Β· ΠΠ΅ΠΆΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ β ΡΠ΅ΡΠ΅Π· REST API ΠΈΠ»ΠΈ message broker (Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅). Β· ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ. 5. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ 5.1. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ (Booking Full Control) Β· Π Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠΈ booking (Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ/Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ) ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ. Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°: Β· ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ (ΡΠΈΠ»ΡΡΡ ΠΏΠΎ Π΄Π°ΡΠ΅, ΡΡΠ°ΡΡΡΡ, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ); Β· ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠ°ΡΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, Π·Π°Π²Π΅ΡΡΠΈΡΡ); Β· ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΡΡ, Π²ΡΠ΅ΠΌΡ, ΡΡΠΌΠΌΡ, ΡΠΎΡΡΠ°Π² ΡΡΠ»ΡΠ³; Β· Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ±Π΅ΠΈΠΌ ΡΡΠΎΡΠΎΠ½Π°ΠΌ); Β· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΎΡΠ½ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ. Β· ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π»ΠΎΠ³ΠΈΡΡΡΡΡΡ (ΠΊΡΠΎ, ΠΊΠΎΠ³Π΄Π°, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»). 6. ΠΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΡ (Refund) 6.1. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠ»Π°ΡΠ΅ΠΆΠ°ΠΌ (Frontend + Backend) Β· ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ Π±Π°Π½ΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΆΠ½ΡΠΌ ΡΠ»ΡΠ·ΠΎΠΌ ΡΠ΅ΡΠ΅Π· Refund API (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠ²). Β· Frontend: ΡΠΎΡΠΌΡ ΠΎΠΏΠ»Π°ΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΠ°ΠΏΡΠΎΡΠΈΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΒ» (Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ). Β· Backend: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ API Π±Π°Π½ΠΊΠ°, ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅/Π·Π°ΠΌΠΎΡΠΎΠ·ΠΊΠ° ΡΡΠ΅Π΄ΡΡΠ², ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°. 6.2. Π‘ΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Π°Π΄ΠΌΠΈΠ½Π° 6.3. ΠΡΠΎΡΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° 7. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Β· ΠΠ΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ API Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²). Β· ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ SSL ΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Β· ΠΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· SMS OTP, ΡΠ°Π±ΠΎΡΡ dashboard Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ, ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΈΠΊΠ» Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ° ΡΠ΅ΡΠ΅Π· sandbox Π±Π°Π½ΠΊΠ°. 8. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΈ ΡΡΠΎΠΊΠΈ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ) Β· Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ 2, 4, 5 β Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. Β· ΠΠ»Π°ΡΡΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»Ρ β ΡΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ (Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ). Β· Π‘ΡΠΎΠΊΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Ρ ΡΡΡΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠ°. ΠΠΎΡΠΊΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: GitHub. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: . ΠΠΎΠ½ΡΠ΅Π½Ρ Π΅ΡΡΡ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ (Π’Π) Π½Π° Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΉΡΠ° Β«ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΡΠ»ΡΠ³Β» 1. ΠΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π³Π΄Π΅ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΠ»ΡΠ³ (ΠΌΡΠ·ΡΠΊΠ°Π½Ρ, ΡΠΎΡΠΎΠ³ΡΠ°Ρ ΠΈ Ρ.Π΄.). ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΡΠ½ Π² GitHub (ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ). ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ: ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», ΠΎΡΠΎΡΠΌΠ»ΡΠ΅Ρ Pull Request. ΠΡΠ΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ°ΠΉΡΡ, Π½ΠΎ Ρ ΡΡΡΡΠΎΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. β Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ (ΡΡΠ΅ΠΊ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Typescript/Nextjs/Nodejs/PostgreSQL/Prisma ORM/Redis/WebSocket). 2. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ 2.1. Username handle Β· Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊ, ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ username handle (ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ΅ ΠΈΠΌΡ,@Π½ΠΈΠΊΠ½Π΅ΠΉΠΌ). Β· Handle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΌΠ΅Π½Ρ handle β ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ. 3. ΠΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Dashboards) Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ 3.1. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΡΠ»ΡΠ³ Β· Π£ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΡΡΠ»ΡΠ³ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β« ΠΠΎΠ²Π°ΡΒ», Β«Π€ΠΎΡΠΎΠ³ΡΠ°ΡΒ», Β«Π€Π»ΠΎΡΠΈΡΡΒ»). Β· ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ²ΠΎΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ dashboard (ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ). Β· ΠΠ° dashboard ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ: Β· Π·Π°ΠΊΠ°Π·Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ; Β· Π³ΡΠ°ΡΠΈΠΊ/ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ; Β· ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (Π²ΡΡΡΡΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ, ΡΠ΅ΠΉΡΠΈΠ½Π³); Β· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (ΡΠ΅Π½Ρ, Π·ΠΎΠ½Π° Π²ΡΠ΅Π·Π΄Π°, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅). 4.1. SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Β· ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΠΎΠΊΡΠΏΠ°Π΅Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ SSL certificate Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ°ΠΉΡΠ°. Β· ΠΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (frontend ? backend, API, ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ) Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ HTTPS. Β· ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΠ·Π°Π½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ HTTP ? HTTPS ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ»ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅. 4.2. API ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Β· ΠΡΠΊΠ΅Π½Π΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ microservice ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°. Β· ΠΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°: Β· ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ, OTP, handle); Β· ΡΠ΅ΡΠ²ΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ (booking); Β· ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ (ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π½ΠΊΠΎΠΌ, Π²ΠΎΠ·Π²ΡΠ°ΡΡ). Β· ΠΠ΅ΠΆΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ β ΡΠ΅ΡΠ΅Π· REST API ΠΈΠ»ΠΈ message broker (Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅). Β· ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ. 5. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ 5.1. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ (Booking Full Control) Β· Π Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠΈ booking (Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ/Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ) ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ. Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°: Β· ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ (ΡΠΈΠ»ΡΡΡ ΠΏΠΎ Π΄Π°ΡΠ΅, ΡΡΠ°ΡΡΡΡ, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ); Β· ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠ°ΡΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, Π·Π°Π²Π΅ΡΡΠΈΡΡ); Β· ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΡΡ, Π²ΡΠ΅ΠΌΡ, ΡΡΠΌΠΌΡ, ΡΠΎΡΡΠ°Π² ΡΡΠ»ΡΠ³; Β· Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ±Π΅ΠΈΠΌ ΡΡΠΎΡΠΎΠ½Π°ΠΌ); Β· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΎΡΠ½ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ. Β· ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π»ΠΎΠ³ΠΈΡΡΡΡΡΡ (ΠΊΡΠΎ, ΠΊΠΎΠ³Π΄Π°, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»). 6. ΠΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΡ (Refund) 6.1. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠ»Π°ΡΠ΅ΠΆΠ°ΠΌ (Frontend + Backend) Β· ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ Π±Π°Π½ΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΆΠ½ΡΠΌ ΡΠ»ΡΠ·ΠΎΠΌ ΡΠ΅ΡΠ΅Π· Refund API (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠ²). Β· Frontend: ΡΠΎΡΠΌΡ ΠΎΠΏΠ»Π°ΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΠ°ΠΏΡΠΎΡΠΈΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΒ» (Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ). Β· Backend: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ API Π±Π°Π½ΠΊΠ°, ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅/Π·Π°ΠΌΠΎΡΠΎΠ·ΠΊΠ° ΡΡΠ΅Π΄ΡΡΠ², ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°. 6.2. Π‘ΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Π°Π΄ΠΌΠΈΠ½Π° 6.3. ΠΡΠΎΡΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° 7. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Β· ΠΠ΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ API Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²). Β· ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ SSL ΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Β· ΠΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· SMS OTP, ΡΠ°Π±ΠΎΡΡ dashboard Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ, ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΈΠΊΠ» Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ° ΡΠ΅ΡΠ΅Π· sandbox Π±Π°Π½ΠΊΠ°. 8. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΈ ΡΡΠΎΠΊΠΈ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ) Β· Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ 2, 4, 5 β Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. Β· ΠΠ»Π°ΡΡΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»Ρ β ΡΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ (Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ). Β· Π‘ΡΠΎΠΊΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Ρ ΡΡΡΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠ΄Π°.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° JavaScript
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠ°. ΠΠΎΡΠΊΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: . ΠΠΎΠ½ΡΠ΅Π½Ρ Π΅ΡΡΡ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ (Π’Π) Π½Π° Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΉΡΠ° Β«ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΡΠ»ΡΠ³Β» 1. ΠΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π³Π΄Π΅ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΠ»ΡΠ³ (ΠΌΡΠ·ΡΠΊΠ°Π½Ρ, ΡΠΎΡΠΎΠ³ΡΠ°Ρ ΠΈ Ρ.Π΄.). ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΡΠ½ Π² GitHub (ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ). ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ: ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», ΠΎΡΠΎΡΠΌΠ»ΡΠ΅Ρ Pull Request. ΠΡΠ΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½-ΡΠ°ΠΉΡΡ, Π½ΠΎ Ρ ΡΡΡΡΠΎΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. β Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ (ΡΡΠ΅ΠΊ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Typescript/Nextjs/Nodejs/PostgreSQL/Prisma ORM/Redis/WebSocket). 2. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ 2.1. Username handle Β· Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΈ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊ, ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ username handle (ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ΅ ΠΈΠΌΡ,@Π½ΠΈΠΊΠ½Π΅ΠΉΠΌ). Β· Handle ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ, ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΏΡΠΎΡΠΈΠ»Ρ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΌΠ΅Π½Ρ handle β ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ. 3. ΠΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Dashboards) Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ 3.1. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΡΠ»ΡΠ³ Β· Π£ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΡΡΠ»ΡΠ³ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β« ΠΠΎΠ²Π°ΡΒ», Β«Π€ΠΎΡΠΎΠ³ΡΠ°ΡΒ», Β«Π€Π»ΠΎΡΠΈΡΡΒ»). Β· ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ²ΠΎΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ dashboard (ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ). Β· ΠΠ° dashboard ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ: Β· Π·Π°ΠΊΠ°Π·Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ; Β· Π³ΡΠ°ΡΠΈΠΊ/ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ; Β· ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (Π²ΡΡΡΡΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ, ΡΠ΅ΠΉΡΠΈΠ½Π³); Β· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (ΡΠ΅Π½Ρ, Π·ΠΎΠ½Π° Π²ΡΠ΅Π·Π΄Π°, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅). 4.1. SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Β· ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΠΎΠΊΡΠΏΠ°Π΅Ρ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ SSL certificate Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ°ΠΉΡΠ°. Β· ΠΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (frontend ? backend, API, ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ) Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ HTTPS. Β· ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΠ·Π°Π½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ HTTP ? HTTPS ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ»ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅. 4.2. API ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Β· ΠΡΠΊΠ΅Π½Π΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ microservice ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°. Β· ΠΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°: Β· ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ, OTP, handle); Β· ΡΠ΅ΡΠ²ΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ (booking); Β· ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ (ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π½ΠΊΠΎΠΌ, Π²ΠΎΠ·Π²ΡΠ°ΡΡ). Β· ΠΠ΅ΠΆΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ β ΡΠ΅ΡΠ΅Π· REST API ΠΈΠ»ΠΈ message broker (Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅). Β· ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ. 5. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ 5.1. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ (Booking Full Control) Β· Π Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠΈ booking (Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ/Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ) ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠΌΠΈ. Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°: Β· ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ (ΡΠΈΠ»ΡΡΡ ΠΏΠΎ Π΄Π°ΡΠ΅, ΡΡΠ°ΡΡΡΡ, ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ); Β· ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠ°ΡΡΡ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, Π·Π°Π²Π΅ΡΡΠΈΡΡ); Β· ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΡΡ, Π²ΡΠ΅ΠΌΡ, ΡΡΠΌΠΌΡ, ΡΠΎΡΡΠ°Π² ΡΡΠ»ΡΠ³; Β· Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΠΎΠ±Π΅ΠΈΠΌ ΡΡΠΎΡΠΎΠ½Π°ΠΌ); Β· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΎΡΠ½ΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ. Β· ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π»ΠΎΠ³ΠΈΡΡΡΡΡΡ (ΠΊΡΠΎ, ΠΊΠΎΠ³Π΄Π°, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»). 6. ΠΠ»Π°ΡΠ΅ΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΡ (Refund) 6.1. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΠ»Π°ΡΠ΅ΠΆΠ°ΠΌ (Frontend + Backend) Β· ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ Π±Π°Π½ΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΆΠ½ΡΠΌ ΡΠ»ΡΠ·ΠΎΠΌ ΡΠ΅ΡΠ΅Π· Refund API (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠ²). Β· Frontend: ΡΠΎΡΠΌΡ ΠΎΠΏΠ»Π°ΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΠ°ΠΏΡΠΎΡΠΈΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΒ» (Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ). Β· Backend: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ API Π±Π°Π½ΠΊΠ°, ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅/Π·Π°ΠΌΠΎΡΠΎΠ·ΠΊΠ° ΡΡΠ΅Π΄ΡΡΠ², ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°. 6.2. Π‘ΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· Π°Π΄ΠΌΠΈΠ½Π° 6.3. ΠΡΠΎΡΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° 7. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Β· ΠΠ΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ API Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²). Β· ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ SSL ΠΈ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Β· ΠΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· SMS OTP, ΡΠ°Π±ΠΎΡΡ dashboard Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ, ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΈΠΊΠ» Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ° ΡΠ΅ΡΠ΅Π· sandbox Π±Π°Π½ΠΊΠ°. 8. ΠΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΈ ΡΡΠΎΠΊΠΈ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ) Β· Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ 2, 4, 5 β Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. Β· ΠΠ»Π°ΡΡΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈ Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»Ρ β ΡΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ (Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ). Β· Π‘ΡΠΎΠΊΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Ρ ΡΡΡΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠ΄Π°.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠΎΡΠΊΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: Flexbe.ru. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: ΠΡΠΎΠ΄Π°ΠΆΠ° ΡΠ΅ΠΏΡΠΈΠΊΠ°. ΠΠΎΠ½ΡΠ΅Π½Ρ Π΅ΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠΎΠ²
Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ½Π°Ρ
ΠΠΎΡΠΊΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°: ΠΏΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ°ΠΉΡΠ°: Π£ΡΠ»ΡΠ³ΠΈ ΠΈ ΡΠ΅Π½Ρ ΡΠΎΡΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. ΠΠΎΠ½ΡΠ΅Π½Ρ Π΅ΡΡΡ. ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΡ ΠΏΠΎ ΠΈΠ²Π΅Π½Ρ ΡΡΠ»ΡΠ³Π°ΠΌ.