Langkau ke kandungan

200OK

Sistem kitaran hayat dan semakan permohonan untuk perniagaan amanah

Semakan pelbagai meja, dokumen ditandatangani dan peraturan keterlihatan yang ketat untuk perniagaan amanah yang menjual melalui rangkaian ejen.

Jenis
Aliran kerja terkawal untuk perniagaan amanah
Bahagian kami
Kerjasama rakan kongsi pada pangkalan kod dikongsi. Halaman ini menerangkan sumbangan kami sahaja.

404 Not Found

Apa yang tiada

Sebuah perniagaan produk amanah menjual penempatan melalui rangkaian ejen. Setiap permohonan bergerak daripada draf melalui beberapa meja semakan (pematuhan, pentadbir, pemegang amanah, kewangan, dokumen ditandatangani) kepada kelulusan, penyelesaian, kematangan atau penamatan awal. Komisen, pembayaran, dokumen berkanun dan notis semuanya bergantung pada laluan itu. Yang tiada ialah kitaran hayat yang kekal betul dan boleh diaudit sementara peraturan ketat menentukan siapa boleh melihat apa. Kami bekerja di dalam pangkalan kod dikongsi, bersama pasukan rakan kongsi.

Kekangan

Apa yang perlu dipatuhi oleh sistem, sebelum sebaris kod ditulis.

Semakan
Pintu semakan maker-checker, dokumen ditandatangani sebagai rekod KYC, dan langkah yang tidak boleh dibatalkan setelah diambil.
Peranan
19 peranan, setiap satu dengan paparan sendiri bagi rekod yang sama.
Keterlihatan
Peraturan keterlihatan yang tegas: ejen melihat setiap nama dan kod downline, jualan rekrut langsung sahaja, dan penyelesai (settlor) mereka sendiri sahaja.
Cabang
Pasukan lain menolak ke repositori yang sama, jadi kerja kami dipotong daripada cabang asas remote setiap hari.
Skema
Data langsung: perubahan skema ialah SQL yang ditulis tangan, dijalankan oleh pemilik pangkalan data, sesetengahnya sebelum API dideploy.

Sistem

CRM Nuxt berhubung dengan REST API NestJS melalui HTTPS, dengan log masuk JWT dan pengawal peranan. Prisma memetakan API kepada MySQL. Borang diisi daripada templat Handlebars, dipaparkan sebagai PDF oleh Puppeteer dan disimpan dalam storan objek serasi S3, yang dibaca oleh pelayar melalui pautan presigned. E-mel transaksi dan kata laluan sekali guna dihantar melalui penyedia e-mel, bersama pemberitahuan dalam aplikasi. Penjadual menjalankan kerja berasaskan masa seperti penghentian. Modul berisiko dihantar dalam keadaan dimatikan di sebalik flag persekitaran. Perubahan skema bergerak di luar saluran: fail SQL berseksyen, diindeks mengikut urutan ia mesti dijalankan, dan dijalankan secara manual sebelum deployment yang memerlukannya.

Rajah 1Dilukis daripada binaan
HTTPSpertanyaanisisimpanmuat naikbaca presignedjalankanhantargatesebelum deploy01CRMskrin staf dan ejen02REST APIJWT, pengawal peranan03Pangkalan dataMySQL melalui Prisma04Pemaparan PDFtemplat ke borang05Storan objekserasi S306Penjaduallarian ikut masa07E-melmel dan kod08Feature flagmati bermaksud ditolak09Fail SQLberseksyen, jalan manual

CRM → REST API → MySQL, dengan pemaparan PDF, storan objek dan e-mel di sisi API, dan fail SQL dijalankan di luar saluran sebelum setiap deployment.

  • Dibina oleh kami
  • Data disimpan
  • Pihak ketiga
  • Luar talian atau luar saluran
Baca lukisan sebagai teks

Bahagian

  1. 01CRM: skrin staf dan ejen
  2. 02REST API: JWT, pengawal peranan
  3. 03Pangkalan data: MySQL melalui Prisma
  4. 04Pemaparan PDF: templat ke borang
  5. 05Storan objek: serasi S3
  6. 06Penjadual: larian ikut masa
  7. 07E-mel: mel dan kod
  8. 08Feature flag: mati bermaksud ditolak
  9. 09Fail SQL: berseksyen, jalan manual

