Projects · Mobil
RegulationOS

RegulationOS düzenlenmiş bir süreci bir grafik olarak ele alır. Bir adım, bağlı olduğu adımlar onaylanmadan açılamaz. Bir adımdaki formu göndermek, o onayı istemektir. Çekirdek motor ve sprint 2.5’e kadar React Native uygulaması kuruldu. Yayına hazırlık aşaması hâlâ planlı.
Çözümler
Öne atlanamayan bir süreç
Adımlar düğümdür. Bağımlılıklar kenardır. Bir adımı onaylamak yalnızca önkoşullarının hepsi bitmiş adımları açar. Bir döngü kaydedilmeden reddedilir, böylece bir süreç kendini bekleyemez.
Form adıma aittir
Her adımın bir JSON Schema şablonu ve bir sürümü vardır. Gönderim Ajv ile doğrulanır. Geçersiz bir form yarım saklanmış bir adım değil, bir 400’dür. Klinik psikoloji şablonları, dilekçeler ve beyanlar ilk küme olarak tohumlanır.
İlerleme ve uzun kutup
API sürecin ne kadarının bittiğini ve kritik yolu, en uzun bağımlılık zincirini döner. Kişi hem yüzdeyi hem de sonu gerçekten hangi adımların tuttuğunu görebilir.
Süreç
01
Grafiği tanımla
Bir yönetici adım ve önkoşul ekler. API önce grafikte döngü arar. Döngü yaratacak bir istek reddedilir.
02
Açılmış olanı aç
Telefon süreci yükler. Kilitli adımlar kilitli kalır. Bağımlılık haritası bir grafik görünümü için düğüm, kenar ve durum olarak vardır.
03
Formu gönder
Adımın şablonu alınır, doldurulur ve yollanır. Şema kontrol edilir. Geçerli bir gönderim adımı gönderildi olarak işaretler.
04
Onayla, sonra aç
Onayda motor yeni açılan adımları hesaplar, yazar ve döner. İlerleme ve kritik yol o yazmayla güncellenir.
Teknoloji
Motor kendi paketidir
Grafik, Kahn topolojik sıralaması, bir DFS döngü kontrolü, geçişli bağımlılıklar, açma motoru, ilerleme hesaplayıcısı ve kritik yol @regulationos/dag-engine içindedir. Paketin kendi testleri vardır, belgelenen çalışmada 42 motor testi dahil.
Hono, Drizzle, Postgres
API Express değil, Hono’dur. Drizzle ORM’dir. Postgres, 5432’deki yerel sunucuyla kapışmasın diye Docker’da 5434’te çalışır. Kimlik JWT’dir. Karar kaydı uygulamanın yalnızca çevrimiçi olduğunu açıkça söyler.
Bir Turborepo ve bir React Native uygulaması
Depo bir Turborepo’dur. API ve Metro ayrı çalışır. Form şablonları tohumlanır. Faz 0 ve motor bitti. Mobil arayüz sprint 2.5’e kadar. Yayına geçmek hâlâ plan olan aşamadır.
- React Native
- Hono
- Drizzle
- PostgreSQL
- TypeScript
- Turborepo
- Ajv