§01
Umumiy ko'rinish
- Bu nima: Hujjatlarni hamkorlikda tahrirlash serveri (paket nomi
tiptap_editor) — bir nechta foydalanuvchi bitta hujjatni CRDT (Yjs) orqali real vaqtda birga tahrirlaydi. healthcare-platform salomatlik ekotizimining bir qismi (ehtimol laboratoriya/tibbiy hisobotlarni tahrirlash; TipTap sxemasida vizual shablonlar uchun SVG tugunlari mavjud). Ma'lumotlar Postgres'da saqlanadi, instansiyalar orasidagi sinxronizatsiya Redis orqali amalga oshiriladi. - Turi / holati / roli: api (real vaqtli backend) / maintained / solo — barcha 83 ta kommit Davron Yuldashev tomonidan yozilgan (ikki identifikator
davr@Davrons-MacBook-Pro.local82 +yul.davron.931 — ikkalasi ham uniki). - Faollik davri: 2025-01-22 → 2025-04-19 (~3 oy), 83 kommit.
§02
Stek
- Tillar: TypeScript (Bun runtime).
- Real-time/collab: @hocuspocus/server 2.15 + database / redis / webhook / logger kengaytmalari, Yjs 13.6 (+ y-protocols, y-websocket, y-webrtc), TipTap 2.11 (core + starter-kit + collaboration),
@hocuspocus/transformer(TiptapTransformer). - API/infra: Elysia (+ CORS) va Express, REST (
rest.ts) + Swagger/OpenAPI, ws (websocket). BullMQ (queue + queue_processors), ioredis.joseorqali JWT avtorizatsiya (+ jsonwebtoken) —JWT_SECRETbilanjwtVerify. - Ma'lumotlar: PostgreSQL (Drizzle ORM + pg/postgres,
db/schemadocumentsjadvali), Redis (Hocuspocus tugunlar orasidagi sinxronizatsiya + navbatlar). - Build: Bun, drizzle-kit migratsiyalari.
§03
Nima qilindi
Solo, 83 kommit. Koddan:
- Hocuspocus serveri (
hocuspocus.ts, 11.6 KB) hujjatlarni Postgres'da saqlash bilan (@hocuspocus/extension-databaseorqali load/store), masshtablash uchun Redis kengaytmasi, webhook/logger kengaytmalari. - JWT autentifikatsiya Hocuspocus darajasida (
jwtVerify, jose) — hujjat xonasiga ulanishda tokenni tekshirish. - Maxsus TipTap sxemasi — o'ziga xos tugunlar
CustomDiv,CustomSVG(xmlns bilan blok darajasidagi SVG), maxsus atributlar (class/style/id/onclick) — domen shablonlari uchun muharrir kengaytmasi (grafikali tibbiy hujjatlar). - REST + Swagger (
rest.ts,swagger/) — collab serveri ustidagi HTTP qatlami. - Navbatlar (
queue.ts,queue_processors/, BullMQ) — fonda qayta ishlash (hujjatlarni eksport/konvertatsiya qilish?).
§04
Texnik chellenjlar
Kod bilan tasdiqlangan (hocuspocus.ts, package.json).
- CRDT asosidagi real vaqtli hamkorlik → Yjs + Hocuspocus: bir nechta foydalanuvchining tahrirlarini qo'lda operatsion transformatsiyalarsiz konfliktsiz birlashtirish. Oson bo'lmagan soha (CRDT) — kuchli muhandislik signali.
- Collab serverini gorizontal masshtablash →
@hocuspocus/extension-redis: Yjs yangilanishlari Redis pub/sub orqali instansiyalar bo'ylab sinxronlanadi (yagona tugun emas). Taqsimlangan real-time'ni tushunish. - Yjs hujjatining persistentligi →
extension-database+ Drizzle/Postgres: binar Yjs holatinidocumentsjadvaliga load/store qilish. - Xona xavfsizligi → ulanishda JWT tekshiruvi (jose) — hujjatni faqat avtorizatsiyalangan foydalanuvchilar tahrirlashi mumkin.
- Muharrirning domenga xos kengaytmasi → tibbiy shablonlar uchun maxsus TipTap tugunlari (ixtiyoriy atributli SVG/div); HTML↔Yjs uchun TiptapTransformer.
- Webhook integratsiyasi →
extension-webhookhujjat o'zgarishlari haqida tashqi xizmatlarni xabardor qiladi (ehtimol healthcare-platform backend'i).
§05
AI yordamida ishlab chiqish
- Topilgan sessiyalar: 0 (to'liq kalit bo'yicha mos kelish yo'q). Bu davr (2025-boshi) foydalanuvchining CC'ni faol ishlatishidan oldingi.
- AI bilan nima qilingan: ma'lumot yo'q.
- AI-workflow patternlari: yo'q.
§06
Yutuqlar va metrikalar
- To'liq real vaqtli collab backend: CRDT + persistentlik + Redis masshtablash + JWT + navbatlar.
- ~3 oy davomida yakka o'zi 83 kommit.
- Tibbiy hujjatlar uchun maxsus muharrir sxemasi (SVG/div tugunlari).
- Integratsiyalar: Postgres, Redis, webhooklar, Swagger API.