منصوبے کے بارے میں

CodeWorld ایک تعلیمی پروگرامنگ ماحول ہے جو Haskell میں نافذ کیا گیا ہے۔ یہ ہندسی اشکال، اینیمیشنز، اور انٹرایکٹو یا ملٹی پلیئر گیمز کے لیے ایک سادہ ریاضیاتی ماڈل فراہم کرتا ہے۔ ویب پر مبنی ماحول کا مقصد زیرو سیٹ اپ ایڈیٹر اور کمپائلر کے ساتھ تدریس کی معاونت، پروجیکٹس کی آسان شیئرنگ اور کلاؤڈ اسٹوریج، اور GHCJS کے ذریعے براہ راست براؤزر میں پروگرام چلانے کی صلاحیت ہے۔ اقسام - CodeWorld (code.world) Haskell کی ایک تعلیمی قسم اور ریاضی کی تدریس کی معاونت کے لیے ڈیزائن کردہ لائبریریاں استعمال کرتا ہے۔ - CodeWorld Haskell (code.world/haskell) معیاری Haskell کو ہدف بناتا ہے، لہٰذا پروگرام سائٹ پر GHCJS کے ساتھ چل سکتے ہیں یا codeworld-api پیکیج اور blank-canvas کے ذریعے مقامی طور پر کمپائل کیے جا سکتے ہیں۔ - CodeWorld Blocks (code.world/blocks) کم عمر طلبہ کے لیے ڈریگ اینڈ ڈراپ انٹرفیس پیش کرتا ہے؛ README نوٹ کرتا ہے کہ اس میں اب بھی بگز ہیں اور اسے استعمال کرنے کی سفارش نہیں کی جاتی۔ حیثیت اور معاونت CodeWorld کو مستحکم بتایا گیا ہے اور یہ برسوں سے اسکولوں میں استعمال ہو رہا ہے، ریپوزٹری دستاویزات میں صارفین کی ایک جزوی فہرست موجود ہے۔ توڑ پھوڑ کرنے والی تبدیلیاں عام امریکی K-12 اسکولی سمسٹروں کے درمیان شیڈول کی جاتی ہیں تاکہ خلل کم ہو۔ Google کوڈ تقسیم کرتا ہے لیکن بتاتا ہے کہ CodeWorld کوئی سرکاری Google پروجیکٹ نہیں ہے اور یہ کوئی معاونت فراہم نہیں کرتا؛ سوالات codeworld-discuss میلنگ لسٹ پر بھیجے جاتے ہیں، اور طلبہ پر مبنی سوال و جواب فورم help.code.world پر موجود ہے۔ شروعات صارفین براہ راست code.world ملاحظہ کر سکتے ہیں؛ میزبان سروس استعمال کرنے کے لیے کوئی ڈاؤن لوڈ یا انسٹالیشن درکار نہیں۔ ریپوزٹری ان لوگوں کے لیے ہے جو ماحول کو فورک، تبدیل، یا اس میں تعاون کرنا چاہتے ہیں۔ بلڈ اور تعیناتی CodeWorld کی بلڈ اور رن کو طویل بتایا گیا ہے لیکن روٹ ڈائریکٹری میں انسٹالیشن اسکرپٹس کے ذریعے خودکار ہے، جو Debian، Ubuntu، RedHat، اور CentOS سمیت زیادہ تر Linux ڈسٹری بیوشنز پر کام کرتی ہیں۔ مراحل: پروجیکٹ روٹ میں جائیں، ./install.sh چلائیں، پھر ./run.sh، اور localhost:8080 پر سسٹم تک رسائی حاصل کریں۔ تبدیلیوں کے بعد، ./build.sh پہلے سے نصب ٹولز اور لائبریریوں کا استعمال کرتے ہوئے CodeWorld خود کو دوبارہ کمپائل کرتا ہے، پھر ./run.sh سرور شروع کرتا ہے۔ Docker بلڈ اور رن کمانڈز بھی دستاویزی ہیں، تاہم README کہتا ہے کہ Docker ابھی ترقی کا تجویز کردہ طریقہ نہیں ہے اور کنٹینر میں کلائنٹ ID رسائی، مشترکہ NFS ماؤنٹنگ، اور دیگر سیٹ اپ مراحل کی کمی ہے۔ Stack کو مقامی بلڈز کے لیے غیر معاون بتایا گیا ہے اور یہ فی الحال شیل اسکرپٹس یا Docker کے متبادل کے طور پر کام نہیں کرتا۔ تصدیق CodeWorld Google تصدیق، مقامی تصدیق، یا تصدیق غیر فعال کے ساتھ کم فعالیت کے ساتھ چلانے کی معاونت کرتا ہے۔ تصدیق کے بغیر، صارفین کوڈ لکھ، بلڈ، اور چلا سکتے ہیں لیکن پروجیکٹس اور فولڈرز محفوظ یا منظم نہیں کر سکتے۔ Google تصدیق کے لیے web/clientId.txt میں محفوظ Google API کلید درکار ہے؛ چلتی ہوئی مثال اس فائل میں تبدیلیاں اٹھا لیتی ہے۔ README پروجیکٹ اور OAuth کلائنٹ ID بنانے کے لیے Google Cloud دستاویزات کا لنک دیتا ہے، اور نوٹ کرتا ہے کہ یہی وہ طریقہ کار ہے جو سرکاری لائیو سائٹ استعمال کرتی ہے۔ مقامی تصدیق SQLite3 ڈیٹا بیس استعمال کرتی ہے، صرف BCrypt پاس ورڈ ہیشز محفوظ کرتی ہے، اور JWT پر مبنی اسٹیٹ لیس تصدیق استعمال کرتی ہے۔ یہ اس وقت فعال ہوتی ہے جب ایپلیکیشن روٹ میں codeworld-auth.db فائل موجود ہو۔ codeworld-auth CLI ٹول اکاؤنٹس کا انتظام کرتا ہے: init-accounts ایک خالی ڈیٹا بیس بناتا ہے، create-account بے ترتیب طور پر تیار کردہ پاس ورڈ اور اکاؤنٹ کی حیثیت جیسے Expired کے ساتھ صارف بناتا ہے، اور دیگر ذیلی کمانڈز اپ ڈیٹس اور حذف کو سنبھالتی ہیں۔ generate-secret کے ذریعے codeworld-auth.txt میں JWT خفیہ کلید تیار کرنا ضروری ہے؛ سرور کو یہ خفیہ کلید ظاہر نہیں کرنی چاہیے۔ انتباہات ورچوئل سرورز پر، ڈیفالٹ RAM اکثر GHC کے لیے ناکافی ہوتی ہے کیونکہ CodeWorld انسٹالیشن کے دوران بہت بڑے Haskell پروجیکٹس کمپائل کرتا ہے۔ README dd، mkswap، اور swapon کے ساتھ 2 GB کی swap فائل بنانے کی تجویز دیتا ہے؛ انسٹالیشن سست ہو سکتی ہے لیکن کامیاب ہونی چاہیے، اور swap فائل عام طور پر پہلی سرور رن کے بعد ہٹائی جا سکتی ہے جب تک کہ بہت بڑے پروگراموں کا ارادہ نہ ہو۔ تعاون تعاون میں Contributor License Agreement سے اتفاق شامل ہے، جس کی تفصیلات CONTRIBUTING.md میں ہیں۔ بگز اور رسمی فیچر درخواستیں GitHub ایشو ٹریکر پر جاتی ہیں۔