Aliran

  • CRM ke REST API: HTTPS
  • REST API ke Pangkalan data: pertanyaan
  • REST API ke Pemaparan PDF: isi
  • Pemaparan PDF ke Storan objek: simpan
  • REST API ke Storan objek: muat naik
  • CRM ke Storan objek: baca presigned (alternatif atau luar saluran)
  • Penjadual ke REST API: jalankan
  • REST API ke E-mel: hantar
  • Feature flag ke REST API: gate
  • Fail SQL ke Pangkalan data: sebelum deploy (alternatif atau luar saluran)

Skrin

Kebanyakan sistem ini berada di sebalik log masuk, jadi skrin utamanya dilukis semula di sini sebagai skematik. Bar menggantikan setiap nama dan angka.

DrafDihantarSemakanDiluluskanSelesaiPintu semakanPematuhanPentadbirPemegang amanahKewanganDokumen ditandatangani
Rekod permohonan sebagai skematik: tab langkah daripada draf hingga selesai, dan pintu semakan dengan flag masing-masing.Skematik, tiada data sebenar

Keputusan

Keputusan kejuruteraan yang membentuk binaan ini, dan sebab setiap satu dibuat.

  1. Lampiran imej melalui daftar, bukan lajur baharu.

    Catatan ialah satu lajur, dan fail hanya boleh merujuk kepada satu baris, jadi lampiran dikunci pada jadual, baris dan medan. Daftar pusat mengisytiharkan pasangan mana yang boleh membawa imej, dan peraturan "ditahan daripada" padanya adalah wajib: meninggalkannya menyebabkan kod tidak dapat dikompil.

  2. Kejayaan separa sengaja tidak boleh dicuba semula.

    Muat naik berkumpulan mendarat di mana sahaja ia boleh. Cubaan semula akan menduakan fail pada baris yang sudah menerimanya, dan penolakan per baris adalah deterministik, jadi tiada apa yang hilang. Fail dilampirkan hanya pada baris yang berjaya, tidak sekali-kali pada baris yang sekadar dipilih.

  3. Keadaan baharu dan bukan lajur pemegang.

    Penghantaran balik pergi kepada pegawai bertanggungjawab (PIC) ejen terlebih dahulu. Keadaan baharu ialah pilihan yang lebih selamat: senarai benar sedia ada menolak keadaan yang tidak dikenalinya, tetapi akan mengabaikan lajur baharu secara senyap.

  4. Modul berisiko dihantar dalam keadaan dimatikan.

    Pengendalian penghentian dan kematian berada di sebalik flag. Apabila dimatikan, API menolak permintaan itu.

  5. Skema secara manual, mengikut urutan.

    Setiap perubahan ialah fail SQL berseksyen, dan satu indeks menyatakan fail mana dijalankan sebelum deployment mana. Tiada penjana, dan tiada apa-apa ditolak ke pangkalan data dari komputer riba.

200OK

Siap

Sumbangan kami merentasi kitaran hayat: lampiran imej pada catatan, langkah penyelarasan untuk penghantaran balik, pustaka dokumen dengan kunci padam, semakan dua fasa dengan flag lampu isyarat, dan halaman pratonton yang memaparkan setiap mesej sistem dalam kedua-dua saluran e-mel dan dalam aplikasi. Setiap satu dihantar pada cabang dikongsi, bersama kerja pasukan rakan kongsi itu sendiri.

Kiraan pangkalan kod dikongsi, diambil daripada kodnya. Ia bukan bahagian kami sahaja. Dikira pada 3 November 2026. Tiada angka di sini merupakan hasil perniagaan.
AngkaApa yang dikira
14keadaan dalam kitaran hayat permohonan
5pintu semakan pada jualan, ditambah satu untuk KYC ejen
19peranan pengguna
48fail skema SQL yang ditulis tangan
387fail spesifikasi ujian

Dibina dengan

  • NestJS
  • Prisma
  • MySQL
  • Nuxt 4
  • Tailwind CSS
  • DaisyUI
  • Puppeteer
  • Handlebars
  • Storan serasi S3
  • Swagger
  • Jest