16.1-bob: Capstone #1 — To'liq Production SaaS
16-QISM — Katta Yakuniy Loyihalar · 1-mavzu
1. Kirish va motivatsiya
Mana, butun safarning amaliy cho'qqisi. 0-15 QISM davomida siz har bir qismni — HTML/CSS'dan deploy'gacha, xavfsizlikdan professional ko'nikmalargacha — alohida o'rgandingiz. Endi bularni bitta to'liq, real, production-darajadagi SaaS ilovada birlashtirasiz. SaaS (Software as a Service — xizmat sifatida dasturiy ta'minot — masalan Notion, Linear, Trello, Slack) — obunaga asoslangan web ilova: foydalanuvchilar ro'yxatdan o'tadi, oylik to'lov qiladi, va xizmatdan foydalanadi. Bu — zamonaviy dasturiy biznesning eng keng modeli, va uni qurish — full-stack dasturchining eng to'liq sinov maydoni.
Bu bob — kod yozmaydi (siz yozasiz — bu sizning capstone'ingiz, portfolio'ingiz — 15.8). Buning o'rniga: to'liq talablar (nima quriladi), arxitektura (qanday tuzilgan), bosqichma-bosqich qo'llanma (qaysi tartibda), texnologiya qarorlari (nega bu), va har bosqichda qaysi QISMga murojaat (xarita). Bu — 13.11 (Next.js capstone)dan kattaroq, to'liqroq (real SaaS — ko'p-ijaralik, obuna/to'lov, jamoa, analytics — to'liq biznes). Buni qurib tugatsangiz — sizda professional, ish beruvchiga ko'rsatadigan, hatto real foydalanuvchilar to'laydigan mahsulot bo'ladi (portfolio'ning cho'qqisi).
Bu bob: SaaS nima va loyiha g'oyasi, to'liq talablar (funksional + funksional bo'lmagan), arxitektura (qatlamlar, komponentlar), ma'lumot modeli (DB sxema), bosqichma-bosqich qo'llanma (8 bosqich), texnologiya stack (har qism uchun), va production checklist. Bu bobda to'liq production full-stack ilova (real SaaS) loyihasi bosqichma-bosqich ko'rib chiqiladi; yechim kodini o'zingiz yozasiz.
O'xshatish: Bu capstone — bu bitiruv loyihasi (diplom ishi). Universitet davomida har fan (matematika, fizika — har QISM) alohida o'qiladi, lekin bitiruv loyihasi — barchasini bitta real ishda birlashtiradi (haqiqiy muammoni hal qiladi — nazariya emas, amaliyot). SaaS capstone ham shunday: frontend (11-13 QISM), backend (5, 8), DB (6), xavfsizlik (14), deploy (10, 13.10), professional (15) — hammasi bitta real, ishlaydigan, to'lov qabul qiladigan mahsulotda. Buni qurib tugatish — sizning "diplomingiz" (mahorat isboti — portfolio, hatto real biznes). Yo'l qiyin (katta loyiha), lekin natija — professional dasturchi bo'lganingizning eng kuchli isboti.
Nega muhim?
- Amaliy cho'qqi — barcha bilimni (0-15 QISM) bitta real mahsulotda birlashtirish.
- Portfolio cho'qqisi — professional, to'liq, real SaaS (15.8 — eng kuchli isbot).
- Real biznes — SaaS — obuna modeli (hatto real foydalanuvchi, daromad).
- To'liq sinov — full-stack + xavfsizlik + deploy + professional (hammasi birga).
2. Loyiha g'oyasi va talablar
2.1. SaaS g'oyasi tanlash
SAAS G'OYASI — obunaga asoslangan web ilova (real muammo hal):
YAXSHI SAAS G'OYALARI (real muammo — original):
Loyiha boshqaruvi (Notion/Trello kabi — vazifa, jamoa)
CRM (mijozlar boshqaruvi — kichik biznes uchun)
Analytics dashboard (ma'lumot vizualizatsiya)
Booking/rezervatsiya (salon, restoran, klinika)
Invoice/billing (hisob-faktura — frilanser uchun)
Content/blog platform (yozuvchilar uchun)
SAAS ASOSIY XUSUSIYATLARI (har SaaS'da):
Ko'p-ijaralik (multi-tenancy — har mijoz o'z ma'lumoti, izolyatsiya)
Obuna/to'lov (subscription — oylik tarif — free/pro)
Foydalanuvchi/jamoa (auth, rollar, taklif)
Asosiy funksiya (g'oyaga qarab — loyiha/CRM/analytics)
Dashboard (ma'lumot, statistika)
SaaS — obuna web ilova (ko'p-ijaralik + to'lov + jamoa + asosiy funksiya)
Real/original g'oya tanla (tutorial emas — 15.8: 2.4 — portfolio uchun)SaaS g'oyasi tanlash — capstone uchun loyiha tanlash. SaaS (Software as a Service) — obunaga asoslangan web ilova (foydalanuvchi ro'yxatdan o'tadi, oylik to'laydi, foydalanadi — Notion, Linear, Trello). Yaxshi SaaS g'oyalari (real muammo — original — 15.8: 2.4): loyiha boshqaruvi (Notion/Trello kabi — vazifa, jamoa), CRM (mijozlar boshqaruvi — kichik biznes), analytics dashboard (ma'lumot vizualizatsiya), booking/rezervatsiya (salon, restoran — vaqt band qilish), invoice/billing (hisob-faktura — frilanser), content platform (yozuvchilar). SaaS asosiy xususiyatlari (har SaaS'da — g'oyadan qat'i nazar): (1) ko'p-ijaralik (multi-tenancy — har mijoz/jamoa o'z ma'lumoti, izolyatsiya — bir foydalanuvchi boshqasining ma'lumotini ko'rmaydi — 14.1: A01); (2) obuna/to'lov (subscription — oylik tarif — free/pro/enterprise — daromad); (3) foydalanuvchi/jamoa (auth, rollar, taklif — 13.9); (4) asosiy funksiya (g'oyaga qarab — loyiha/CRM/analytics — qiymat yaratuvchi); (5) dashboard (ma'lumot, statistika). Ikki nuqta: (1) SaaS — obuna web ilova (ko'p-ijaralik + to'lov + jamoa + asosiy funksiya — bu xususiyatlar har SaaS'da); (2) real/original g'oya tanlash (tutorial emas — 15.8: 2.4 — portfolio uchun — to-do emas — real qiymat). G'oya tanlash muhim (capstone — portfolio — qiziqqan, real muammoni tanlash — motivatsiya + original). Bu kitobda biz misol uchun "loyiha boshqaruvi SaaS" (TaskFlow — Notion/Trello-uslubda — vazifa, loyiha, jamoa) ni olamiz (keng, barcha SaaS xususiyatini qamraydi), lekin siz o'z g'oyangizni tanlashingiz mumkin (CRM, booking, invoice — qaysi qiziqsangiz). Asosiy SaaS xususiyatlari (multi-tenancy, obuna, jamoa) — har g'oyada bir xil (faqat asosiy funksiya farq). Real, original g'oya — eng yaxshi (portfolio'da ajraladi — 15.8 — tutorial emas).
2.2. To'liq talablar (TaskFlow misol)
TASKFLOW — loyiha boshqaruvi SaaS (to'liq talablar):
FUNKSIONAL TALABLAR:
1. AUTH 13.9-bob: ro'yxat, login (email + Google), parol tiklash
2. JAMOA (workspace): yaratish, a'zo taklif (email), rollar (owner/admin/member)
3. LOYIHA: yaratish, tahrir, o'chirish (jamoa ichida)
4. VAZIFA (task): yaratish, holatlar (todo/doing/done), tayinlash, muddat
5. KANBAN DOSKA: drag-drop (vazifa holatini o'zgartirish)
6. IZOH/FAOLLIK: vazifaga izoh, faollik tarixi
7. OBUNA (to'lov): free (3 loyiha) / pro (cheksiz) — Stripe
8. DASHBOARD: statistika (vazifalar, progress)
9. BILDIRISHNOMA: real-time (yangi tayinlash, izoh) — 16.3 ko'prik
FUNKSIONAL BO'LMAGAN:
Xavfsizlik (14-QISM — multi-tenancy izolyatsiya, auth, validatsiya)
Performance (13.7 — tez, kesh)
Miqyos (ko'p jamoa/foydalanuvchi)
Mobil-responsive (har qurilma)
Talablar — auth + jamoa + loyiha/vazifa + kanban + obuna + dashboard (to'liq SaaS)
Funksional bo'lmagan — xavfsizlik (multi-tenancy), performance, responsiveTo'liq talablar (TaskFlow misol) — capstone'ning aniq talablari. TaskFlow (loyiha boshqaruvi SaaS — Notion/Trello-uslub) talablari: funksional (nima qiladi): (1) auth (13.9 — ro'yxat, login — email + Google, parol tiklash — 14.5); (2) jamoa (workspace — yaratish, a'zo taklif — email orqali, rollar — owner/admin/member — 13.9: 2.9); (3) loyiha (yaratish, tahrir, o'chirish — jamoa ichida); (4) vazifa (task — yaratish, holatlar — todo/doing/done, tayinlash — kimga, muddat); (5) kanban doska (drag-drop — vazifa holatini ko'chirish — 11.16 — interaktiv); (6) izoh/faollik (vazifaga izoh, faollik tarixi — kim nima qildi); (7) obuna (to'lov — free — 3 loyiha cheklov / pro — cheksiz — Stripe — 13.6 webhook); (8) dashboard (statistika — vazifalar soni, progress); (9) bildirishnoma (real-time — yangi tayinlash, izoh — 16.3 ko'prik). Funksional bo'lmagan (qanday ishlaydi): xavfsizlik (14-QISM — multi-tenancy izolyatsiya — har jamoa o'z ma'lumoti — A01, auth, validatsiya), performance (13.7 — tez, kesh), miqyos (ko'p jamoa/foydalanuvchi), mobil-responsive (har qurilma — 1-QISM). Ikki nuqta: (1) talablar — auth + jamoa + loyiha/vazifa + kanban + obuna + dashboard (to'liq SaaS — barcha xususiyat); (2) funksional bo'lmagan — xavfsizlik (multi-tenancy izolyatsiya — eng muhim SaaS xavfsizligi), performance, responsive. Bu talablar — capstone'ning ko'lami (nima quriladi — aniq). Multi-tenancy izolyatsiya — SaaS'ning eng muhim xavfsizlik talabi (har jamoa faqat o'z ma'lumotini — A01 IDOR — 14.1: Misol 1 — har so'rovda jamoa tekshir). Obuna/to'lov (Stripe) — SaaS biznes modeli (free/pro — daromad — 13.6 webhook). Bu talablar TaskFlow uchun, lekin sizning g'oyangizga (CRM, booking) moslashtiriladi (asosiy SaaS xususiyatlari — multi-tenancy, obuna, jamoa — bir xil; asosiy funksiya — vazifa o'rniga mijoz/rezervatsiya). MVP (15.1: 2.8 — minimal) — avval asosiy (auth, jamoa, loyiha, vazifa — ishlaydigan), keyin kengaytir (obuna, real-time, analytics). Talablar — capstone'ning yo'l xaritasi (nima quriladi).
3. Arxitektura
TASKFLOW ARXITEKTURASI (qatlamlar — 13.11: 2.2):
┌─────────────────────────────────────────────────────────────┐
│ 1. CLIENT (brauzer) │
│ Next.js (App Router) — sahifalar, kanban (drag-drop) │
├─────────────────────────────────────────────────────────────┤
│ 2. PRESENTATION (Next.js — 13-QISM) │
│ Server Components (kontent) + Client (kanban, interaktiv) │
│ Rendering: SSR (dashboard) + CSR (kanban) │
├─────────────────────────────────────────────────────────────┤
│ 3. APPLICATION (mantiq) │
│ Server Actions (CRUD) + Route Handlers (Stripe webhook) │
│ Middleware (auth, multi-tenancy) │
├─────────────────────────────────────────────────────────────┤
│ 4. AUTH/XAVFSIZLIK (13.9, 14-QISM) │
│ Auth.js (login) + rollar + multi-tenancy izolyatsiya │
├─────────────────────────────────────────────────────────────┤
│ 5. DATA (6-QISM) │
│ PostgreSQL + Prisma (User, Team, Project, Task, ...) │
├─────────────────────────────────────────────────────────────┤
│ 6. TASHQI XIZMATLAR │
│ Stripe (to'lov) + Email (taklif) + Real-time 16.3-bob │
├─────────────────────────────────────────────────────────────┤
│ 7. INFRA (10, 13.10) │
│ Vercel + PostgreSQL (Neon) + monitoring (Sentry) │
└─────────────────────────────────────────────────────────────┘
Arxitektura — qatlamlar (client presentation mantiq auth data tashqi infra)
Next.js full-stack (frontend + Server Actions + Route Handlers) — bir loyihadaArxitektura — TaskFlow'ning qatlamli tuzilishi (13.11: 2.2 — full-stack qatlamlar). Yetti qatlam: (1) client (brauzer — Next.js App Router — sahifalar, kanban drag-drop); (2) presentation (Next.js — 13-QISM — Server Components — kontent, dashboard; Client Components — kanban, interaktiv; rendering — SSR dashboard, CSR kanban — 13.4); (3) application (mantiq — Server Actions — CRUD — 13.5; Route Handlers — Stripe webhook — 13.6; middleware — auth, multi-tenancy — 13.6); (4) auth/xavfsizlik (13.9, 14-QISM — Auth.js — login; rollar — owner/admin/member; multi-tenancy izolyatsiya — har jamoa o'z ma'lumoti); (5) data (6-QISM — PostgreSQL + Prisma — User, Team, Project, Task jadvallari); (6) tashqi xizmatlar (Stripe — to'lov — 13.6 webhook; Email — taklif — 5.19; real-time — bildirishnoma — 16.3); (7) infra (10, 13.10 — Vercel deploy + PostgreSQL — Neon/Supabase + monitoring — Sentry). Ikki nuqta: (1) arxitektura — qatlamlar (client presentation mantiq auth data tashqi infra — yuqoridan pastga — har qatlam o'z vazifasi); (2) Next.js full-stack (frontend + Server Actions + Route Handlers — bir loyihada — alohida backend kerak emas — 13.5: 2.4). Bu arxitektura — TaskFlow'ning "skeleti" (har qatlam — bir QISM bilimi — 13.11: 2.2). Next.js full-stack (frontend + backend bir joyda — Server Actions, Route Handlers) — SaaS uchun ideal (kichik-o'rta jamoa — alohida backend murakkabliksiz — 13.5). Multi-tenancy (4-qatlam) — eng muhim (har so'rov — jamoa izolyatsiya — A01). Tashqi xizmatlar (Stripe, email, real-time) — SaaS funksiyalari (to'lov, taklif, bildirishnoma). Bu arxitektura — capstone'ning dizayni (qanday tuzilgan — har qatlam, har bog'lanish). Diagram chizish (har komponent, oqim) — capstone rejalashtirishning qismi (13.11: 2.1 — reja). Arxitektura aniq bo'lsa — qurish oson (har qatlam — ma'lum vazifa, ma'lum QISM).
4. Ma'lumot modeli (DB sxema)
TASKFLOW DB SXEMA (Prisma — 6.12; multi-tenancy):
User { id, email, name, passwordHash?, image, createdAt }
Team { id, name, slug, plan (free/pro), stripeCustomerId, createdAt }
ko'p-ijaralik markazi (har ma'lumot Team'ga bog'liq)
Membership { id, userId, teamId, role (owner/admin/member) }
User Team (ko'p-ko'pga; rol)
Project { id, teamId, name, description, createdAt }
teamId — multi-tenancy (loyiha jamoaga tegishli)
Task { id, projectId, title, description, status (todo/doing/done),
assigneeId?, dueDate?, order, createdAt }
Comment { id, taskId, userId, text, createdAt }
Activity { id, teamId, userId, action, entityType, entityId, createdAt }
Invitation { id, teamId, email, role, token, expiresAt }
MULTI-TENANCY KALITI:
har so'rov: foydalanuvchi SHU teamda a'zomi? (Membership tekshir)
har query: WHERE teamId = userTeam (boshqa jamoa ko'rinmasin — A01)
DB — User/Team/Membership (ko'p-ijaralik) + Project/Task/Comment (asosiy)
Multi-tenancy — teamId har joyda; har so'rov jamoa a'zoligini tekshir (izolyatsiya)Ma'lumot modeli (DB sxema) — TaskFlow'ning ma'lumot strukturasi (Prisma — 6.12; multi-tenancy markazida). Asosiy jadvallar: User (foydalanuvchi — email, name, passwordHash — 14.5 — hash, image), Team (jamoa/workspace — ko'p-ijaralik markazi — har ma'lumot Team'ga bog'liq — name, slug — URL, plan — free/pro, stripeCustomerId — to'lov), Membership (User Team — ko'p-ko'pga bog'lanish — bir user ko'p jamoada, rol — owner/admin/member — 13.9), Project (loyiha —
teamId— multi-tenancy — loyiha jamoaga tegishli), Task (vazifa — projectId, title, status — todo/doing/done, assigneeId — kimga, dueDate, order — kanban tartibi), Comment (izoh — taskId, userId, text), Activity (faollik tarixi — teamId, action — kim nima qildi), Invitation (taklif — teamId, email, token — 14.5: Misol 5 — token). Multi-tenancy kaliti (eng muhim): har so'rov — foydalanuvchi shu teamda a'zomi tekshir (Membership — 13.9: 2.9); har query —WHERE teamId = userTeam(boshqa jamoa ma'lumotini ko'rmasin — A01 IDOR — 14.1: Misol 1). Ikki nuqta: (1) DB — User/Team/Membership (ko'p-ijaralik tuzilishi) + Project/Task/Comment (asosiy ma'lumot); (2) multi-tenancy —teamIdhar joyda; har so'rov jamoa a'zoligini tekshir (izolyatsiya — har jamoa faqat o'z ma'lumotini). DB sxema — capstone'ning poydevori (6-QISM — ER modeling — 6.15). Multi-tenancy — SaaS DB dizaynining yuragi (har ma'lumotteamIdbilan — jamoaga bog'liq; har so'rov — jamoa tekshir — izolyatsiya — boshqa jamoa ma'lumoti ko'rinmaslik). Membership (User Team — ko'p-ko'pga — rol bilan) — jamoa tuzilishi (kim qaysi jamoada, qaysi rol). Activity — faollik tarixi (audit — kim nima qildi — SaaS'da keng). DB sxema (Prismaschema.prisma) — capstone'ning birinchi qadami (6.12 — sxema migratsiya client). Multi-tenancy izolyatsiya (har query teamId, har so'rov a'zolik) — har joyda (xavfsizlik — A01 — eng muhim SaaS xavfsizligi). Bu sxema TaskFlow uchun, lekin sizning g'oyangizga moslashtiriladi (Task o'rniga Customer/Booking — lekin User/Team/Membership/multi-tenancy bir xil).
5. Bosqichma-bosqich qo'llanma
TASKFLOW QURISH — 8 BOSQICH (13.11: 2.7 — poydevordan):
BOSQICH 1 — POYDEVOR (1-hafta):
create-next-app + Prisma + Auth.js + Tailwind
DB sxema (User, Team, Membership) + migratsiya
erta deploy (Vercel — "Hello World" — 13.10)
BOSQICH 2 — AUTH (13.9, 14.5):
ro'yxat/login (email + Google), parol hash (bcrypt)
sessiya, himoyalangan sahifalar (middleware)
BOSQICH 3 — JAMOA (multi-tenancy):
workspace yaratish, a'zo taklif (email), rollar
multi-tenancy izolyatsiya (har so'rov jamoa tekshir — A01)
BOSQICH 4 — LOYIHA/VAZIFA (asosiy funksiya):
loyiha CRUD (Server Actions — 13.5)
vazifa CRUD (holatlar, tayinlash, muddat)
BOSQICH 5 — KANBAN (interaktiv):
drag-drop doska (Client Component — dnd-kit)
optimistic update (13.5: 2.10)
BOSQICH 6 — OBUNA/TO'LOV 13.6-bob:
Stripe (free/pro), webhook (to'lov tasdiqi)
tarif cheklash (free — 3 loyiha)
BOSQICH 7 — DASHBOARD/ANALYTICS:
statistika (vazifalar, progress — kesh — 13.7)
SEO (marketing sahifalar — 13.8)
BOSQICH 8 — SAYQAL + PRODUCTION:
xavfsizlik audit 14.9-bob, performance 13.7-bob, test 11.17-bob
monitoring (Sentry), deploy checklist (13.10)
Bosqichlar — poydevor auth jamoa funksiya kanban to'lov dashboard sayqal
Bittadan, to'liq (13.11: 2.7); erta deploy; MVP avval, keyin kengaytirBosqichma-bosqich qo'llanma — TaskFlow'ni qaysi tartibda qurish (13.11: 2.7 — poydevordan tomga). Sakkiz bosqich: 1 — poydevor (1-hafta —
create-next-app+ Prisma + Auth.js + Tailwind; DB sxema — User, Team, Membership + migratsiya; erta deploy — Vercel — 13.10 — oqim ishlasin); 2 — auth (13.9, 14.5 — ro'yxat/login — email + Google, parol hash — bcrypt; sessiya, himoyalangan sahifalar — middleware); 3 — jamoa (multi-tenancy — workspace yaratish, a'zo taklif — email, rollar; multi-tenancy izolyatsiya — har so'rov jamoa tekshir — A01 — eng muhim); 4 — loyiha/vazifa (asosiy funksiya — loyiha CRUD — Server Actions — 13.5; vazifa CRUD — holatlar, tayinlash, muddat); 5 — kanban (interaktiv — drag-drop doska — Client Component — dnd-kit kutubxonasi; optimistic update — 13.5: 2.10 — darrov his); 6 — obuna/to'lov (13.6 — Stripe — free/pro, webhook — to'lov tasdiqi; tarif cheklash — free 3 loyiha); 7 — dashboard/analytics (statistika — vazifalar, progress — kesh — 13.7; SEO — marketing sahifalar — 13.8); 8 — sayqal + production (xavfsizlik audit — 14.9, performance — 13.7, test — 11.17; monitoring — Sentry, deploy checklist — 13.10). Ikki nuqta: (1) bosqichlar — poydevor auth jamoa funksiya kanban to'lov dashboard sayqal (ketma-ketlik — poydevor asos, funksiya ustida); (2) bittadan, to'liq (13.11: 2.7 — har bosqich tugalgan keyin keyingisi); erta deploy (oqim erta); MVP avval (auth + jamoa + loyiha + vazifa — ishlaydigan), keyin kengaytir (kanban, to'lov, analytics). Bu — capstone'ning qurish rejasi (qaysi tartib — 13.11: 2.7 — poydevordan, bittadan). Tartib mantiqli (poydevor auth jamoa — asos; keyin funksiya — loyiha/vazifa; keyin sayqal — kanban/to'lov/analytics). MVP (bosqich 1-4 — auth, jamoa, loyiha, vazifa — ishlaydigan asosiy SaaS) — keyin kengaytir (5-8 — kanban, to'lov, dashboard — qo'shimcha). Erta deploy (bosqich 1 — Vercel — oqim ishlasin — 13.10). Bittadan (har bosqich to'liq — keyingi — chalkashlik yo'q). Bu qo'llanma — capstone'ni boshlab tugatish usuli (katta loyiha — bosqichma-bosqich — 13.11: 2.8 — yarim qolmasin). Har bosqich — mos QISM (auth — 13.9, kanban — 11.16, to'lov — 13.6) — xarita (qaerga qaytish).
6. Texnologiya stack va qarorlar
TASKFLOW STACK (har qism uchun — sababli — 13.11: 2.4):
FRONTEND:
Next.js 15 (App Router) — full-stack, SSR/SSG, Server Actions
TypeScript (tip xavfsizligi — 7-QISM)
Tailwind + shadcn/ui (tez, chiroyli — 12.6)
dnd-kit (kanban drag-drop)
TanStack Query yoki Server Actions (server state — 12.4/13.5)
BACKEND (Next.js ichida):
Server Actions (CRUD — 13.5) + Route Handlers (webhook — 13.6)
Prisma (ORM — 6.12) + PostgreSQL (Neon/Supabase)
AUTH/TO'LOV:
Auth.js (login — 13.9) + Stripe (obuna — 13.6)
INFRA:
Vercel (deploy — 13.10) + Neon (PostgreSQL) + Sentry (monitoring)
GitHub Actions (CI — lint/test — 15.3) + Upstash (rate limit/real-time)
QARORLAR (trade-off — 15.7: 2.5):
Next.js full-stack (alohida backend emas — kichik-o'rta SaaS — sodda)
PostgreSQL (relyatsion — jamoa/loyiha/vazifa bog'lanishlari)
Vercel (oson deploy — Next.js'ga maxsus)
Stack — Next.js + TypeScript + Prisma + PostgreSQL + Auth.js + Stripe + Vercel
Har qaror sababli (full-stack Next.js — sodda; PostgreSQL — relyatsion — 13.11: 2.4)Texnologiya stack va qarorlar — TaskFlow'ning texnologiyalari (har biri sababli — 13.11: 2.4). Frontend: Next.js 15 (App Router — full-stack, SSR/SSG, Server Actions — 13-QISM), TypeScript (tip xavfsizligi — 7-QISM), Tailwind + shadcn/ui (tez, chiroyli UI — 12.6), dnd-kit (kanban drag-drop), TanStack Query yoki Server Actions (server state — 12.4/13.5). Backend (Next.js ichida — alohida emas): Server Actions (CRUD — 13.5) + Route Handlers (webhook — 13.6), Prisma (ORM — 6.12) + PostgreSQL (Neon/Supabase — bulut DB). Auth/to'lov: Auth.js (login — 13.9) + Stripe (obuna — 13.6). Infra: Vercel (deploy — 13.10) + Neon (PostgreSQL) + Sentry (monitoring — 13.10) + GitHub Actions (CI — lint/test — 15.3) + Upstash (rate limit — 14.8 / real-time — 16.3). Qarorlar (trade-off — 15.7: 2.5 — har qaror sababli): Next.js full-stack (alohida backend emas — kichik-o'rta SaaS — sodda — 13.5: 2.4 — Server Actions yetadi; agar juda katta/mikroservis kerak — 16.2 — boshqacha), PostgreSQL (relyatsion — jamoa/loyiha/vazifa bog'lanishlari — 6.1 — JOIN, izchillik; NoSQL — bog'lanishlar murakkab), Vercel (oson deploy — Next.js'ga maxsus — 13.10). Ikki nuqta: (1) stack — Next.js + TypeScript + Prisma + PostgreSQL + Auth.js + Stripe + Vercel (zamonaviy full-stack SaaS stack); (2) har qaror sababli (full-stack Next.js — sodda, alohida backend murakkabliksiz; PostgreSQL — relyatsion — bog'lanishlar — 13.11: 2.4 — texnologiya tanlovi). Bu stack — zamonaviy SaaS'ning keng tanlovi (Next.js + Prisma + PostgreSQL + Stripe + Vercel — "T3 stack"ga yaqin — tez, full-stack, deploy oson). Qarorlar sababli (15.7: 2.5 — trade-off) — Next.js full-stack (kichik-o'rta — sodda — alohida NestJS backend ortiqcha; agar katta jamoa/mikroservis — 16.2), PostgreSQL (relyatsion — bog'lanishlar — vazifa loyiha jamoa — JOIN). Stack tanlash — capstone'ning texnologiya qarori (13.11: 2.4 — har qism mos texnologiya, sababli). Bu stack — sizning g'oyangizga ham mos (CRM, booking — bir xil stack — faqat asosiy funksiya farq). Bu kitobda o'rgangan barcha texnologiya (Next.js, Prisma, Auth.js, Stripe, Vercel) — bu capstone'da birlashadi (mahorat real loyiha).
7. Integratsiya — bu loyiha butun kitobni birlashtiradi
- Frontend (1, 11, 12, 13 QISM): Next.js, React, state, UI, kanban.
- Backend (5, 13.5, 13.6): Server Actions, Route Handlers (webhook).
- DB (6-QISM): Prisma, PostgreSQL, multi-tenancy sxema.
- Auth (13.9, 14.5): Auth.js, rollar, multi-tenancy.
- Xavfsizlik (14-QISM): izolyatsiya (A01), validatsiya, to'lov xavfsizligi.
- Performance/SEO (13.7, 13.8): kesh, image, metadata, scaling 9.9-bob.
- Email/upload/i18n (5.19, 8.8/8.10, 8.30): taklif, biriktirma, ko'p til.
- Audit/RBAC (8.26, 8.7): faollik tarixi, rol asosida ruxsat.
- Deploy/DevOps (10, 13.10, 15.3): Vercel, CI/CD, monitoring (Sentry).
- Professional (15-QISM): toza kod, lint, debugging, portfolio.
8. Eng yaxshi amaliyotlar (best practices)
- MVP avval (auth+jamoa+vazifa — keyin kengaytir — 13.11: 2.8).
- Multi-tenancy har joyda (teamId, jamoa tekshir — A01 — eng muhim).
- Bosqichma-bosqich (poydevor funksiya sayqal — 13.11: 2.7).
- Erta deploy (oqim ishlasin — 13.10).
- Har qatlam xavfsizlik (auth + Server Action + DB — 14-QISM).
- Server Actions (CRUD) (alohida backend emas — sodda — 13.5).
- Toza kod + lint (15.1, 15.3 — portfolio sifati).
- Test asosiy oqimlar (auth, to'lov — 11.17).
- Monitoring (Sentry — production — 13.10).
- Portfolio sifati (sayqallangan — jonli demo — 15.8).
8A. Kengaytirilgan funksiyalar (MVP'dan keyingi qatlam)
MVP (auth + jamoa + loyiha + vazifa) ishlagach, SaaS'ni to'liq production darajaga olib chiquvchi funksiyalar quyida yo'naltiriladi. Har biri — talab + hint + mos QISM (yechim kodi berilmaydi — o'zingiz yozib ko'ring).
KENGAYTIRILGAN FUNKSIYALAR (har biri — mustaqil bosqich):
EMAIL (5.19 / 8.10): taklif, parol tiklash, bildirishnoma
hint: Resend/Nodemailer + shablon; navbat (queue) — sekin bloklamasin
FAYL UPLOAD (8.8 / 10.24): avatar, vazifaga biriktirma
hint: S3/UploadThing; validatsiya (tur, hajm — 14-QISM); imzolangan URL
AUDIT LOG 8.26-bob: Activity jadvali — kim, nima, qachon
hint: har muhim amalda yozuv; teamId bilan; faqat admin ko'radi
I18N 8.30-bob: ko'p til (uz/ru/en)
hint: next-intl; matnlar tashqarida (JSON); sana/valyuta format
REAL-TIME (8.18 / 16.3): jonli bildirishnoma, kanban sinxron
hint: WebSocket/Pusher/Upstash; optimistic + server tasdiq
RBAC 8.7-bob: rol asosida ruxsat (owner > admin > member)
hint: har Server Action'da rol tekshir; markazlashgan policy funksiya
Har funksiya — mustaqil bosqich (bittadan, MVP ustiga)
Har biri xavfsizlik bilan (upload validatsiya, audit izolyatsiya — 14-QISM)Kengaytirilgan funksiyalar — MVP ustiga qo'shiladigan production qatlami (har biri mustaqil bosqich — bittadan). Email (5.19 / 8.10 — taklif, parol tiklash, bildirishnoma): hint — Resend yoki Nodemailer + HTML shablon; sekin yuborishni navbatga (queue) qo'yish (so'rovni bloklamaslik). Fayl upload (8.8 / 10.24 — avatar, vazifaga biriktirma): hint — S3 yoki UploadThing; qat'iy validatsiya (fayl turi, hajmi — 14-QISM — xavfli fayl yuklanmasin); imzolangan (signed) URL. Audit log (8.26 — Activity jadvali — kim, nima, qachon): hint — har muhim amalda (yaratish, o'chirish, rol o'zgartirish) yozuv;
teamIdbilan (multi-tenancy); faqat admin ko'radi. I18n (8.30 — ko'p til — uz/ru/en): hint — next-intl; matnlarni koddan tashqariga (JSON lug'at); sana/valyuta lokalga mos formatlash. Real-time (8.18 / 16.3 — jonli bildirishnoma, kanban sinxron): hint — WebSocket, Pusher yoki Upstash; optimistic yangilash + server tasdig'i. RBAC (8.7 — rol asosida ruxsat — owner > admin > member): hint — har Server Action'da rol tekshirish; ruxsatni markazlashgan policy funksiyaga jamlash (tarqoq emas). Ikki nuqta: (1) har funksiya — mustaqil bosqich (MVP ustiga, bittadan — 13.11: 2.7); (2) har biri xavfsizlik bilan (upload validatsiya, audit izolyatsiya, RBAC tekshir — 14-QISM). Bu funksiyalar — SaaS'ni "ishlaydigan"dan "production"ga o'tkazadi (real foydalanuvchi kutadigan qatlam).
8B. DevOps va production checklist
DEVOPS OQIMI (10-QISM / 13.10):
CI 15.3-bob: GitHub Actions — lint + type-check + test (har push)
DB migratsiya: Prisma migrate (deploy'da avtomatik)
ENV: sirlar (.env) — Vercel/platforma sozlamalarida (kodda emas — 14-QISM)
DEPLOY: Vercel (Next.js) — preview (PR) + production (main)
MONITORING (10.9 / 13.10): Sentry (xato) + log + uptime
BACKUP: DB avtomatik zaxira (Neon/Supabase)
PRODUCTION CHECKLIST (ishga tushirishdan oldin):
[ ] Xavfsizlik: multi-tenancy izolyatsiya har query (A01 — 14-QISM)
[ ] Xavfsizlik: input validatsiya (Zod), rate limit 14.8-bob, CSRF/XSS
[ ] Xavfsizlik: sirlar env'da, parol hash (bcrypt/argon2 — 14.5)
[ ] To'lov: Stripe webhook imzo tekshir 13.6-bob, test/live kalit ajrat
[ ] Performance: kesh 13.7-bob, rasm optim 13.8-bob, N+1 query yo'q (6-QISM)
[ ] SEO: metadata, sitemap, OG (marketing sahifalar — 13.8)
[ ] Miqyos: DB indeks (teamId, tez-tez query), connection pool 9.9-bob
[ ] Test: asosiy oqim (auth, to'lov, izolyatsiya — 11.17 / 8.11)
[ ] Monitoring: Sentry ulangan, xato ogohlantirish
[ ] a11y + responsive: har qurilma, klaviatura navigatsiya
CI/CD — har push tekshiriladi, avtomatik deploy (10-QISM)
Production checklist — ishga tushirishdan OLDIN har band bajarilganDevOps va production checklist — SaaS'ni ishonchli ishga tushirish (10-QISM / 13.10). DevOps oqimi: CI (15.3 — GitHub Actions — lint + type-check + test har push'da — buzuq kod deploy bo'lmasin); DB migratsiya (Prisma migrate — deploy'da avtomatik); ENV (sirlar
.env— platforma sozlamalarida, kodda emas — 14-QISM); deploy (Vercel — preview har PR'da + production main'dan); monitoring (10.9 / 13.10 — Sentry xatolar + log + uptime); backup (DB avtomatik zaxira — Neon/Supabase). Production checklist (ishga tushirishdan oldin har band bajarilgan bo'lishi shart): xavfsizlik (multi-tenancy izolyatsiya har query — A01; input validatsiya — Zod, rate limit — 14.8, CSRF/XSS; sirlar env'da, parol hash — 14.5), to'lov (Stripe webhook imzo tekshirish — 13.6, test/live kalit ajratish), performance (kesh — 13.7, rasm optimizatsiya — 13.8, N+1 query yo'q — 6-QISM), SEO (metadata, sitemap, OG — 13.8), miqyos (DB indeks —teamIdva tez-tez query'lar, connection pool — 9.9), test (asosiy oqim — auth, to'lov, izolyatsiya — 11.17 / 8.11), monitoring (Sentry ulangan, xato ogohlantirish), a11y va responsive (har qurilma, klaviatura navigatsiya). Ikki nuqta: (1) CI/CD — har push tekshiriladi, avtomatik deploy (10-QISM — qo'lda emas, ishonchli); (2) production checklist — ishga tushirishdan oldin har band bajarilgan (xavfsizlik, to'lov, performance — hech biri o'tkazib yuborilmasin). Bu checklist — "kodim ishlaydi"dan "production'ga tayyor"gacha bo'lgan farq (real foydalanuvchi, real to'lov — xato qimmat).
8C. Arxitektura tanlovi: monolit vs mikroservis
Monolit (bu capstone) yoki mikroservis? Bu capstone — monolit (Next.js full-stack — bir loyiha, bir deploy). Bu — kichik-o'rta SaaS uchun to'g'ri tanlov (sodda, tez, bir jamoa boshqaradi — 13.5: 2.4). Mikroservis (16.2 — mustaqil servislar: auth, to'lov, bildirishnoma alohida) faqat katta miqyosda (ko'p jamoa, alohida masshtablanadigan qism, mustaqil deploy) mantiqli bo'ladi. Trade-off (15.7: 2.5): monolit — sodda boshlanadi, lekin juda katta bo'lsa boshqarish qiyinlashadi; mikroservis — mustaqil masshtab/deploy, lekin murakkab (tarmoq, tranzaksiya, monitoring). Amaliy qoida: monolitdan boshlanadi (bu capstone), keyin haqiqiy ehtiyoj paydo bo'lsa qismlar ajratiladi (masalan bildirishnoma servisi alohida). SaaS ideal domenlarga bo'linadi (9-QISM — Clean/DDD — auth, billing, loyiha, bildirishnoma domenlari) — hatto monolitda ham modulli (keyin ajratish oson). Cross-ref: DDD qatlamlash — 9-QISM; mikroservis — 16.2.
9. Capstone loyiha: "To'liq Production SaaS"
Butun kitob bilimini real SaaS'da birlashtirish — sizning bosh portfolio loyihangiz.
Maqsad
To'liq, production-darajadagi SaaS qur (TaskFlow yoki o'z g'oyangiz) — auth, jamoa (multi-tenancy), asosiy funksiya, obuna, deploy.
Talablar (requirements)
- G'oya: SaaS tanla (TaskFlow yoki o'z — real, original — 2.1).
- Auth: ro'yxat/login (email+Google), rollar (13.9, 14.5).
- Multi-tenancy: jamoa izolyatsiya (har so'rov jamoa tekshir — A01).
- Asosiy funksiya: loyiha/vazifa CRUD (Server Actions — 13.5).
- Interaktiv: kanban drag-drop (optimistic — 13.5).
- Obuna: Stripe (free/pro, webhook — 13.6).
- Dashboard: statistika + SEO (13.7, 13.8).
- Xavfsizlik: audit (14.9 — multi-tenancy, validatsiya).
- Deploy: Vercel + monitoring 13.10-bob.
- Portfolio: jonli demo + GitHub + README 15.8-bob.
Maslahatlar (hint)
- MVP avval (Xato — yarim qolmasin — 13.11).
- Multi-tenancy har joyda (A01 — eng muhim).
- Bosqichma-bosqich (5-bo'lim).
- Erta deploy (oqim).
- Har qatlam xavfsizlik (14-QISM).
"Tayyor" mezonlari (acceptance criteria)
- Auth + rollar (ishlaydigan).
- Multi-tenancy izolyatsiya (jamoa ajratilgan).
- Asosiy funksiya (loyiha/vazifa CRUD).
- Kanban (interaktiv).
- Obuna (Stripe to'lov).
- Deploy (jonli — havola).
- Xavfsizlik audit o'tdi.
- Portfolio (demo + GitHub + README).
A'lo daraja
- Real-time bildirishnoma 16.3-bob.
- Test (asosiy oqimlar — 11.17 / 8.11).
- Analytics dashboard.
- Mobil-responsive + a11y (WCAG).
- Audit log 8.26-bob + RBAC 8.7-bob.
- Ko'p til — i18n 8.30-bob.
- Fayl upload 8.8-bob + email bildirishnoma 5.19-bob.
- Real foydalanuvchi (deploy + ulashish).
Kengaytirish g'oyalari (capstone'dan keyin)
- Mobil ilova (React Native — bir API'ni ulash).
- Ommaviy API (integratsiya — webhook, API kalit — mijozlar uchun).
- AI funksiya (vazifa tavsiya, avtomatik xulosa — LLM integratsiyasi).
- Enterprise tarif (SSO, ilg'or RBAC, maxsus domen).
- Marketplace/plaginlar (kengaytiriladigan ekotizim).
Bu SIZNING capstone loyihangiz — kodini o'zingiz yozasiz (portfolio cho'qqisi).
Har bosqichda qiyinchilik bo'lsa — mos QISMni qayta o'qing (xarita — 5-bo'lim), yoki «[bosqich] qanday qilinadi?» deb so'rang. Har bosqich quyida yo'naltiriladi (yechim emas — yo'nalish).
10. Xulosa va keyingi bobga ko'prik
Bu bobda to'liq production SaaS capstone'ni rejalashtirdik:
- SaaS g'oyasi 2.1-bob; talablar (TaskFlow — 2.2); arxitektura (qatlamlar — 3); DB sxema (multi-tenancy — 4); bosqichma-bosqich (8 bosqich — 5); stack (6); best practices (8); kengaytirilgan funksiyalar (email/upload/audit/i18n/real-time/RBAC — 8A); DevOps + production checklist (8B); monolit vs mikroservis (8C).
Endi siz to'liq, production SaaS qura olasiz: auth, multi-tenancy, asosiy funksiya, obuna, deploy — butun kitob bilimini birlashtirib. Bu — sizning bosh portfolio loyihangiz (mahorat isboti — 15.8).
Keyingi bob — 16.2-bob: Mikroservis arxitekturasidagi loyiha. Monolit SaaS'ni 16.1-bob bildik; endi mikroservis arxitekturasini ko'ramiz: katta tizimni mustaqil servislarga bo'lish (auth servisi, to'lov servisi, bildirishnoma servisi), ular qanday muloqot qiladi (REST/gRPC, message queue), va qachon mikroservis kerak. Bu — katta miqyosli tizim arxitekturasi (9-QISM amaliyoti).
Foydalanilgan rasmiy/ishonchli manbalar
- Next.js, Prisma, Auth.js, Stripe rasmiy hujjatlari (SaaS stack)
- Vercel SaaS templates; "Build a SaaS" qo'llanmalar (multi-tenancy, billing)
- Stripe billing docs (subscription, webhook); Neon/Supabase (PostgreSQL)
- T3 Stack (create.t3.gg) — zamonaviy full-stack SaaS yondashuvi
- OWASP Top 10 (multi-tenancy izolyatsiya, A01 IDOR) — xavfsizlik checklist asosi
- Web Content Accessibility Guidelines (WCAG) — a11y talablari (A'lo daraja)
- The Twelve-Factor App — production konfiguratsiya va deploy tamoyillari
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!