24/09/2025
"ကျနော်နဲ့ ERP သို့မဟုတ် SI ခရီး"
အခန်း - ၂
📖 အခန်း (၂) – Brief History of Frappe
အခု ဒီအခန်း ၂ မှာ Frappe Framework ဘယ်လို ဖြစ်ပေါ်လာသလဲဆိုတာကနေ အရင် စတင်ပါမယ်...
🕰️2010 ခုနှစ်ဝန်းကျင်
Frappe တည်ထောင်သူတွေက ERP System တခုကို PHP နဲ့ စလုပ်ခဲ့ကြတယ်... အဲ့နောက်ပိုင်း Python - Django အတွဲကို သဘောကျပြီး Frappe ကို ဖန်တီးကြတာ ဖြစ်တယ်... သူတို့က ဘယ်လို တွေးသလဲဆိုတော့ WordPress ရဲ့ အလုပ်လုပ်ပုံကို သဘောကျတဲ့အတွက် WordPress for Business Apps ဆိုတဲ့ Concept မျိုးကို အတွေးရကြတယ်...
သူတို့ရဲ့ အစပိုင်း လုပ်ပုံက ရိုးရှင်းပါတယ်...
- Web UI ကနေ WordPress က Post Type လိုပဲ Doctype ဆိုတာတွေကို ဖန်တီးနိုင်မယ်...
- Coding အများကြီး မလိုပဲ Metadata နဲ့ပဲ Form(UI),Table,API တွေ တခါတည်း အလုပ်လုပ်နိုင်မယ်...
- Website ရော Admin Panel ရော နှစ်မျိုးလုံး ပါမယ်
ဆိုတော့ 2011 မှာ ERPNext ကို Release လုပ်ပါတယ်... ERP software for SMEs ဆိုပါတော့... ဒီနေရာမှာ နည်းနည်း သိစေချင်တာက ERPNext(One of the Apps) သုံးနိုင်ဖို့ Frappe Framework ဆိုတာကို လိုအပ်ပါတယ်...
ဒါက Frappe Framework နဲ့ ERPNext ဘယ်လို စတင်ခဲ့လဲဆိုတဲ့ Brief History of Frappe ဖြစ်ပါတယ်...
🏗️ Frappe Framework Structure
Frappe Framework ရဲ့ Structure ကို ဆက် ပြောလိုက်ပါမယ်... မပြောခင် Frappe ဟာ Developer တွေ ကိုယ်တိုင် လိုက်လုပ်နိုင်ဖို့အတွက် စာတွေရေးပြရုံနဲ့ အဆင်မပြေတော့ပါဘူး... ပွင့်ပွင့်လင်းလင်းပြောရရင် ကျနော်က Video တွေထဲမှာ ကိုယ်မျက်နှာကြီး ကိုယ်ပြန်ကြည့်ရတာ စိတ်အဆင်မပြေဘူး Camera ကြောက်တယ်ပေါ့ဗျာ... စာရေးရတာကိုပဲ ပိုကြိုက်ပါတယ်... အခုတော့ အထက်က ပြောခဲ့တဲ့ အခြေအနေတွေကြောင့် ကျနော် Video အခန်းဆက်လေးတွေ လုပ်ပေးပါမယ်... ကျနော်တို့က Developer မဟုတ်ဘူး User တွေ အသုံးပြုသူတွေ အတွက်လည်း သက်တောင့် သက်သာ လိုက်ကြည့်လို့ ရမယ့် Video လေးတွေလည်း လုပ်ပေးပါမယ်... ok ဆက်လိုက်ကြရအောင်...
1️⃣ Bench (Manager)
ဒီကောင်က Frappe ကို run နိုင်တယ်... အသစ်အသစ်တွေ တည်ဆောက်နိုင်တယ်...စသဖြင့် အကုန်လုံးလိုလို Manage လုပ်နိုင်တဲ့ Main Command Tool တခုပဲ...
2️⃣ Site (Database + Setup)
site တခုဆိုတာ လွယ်လွယ်ပြောရရင် Project တခုပဲ... အဲ့ Project ကို DB တလုံးနဲ့ ချိတ်ထားတယ်...
site ထဲမှာ အဓိကအားဖြင့်
⚙️site_config.json (Redis Config,DB Config)
📄 app.txt - ဒီ site ထဲမှာ install လုပ်ထားတဲ့ App list
📂private/public - Storage Data တွေ သိမ်းနိုင်ဖို့ အတွက်
3️⃣ App (Modules + Business Logic)
App တွေဆိုတဲ့နေရာမှာ ကိုယ်တိုင် Custom App တွေလည်း တည်ဆောက်နိုင်သလို ရှိပြီးသားတွေကိုလည်း install လုပ်နိုင်တယ်... အခန်း ၁ တုန်းက ပြောခဲ့တဲ့ App မျိုးတွေပေါ့...
App ထဲမှာကတော့...
⚙️ config
🗂️ doctype
🧩 module
🎨 public (css, js, …)
📝 templates (Jinja2)
🔄 patches (DB scripts
ဒီလို Directory တွေ ပါတယ်...
4️⃣ Doctype (Model)
OOP မှာဆို Everything is object. ဆိုတဲ့ သဘောတရား တခု ရှိတယ်... Frappe မှာတော့ Everything is doctype. ဆိုပါတော့...
ဒီ doctype တခုချင်းစီက သက်ဆိုင်ရာ အလိုက် Model+Tabel+Form(UI) ကို auto-generate လုပ်ပေးတယ်...
- .json (DB Scheme)
- .js (Frontend)
- .py (Backend)
5️⃣ Database (MariaDB/MySQL)
Doctype တခုစီတိုင်းအတွက် သက်ဆိုင်ရာ Table တလုံးစီ ရှိတယ်... Query ပိုင်းကတော့ ကိုယ် လည်သလို ရေးပဲ...
6️⃣ Redis (Caching,Queue,SocketIO)
Title မှာ ပါတဲ့ Instance တွေကို သုံးပါတယ်..
- Cache
- Queue (Background Jobs. E.g Email Send)
- SocketIO (Realtime. E.g Chat/Comment/Noti)
ကျန်တဲ့အရာတွေ ရှိသေးပေမယ့် ဒီလောက် Structure ကို သိရင် ကျနော်တို့ ဆက်လုပ်ဖို့ အဆင်ပြေပါပြီ... သာမန် အသုံးပြုသူတွေကတော့ သိဖို့ မလိုပေမယ့် Customer တွေဆိုတာက လုပ်ငန်းချင်းတူရင်တောင် လုပ်ငန်းခွင် Standard Procedures တွေက မတူကြဘူး... ဒီတော့ Customization ကောင်းကောင်းလုပ်နိုင်ဖို့ လိုတယ်... ဒါမှ Customer စိတ်ကြိုက်ဖြစ်ပြီး Customer အတွက်လည်း ဒီ Software သုံးရတဲ့ Effective ကို ပိုပြီး မြင်သာစေမယ်...
👨💻 Developer တွေအနေနဲ့ အများကြီး မဟုတ်ရင်တောင် အတော်အသင့်လောက်တော့ သိထားရမယ့် Skill တွေ
🌐 HTML, CSS, JS
🖥️ Python
🗄️ MariaDB / MySQL
💻 Unix Commands
🔗 JSON (Serialization)
အရေးအကြီးဆုံး သိရမှာက Business Logic ပဲ Customer ဘာလိုချင်နေတာလဲ ... ဒါမှမဟုတ် မိမိကိုယ်တိုင် ဘာလိုချင်နေတာလဲ ဆိုတဲ့ အချက်က အရေးအကြီးဆုံး ဖြစ်ပါတယ်...
စာအဆုံးထိ ဖတ်ပေးတဲ့အတွက် ကျေးဇူးတင်ပါတယ်...
"ကျနော်နဲ့ ERP သို့မဟုတ် SI ခရီး"
အခန်း - ၃ မှာ ပြန်ဆုံကြမယ်ခင်ဗျ...