منصوبے کے بارے میں
Open Civic Signal OS ایک civic-technology پلیٹ فارم ہے جسے monorepo کے طور پر فراہم کیا گیا ہے۔ اس کا بیان کردہ مقصد کمیونٹی سگنلز — رہائشیوں کی جانب سے رپورٹ کیے گئے بار بار پیش آنے والے مقامی مسائل — کو ایک ایسے عوامی بیک لاگ میں تبدیل کرنا ہے جسے لوگ سمجھ سکیں، اس پر بھروسہ کر سکیں اور اس پر عمل کر سکیں۔
پروڈکٹ کے وعدے کو دو زاویوں سے بیان کیا گیا ہے۔ ایک شہری کے لیے راستہ یہ ہے: سادہ زبان میں کسی حقیقی مقامی مسئلے کی رپورٹ کریں، دیکھیں کہ اسے ترجیح کیوں دی گئی، اور اس بات پر نظر رکھیں کہ کیا تبدیلی آئی، کس نے جواب دیا اور کیا ابھی بھی زیرِ التوا ہے۔ سرکاری ملازمین اور کمیونٹی لیڈرز کے لیے، بیان کردہ مقصد شور (noise) کو کم کرنا، اہم ترین چیزوں کو سامنے لانا اور ترجیح بندی کے پیچھے موجود شواہد کو واضح رکھنا ہے۔
دستاویزی صارف سفر (user journeys) تین کرداروں کا احاطہ کرتے ہیں:
- کمیونٹی ممبر: مسئلے کی رپورٹ کرنا، کسی موجودہ مسئلے کی نقل بنانے کے بجائے اس کی حمایت کرنا، یہ سمجھنا کہ کوئی مسئلہ کیوں زیادہ ترجیح رکھتا ہے، اور کمیونٹی یا کسی ادارے سے اپ ڈیٹس کو ٹریک کرنا۔
- کمیونٹی ماڈریٹر یا کوآرڈینیٹر: کمیونٹی کی گفتگو کا جائزہ لینا، واضح کردار کی حدود کے ساتھ پیشرفت کی اپ ڈیٹس شائع کرنا، اور بحث کے چینلز کو قابلِ استعمال اور قابلِ audit رکھنا۔
- سرکاری ملازم: اعلیٰ ترجیحی مسائل کی تیزی سے شناخت کرنا، پیشرفت کی اپ ڈیٹس شائع کرنا، اور اقدامات کی ترتیب کو درست ثابت کرنے کے لیے شفاف شواہد کا استعمال کرنا۔
README موجودہ UX خلا کے بارے میں واضح ہے: ریپوزٹری اور ایپلی کیشن تکنیکی پلیٹ فارم کی اچھی وضاحت کرتے ہیں، لیکن پہلی بار استعمال کرنے والوں کے لیے بہت جلد بہت زیادہ نیویگیشن اور ورک فلو انتخاب پیش کر دیتے ہیں۔ اس لیے جاری فرنٹ اینڈ کام پہلی بار استعمال کے تجربے کو سادہ بنانے، بنیادی اقدامات کو واضح کرنے اور ذہنی بوجھ (cognitive load) کو کم کرنے پر مرکوز ہے۔ بیان کردہ پروڈکٹ سمت میں پہلی اسکرین کی سادہ ترتیبی ساخت، واضح کال ٹو ایکشن، کم رکاوٹ والا آن بورڈنگ اور تصدیق، قابلِ رسائی کی بورڈ اور موبائل نیویگیشن، اور بھروسے کے ایسے ذرائع شامل ہیں جو بغیر کسی پیچیدہ اصطلاحات کے رینکنگ اور پیشرفت کی وضاحت کریں۔
دستاویزی تکنیکی اسٹیک:
- Backend: Java 21 مع Spring Boot، apps/api-java میں، جو API اور ترجیحی خدمات کی میزبانی کرتا ہے۔
- Frontend: React, TypeScript اور Vite، apps/web-react میں، جو عوامی ڈیش بورڈ اور ایک آپریٹر کنسول فراہم کرتا ہے۔
- Data: موجودہ MVP کے لیے JSON-first، جبکہ PostgreSQL کو منصوبہ بند فہرست میں رکھا گیا ہے۔
- Contracts: OpenAPI تعریفیں اور مشترکہ اسکیمات packages/contracts کے تحت۔
- دیگر ڈائریکٹریز: مقامی ماحول اور تعیناتی کے اثاثوں کے لیے infra، اور حکمت عملی، آئیڈیاز، آرکیٹیکچر اور ایگزیکیوشن پلانز کے لیے docs۔
پروجیکٹ چلانا: کینونیکل انٹیگریٹڈ ڈویلپمنٹ رن ٹائم Docker ہے، جسے npm run docker:dev:up کے ذریعے شروع کیا جاتا ہے، جسے README فرنٹ اینڈ اور بیک اینڈ کے لیے ضروری hot-reload راستہ قرار دیتا ہے۔ معاون کمانڈز میں docker:dev:doctor, docker:dev:ps, docker:dev:logs اور docker:dev:down شامل ہیں، ساتھ ہی ایک پروڈکشن جیسا موڈ (docker:prod:up) اور پہلے سے بنے ہوئے GHCR امیجز (docker:ghcr:up / docker:ghcr:down) ہیں جن کا CI امیج ورک فلو .github/workflows/docker-images.yml میں ہے۔ README واضح طور پر کہتا ہے کہ انٹیگریٹڈ رویے کی تصدیق کرتے وقت Docker کی عدم دستیابی کو مقامی ماحول کی رکاوٹ سمجھا جائے نہ کہ اس کا کوئی متبادل راستہ نکالا جائے۔ موجودہ MVP کے لیے npm install اور npm run prioritize جیسے اسکرپٹس بھی موجود ہیں۔ الگ تھلگ کام کے لیے کمپوننٹ-صرف فال بیک راستے موجود ہیں: apps/web-react کے اندر npm run dev کے ساتھ React ایپ چلانا، اور apps/api-java کے اندر ./mvnw spring-boot:run کے ساتھ Java API چلانا۔
ریپوزٹری کے اضافی مواد میں لانچ وسائل (ڈیمو اور آرکیٹیکچر GIFs، ایک آرکیٹیکچر SVG، docs کے تحت ایک لینڈنگ پیج، ایک آئیڈیاز دستاویز اور ایک ایجنٹ پلے بک)، ایک برانڈ اور بصری اثاثہ کٹ (لوگو مارک، ورڈ مارک، بینر، سوشل کارڈ اور PNG لوگو)، اور پروجیکٹ کے GitHub issues کے ذریعے روڈ میپ ٹریکنگ شامل ہے۔
مجموعی طور پر، یہ ریپوزٹری ایک ابتدائی مرحلے کا، کھلے طور پر دستاویزی civic engagement اور ترجیحی پلیٹ فارم ہے: یہ شہری اور ایڈمنسٹریٹر کے متوقع سفر کی تعریف کرتا ہے، Spring Boot اور React کمپوننٹس کے ساتھ Docker پر مبنی monorepo ڈویلپمنٹ فلو فراہم کرتا ہے، API کنٹریکٹس کو ریپو میں رکھتا ہے، اور اپنے باقی ماندہ UX سادہ سازی کے کام کو کھلے عام فہرست کرتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.