Bu repository'da Impact.T coworking uchun qilingan xona band qilish dasturining backend qismining .NET 7 da yozilgan kodi bor.
- Dasturning muhim logikasini tekshirish uchun xUnit kutubxonasidan foydalangan holda testlar yozilgan.
- Kodni avtomatik tekshirib deploy qilish uchun
main
branch uchun GitHub Action yozilgan. Uning vazifalari:- Kodni test qilish.
- Testdan muvaffaqiyatli o'tgandan so'ng
Dockerfile
dan foydalangan holda docker image yasab dockerhub'ga push qilish. - GitHub'ning self hosted runner'idan foydalangan holda Amazon EC2'ga ulanib, serverdagi
docker-compose.yml
file'ni run qilib, quyidagi domenga deploy qilish.
Database sifatida PostgreSQL ishlatilgan. U serverda docker orqali ishlab turibti. Ma'lumotlar ishonchli saqlanishi uchun kerakli volume mount qilingan. Bizning holatda write'dan ko'ra read operatsiyalar ko'pligi sababli kerakli joylarda index'lar foydalanilgan.
Column | Description |
---|---|
id (PK) |
bigint |
name |
character varying(50) |
type |
character varying(50) |
capacity |
integer |
Column | Description |
---|---|
id (PK) |
bigint |
room_id (FK) |
bigint |
resident |
character varying(50) |
start_time |
timestamp without time zone |
end_time |
timestamp without time zone |
- Index 1:
start_time
(B+tree) - Index 2:
end_time
(B+tree)
Local ishlatib ko'rish uchun sizda docker bo'lishini o'zi yetarli. Komandalar ketma-ketligi:
- Repository'ni local kompyuterga klon qilamiz:
git clone https://github.com/shukhratutaboev/ybky.git
- Proyekt joylashgan folder ichiga kiramiz:
cd ybky
- Agar kerak bo'lsa
docker-compose.yml
file ichidapostgresql
konfiguratsiyalarini o'zgartiramiz (port, password ...). Agar password'ni o'zgartirsakimpacttapi
da ham secret'dagi passwordni yangilab qo'yamiz. - Compose file'ni run qilamiz:
docker compose up -d
- Hamma containerlar ishga tushib olishini kutamiz, bu biroz vaqt olishi mumkin.
- Hammasi tugagandan so'ng
http://localhost:8080/swagger/index.html
address'ga borib application'ni tekshirib ko'rishimiz mumkin.
Savol va takliflar uchun bemalol telegram orqali aloqaga chiqishingiz mumkin.