منصوبے کے بارے میں
Pagoda ایک فل اسٹیک ویب ڈیولپمنٹ اسٹارٹر کٹ اور ایڈمن پینل ہے جو Go میں لکھا گیا ہے۔ یہ کوئی فریم ورک نہیں بلکہ ایک ٹیمپلیٹ ریپوزٹری ہے: آپ اسے `go get` استعمال کرنے کے بجائے کلون کرتے ہیں، پھر کوڈ کو اپنی ایپلیکیشن کے مطابق ڈھالتے ہیں۔ اس کا بیان کردہ مقصد یہ ہے کہ ایک مکمل ویب فریم ورک سے متوقع زیادہ تر فعالیت فراہم کی جائے جبکہ تمام کوڈ آپ کے کنٹرول میں رہے، بغیر کسی سخت انٹرفیس اور بغیر کسی لاک اِن کے۔
بنیاد اور اسٹیک
- بیک اینڈ: Echo (HTTP فریم ورک)، Ent (کوڈ جنریشن کے ساتھ ORM)، Gomponents (Go میں لکھے گئے HTML کمپونینٹس)۔
- فرنٹ اینڈ: سرور سائیڈ رینڈرڈ HTML کے ساتھ AJAX/جزوی اپ ڈیٹس کے لیے HTMX، کلائنٹ سائیڈ رویے کے لیے Alpine.js، اور اسٹائلنگ کے لیے Tailwind CSS کے اوپر DaisyUI۔ یہ پروجیکٹ JavaScript یا CSS لکھے بغیر، اور یہاں تک کہ HTML براہ راست لکھے بغیر، جدید UIs بنانے پر زور دیتا ہے۔
- اسٹوریج: SQLite ڈیفالٹ ڈیٹا بیس ہے، جو مستقل بیک گراؤنڈ ٹاسک قطاروں کے لیے بھی استعمال ہوتا ہے؛ کیشنگ اِن میموری ہے۔ README نوٹ کرتا ہے کہ Postgres اور Redis پہلے ڈیفالٹ تھے اور اس سیٹ اپ کے لیے ایک غیر دیکھ بھال شدہ برانچ کی طرف اشارہ کرتا ہے۔
شامل فعالیت
- سروس کنٹینر جس میں تصدیق، کیش، کنفیگریشن، ڈیٹا بیس، فائلوں، میل، ORM، ٹاسکس، ویلیڈیٹر اور ویب سروسز کے لیے ڈیپنڈنسی اِن جیکشن ہے؛ اسے ایک کال میں شروع کیا جا سکتا ہے اور خوش اسلوبی سے بند کیا جا سکتا ہے اور یہ روٹ ہینڈلرز کو پاس کیا جاتا ہے۔
- viper کا استعمال کرتے ہوئے ماحولیاتی متغیر اوور رائیڈز کے ساتھ YAML کے ذریعے کنفیگریشن، نیز ماحول کی تبدیلی (خاص طور پر ایک ٹیسٹ ماحول)۔
- Ent کے ذریعے ڈیٹا بیس آٹو مائیگریشنز، اور ایک الگ ٹیسٹ ڈیٹا بیس (ڈیفالٹ میں اِن میموری SQLite)۔
- User اور PasswordToken کے لیے ORM اینٹٹی ٹائپس، نئی اینٹٹی ٹائپس بنانے اور جنریٹ کرنے کے لیے Makefile ہیلپرز کے ساتھ۔ Ent کو ہٹانے سے ڈائنامک ایڈمن پینل بھی ہٹ جاتا ہے۔
- Gorilla سیشنز کے ذریعے سیشنز، کوکیز میں محفوظ اور انکرپٹڈ؛ README خبردار کرتا ہے کہ لائیو ماحول کے لیے ڈیفالٹ انکرپشن کلید تبدیل کریں۔
- تصدیق: لاگ اِن/لاگ آؤٹ، پاس ورڈ ری سیٹ ٹوکنز (bcrypt کے ساتھ ہیش شدہ، قابل ترتیب میعاد)، رجسٹریشن، صارفین پر ایڈمن فلیگ، تصدیق، بغیر تصدیق، یا ایڈمن رسائی کی ضرورت کے لیے مڈل ویئر، اور ای میل تصدیق۔
- ایڈمن پینل جس میں کوڈ جنریشن، رسائی کنٹرول اور ایک روڈ میپ شامل ہے؛ اسکرین شاٹس اینٹٹی لسٹ/ایڈٹ ویوز اور ٹاسک قطار کی نگرانی دکھاتے ہیں۔
- کسٹم مڈل ویئر، ہینڈلرز، ایرر ہینڈلنگ، ری ڈائریکٹس اور ٹیسٹنگ ہیلپرز (HTTP سرور، ریکوئسٹ/ریسپانس ہیلپرز، Goquery) کے ساتھ روٹنگ۔
- UI لیئر: Gomponents پر مبنی کمپونینٹس، لے آؤٹس، صفحات، جمع کرانے کی پروسیسنگ کے ساتھ فارمز، اِن لائن ویلیڈیشن اور CSRF تحفظ، ماڈلز، آئیکنز، نوڈ کیشنگ اور فلیش میسجنگ۔
- اضافی سروسز: pager، کیش (ڈیٹا اور ٹیگز سیٹ/گیٹ/فلش کریں)، قطاروں، ڈسپیچر اور مانیٹرنگ کے ساتھ ٹاسکس، cron، فائل اپ لوڈز اور کیش بسٹنگ اور کیش کنٹرول ہیڈرز کے ساتھ اسٹیٹک/پبلک فائلیں، ای میل، HTTPS اور لاگنگ۔
شروع کرنا
Go انسٹال کریں، ریپوزٹری کلون کریں، اختیاری ٹولز (Ent جنریٹر، لائیو ری لوڈنگ کے لیے Air، Tailwind CLI) کے لیے `make install` چلائیں، `make admin email=...` کے ساتھ ایڈمن اکاؤنٹ بنائیں (کنسول ایک جنریٹڈ پاس ورڈ پرنٹ کرتا ہے)، پھر `make run` چلائیں؛ ایپ ڈیفالٹ میں localhost:8000 پر دستیاب ہے اور ڈیٹا `dbs` ڈائریکٹری میں ہوتا ہے۔ `make watch` خودکار CSS ری کمپائلیشن کے ساتھ لائیو ری لوڈنگ کو فعال کرتا ہے۔
لائسنسنگ اور حیثیت
یہ پروجیکٹ MIT لائسنس یافتہ ہے، Awesome Go میں مذکور ہے، اور اس کے CI ٹیسٹ اور Go Report Card بیجز ہیں۔ README تفصیلی ہے اور زیادہ تر کوڈ بیس کا ایک رہنمائی کرنے والا دورہ ہے، جو ان ڈیولپرز کے لیے موزوں ہے جو بیٹریز شامل نقطہ آغاز چاہتے ہیں جبکہ کسی بھی کمپونینٹ کو تبدیل کرنے کی صلاحیت برقرار رکھتے ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.