soulwise_persons
Albom yozuvlari. userId, status, deletedAt bo'yicha indekslar. Avval yumshoq o'chirish; PII'ning qattiq o'chirilishi 30 kundan keyin.
Muhandislar, PM'lar, jurnalistlar va hamkorlik izlovchilari uchun. To'liq pipeline, to'rtta MongoDB kolleksiyasi, EDA hodisalari, V-Model qat'iyligi, samaradorlik maqsadlari, xavfsizlik va imkoniyatlar — barchasi bitta sahifada.
Har bir bosqichda xizmat, shartnoma va hodisa mavjud.
Foydalanuvchi harakati — 'Singil uchun bugungi bobni yaratish' — yoki rejalashtirilgan cron, masalan yakshanba 9 ertalabki xulosa yoki har 6 soatda ob-havo yangilanishi.
Vazifa soulwise-chapter-generation nomli BullMQ navbatiga tushadi, qat'iy 28 soniyalik vaqt chegarasi bilan. Uzoq davom etadigan vazifalar to'xtatiladi va foydalanuvchiga 'qaytadan urinib ko'ring' deb xabar qilinadi.
ChapterGenerationService to'rt omilli so'rovni — shaxs konteksti, astrologiya, signal, marom — bitta kiritmaga jamlaydi. So'rovga foydalanuvchining hech qanday xom shaxsiy ma'lumotlari aynan o'sha holicha kirmaydi; hammasi avval tozalanadi.
AI provayderi AI_GENERATION_ADAPTER ramziy tokeni orqali chaqiriladi — provayderni almashtirish mumkin. Davom etishdan oldin javob uzunligi, tuzilishi va xavfsizligi tekshiriladi.
To'rt narsa sodir bo'ladi: inqiroz klassifikatori inqirozga oid tilni tekshiradi; aspekt-chip ekstraktori bir-uchta astrologik chipni ajratib oladi; anti-da'vo filtri taqiqlangan iboralarni olib tashlaydi; matn platforma tomonidan boshqariladigan kalit bilan AES-256 shifrlanadi.
Artefakt tegishli MongoDB to'plamiga yoziladi — boblar, kundalik yozuvlari, rezonanslar — tez qidirish uchun userId va personId indekslari bilan. Avval yumshoq o'chirish; PII'ning qattiq o'chirilishi 30 kundan keyin.
EventEmitter2 hodisasi — CHAPTER_COMPLETED, JOURNAL_CREATED — ma'lumotlar bazasiga commitdan keyin ishga tushadi. Bildirishnomalar moduli uni qabul qiladi, kiruvchi xabar yaratadi va ixtiyoriy ravishda push yuboradi (kuniga bittagacha cheklangan, sukunat soatlari hisobga olinadi).
Frontend artefaktni autentifikatsiyalangan API chaqiruvi orqali tortib oladi. Hub yangi kontent bilan qayta render qilinadi. Agar foydalanuvchi oflayn bo'lgan bo'lsa, kesh kechagi ko'rinishni xizmat qiladi va qayta ulanishda yangi artefakt paydo bo'ladi.
Har biri javob beradigan so'rovlar uchun indekslangan.
Albom yozuvlari. userId, status, deletedAt bo'yicha indekslar. Avval yumshoq o'chirish; PII'ning qattiq o'chirilishi 30 kundan keyin.
AI tomonidan yozilgan boblar, shifrlangan tana. personId, userId, generatedAt bo'yicha indekslar. Aspekt chiplari tez filtrlash uchun alohida massiv sifatida saqlanadi.
Foydalanuvchi yozgan mulohazalar, shifrlangan tana. userId, personId, createdAt bo'yicha indekslar. Qidiruv uchun matn-indeksli tana. Har bir yozuv uchun 'shaxsiy — Luminara'ga berilmasin' bayrog'i.
Har bir bog' uchun to'rt o'lchovli ballar. personId bo'yicha noyob indeks. Bob yoki kundalik yozuvidan keyin xizmat chaqiruvi orqali qayta hisoblanadi.
Qat'iy qoida: hodisalar faqat ma'lumotlar bazasiga commit qilingandan keyin ishga tushadi. Modullararo bog'liqliklar Symbol injection tokenlari orqali amalga oshiriladi, hech qachon forwardRef orqali emas. Funksional modullar o'rtasida xizmatdan xizmatga to'g'ridan-to'g'ri importlar mavjud emas.
SoulwiseEvents.CHAPTER_COMPLETED — SoulwiseEvents.CHAPTER_COMPLETED — bob shifrlangani va saqlangandan keyin ishga tushadi. Notifications-v2 uni tinglaydi; inbox elementi yaratadi; ixtiyoriy ravishda push yuboradi.SoulwiseEvents.JOURNAL_CREATED — SoulwiseEvents.JOURNAL_CREATED — kundalik yozuvi shifrlangani va saqlangandan keyin ishga tushadi. Resonance xizmati uni tinglaydi; qayta hisoblashni ishga tushiradi.SoulwiseEvents.PERSON_BIRTH_UPDATED — SoulwiseEvents.PERSON_BIRTH_UPDATED — shaxsning tug'ilish ma'lumotlari o'zgargandan keyin ishga tushadi. Sinastri keshi bekor qilinadi.SoulwiseEvents.PUSH_REQUESTED — SoulwiseEvents.PUSH_REQUESTED — notifications-v2 shartnomasiga muvofiq; push byudjeti va sokin soatlarga rioya qiladi.119 ta kuzatib boriladigan talab, hech qanday bo'shliqsiz. Har bir talab oldinga test holatiga (UTP, ITP, STP, E2E) va orqaga foydalanuvchi tarixiga bog'lanadi. 20 ta foydalanuvchi tarixi. 15 ta funksional talab. 12 ta nofunksional toifa. 8 ta global qabul darvozasi.
Bob generatsiyasi so'rovlarning 95% uchun 30 soniya yoki undan tezroq, BullMQ ish davomiyligi taqsimotiga nisbatan o'lchanadi. API p99 GET kechikishi 1,000 ta bir vaqtdagi foydalanuvchida 500 ms yoki undan yaxshiroq, k6 yuk testi orqali o'lchanadi. Frontend TTI simulyatsiya qilingan 4G'da 3 soniya yoki undan yaxshiroq, Lighthouse CI orqali o'lchanadi.
Kundalik va bob matnlari uchun platforma boshqaradigan kalitlar bilan saqlashda AES-256 shifrlash. Uzatishda TLS 1.2+; HTTP→HTTPS yo'naltirish. JWT kirish tokenlari 1 soatlik amal qilish muddati bilan, yangilash tokenlari 30 kunlik amal qilish muddati bilan, yangilashda rotatsiya. PII'ni butunlay o'chirishdan oldin 30 kunlik oyna bilan yumshoq o'chirish.
prefers-reduced-motion butun saytda hisobga olinadi — GSAP animatsiyalari faqat shaffoflik orqali silliq o'tishlarga aylanadi. Har bir interaktiv elementda VoiceOver va TalkBack yorliqlari mavjud. Har bir reliz oldidan iOS va Android'da qo'lda tekshirib chiqiladi.
Chunki yuqori oqim spetsifikatsiyasi funksiyani qaytadan quradi, mavjud modul ichida qaytadan qurish esa yoki v1 tajribasini buzgan bo'lardi, yoki keyinroq ajratib-keyin-birlashtirishga olib kelardi. Yangi modul v1 ni tegmasdan saqlaydi, v2 ga o'zini isbotlash imkonini beradi va tayyor bo'lganda toza migratsiya qiladi.
My Zodiac AI'ning mavjud backend'i MongoDB'da ishlaydi; uni almashtirish bu funksiyaga aloqasi bo'lmagan infratuzilma qaroriga aylanardi. Hujjat modeli ham boblar va kundalik yozuvlariga juda mos keladi — ichma-ich joylashgan, har xil uzunlikdagi, blob sifatida shifrlangan.
BullMQ Redis ustida ishlaydi, u esa sessiya va rate-limit uchun allaqachon stekda mavjud. Hech qanday yangi infratuzilma kerak emas. O'rnatilgan qayta urinish, vaqt tugashi va kuzatuvchanlik bob yaratish ehtiyojlarini maxsus quvurlarsiz qoplaydi.
Ichki repozitoriyda. Bu sahifadagi raqamlar va shartnomalar yuqori oqim V-Model artefaktlarini boshqacha so'zlar bilan ifodalaydi. My Zodiac AI blog klasteridagi ommaviy muhandislik blog postlari ('cosmic-story-v2' tegi bilan) qurilishning aniq qismlariga chuqurroq kiradi.
Soulwise o'z to'lqinlarini ochayotgan bir paytda, bizning yetakchi astrologiya ilovamiz allaqachon sizning qo'lingizda.
Astrologiya kontenti mushohada va o'yin-kulgi uchun. Bu yerda tavsiflangan Cosmic Story v2 imkoniyatlari ishlab chiqilmoqda; ularning mavjudligi oldindan ogohlantirmasdan o'zgarishi mumkin.