ماهي قواعد بيانات PostgreSql ؟

تـــعتبر PostgreSql من أنظمـة قواعــد البيـــانات الحديثة من نوع object relational database management system - ORDBMS تـــم تطويرها في جامعة كاليفورنيا كمشروع مفتوح المصدر تحت رخصة TBL ويتم إستخدامها في إدارة وتخزين البيانات المرتبطة بمواقع الإنترنت و البرامج يمكن قرآءة المزيد عنها من https://wiki.postgresql.org/wiki/Main_Page

من الأمور التي يحتاج لها أي مطور / مبرمج هو الرجوع إلى ملفات التوثيق والمساعدة للتقنية التي يعمل عليها ومن الأفضل أن تكون هذه الملفات موجودة على الجهاز الذي يعمل عليه وبالنسبة لنا سنقوم بإعداد نسخة من ملفات التوثيق والمساعدة الخاصة ب ruby on rails على الجهاز المحلي والخطوات كما يلي :

قبل البدء سنحتاج إلى إعداد البرامج التالية على الجهاز

  • git .
  • rvm - ruby version manager .
  • ruby on rails .

يمكن الإستفادة من المواضيع السابقة التي تشرح كيفية إعداد ماسابق

الخطوة الأولى / إعداد مساحة خاصة gemset لحفظ الجيمات التي سنحتاج لها لاحقا ننفذ الأوامر التالية من Terminal :

config/application.rb
1
2
3
rvm gemset create railsdocs

rvm gemset use railsdocs

الخطوة الثانية / تنزيل مشروع rails من موقع github بتنفيذ الأمر التالي من Terminal:

config/application.rb
1
git clone http://github.com/rails/rails.git

بعد إنتهاء تنزيل النشروع نقوم بالدخول على مجلد المشروع وتنفيذ الأمر التالي ليتم تحميل الجيمات الخاصة بالمشروع :

config/application.rb
1
2
3
cd rails

bundle install --without db

الخطوة الثالثة / إنشاء ملفات المستندات بتنفيذ الأمر التالي :

config/application.rb
1
rake rdoc

بعد الإنتهاء سنجد أنه تم إنشاء ملفات التوثيق والمساعدة في مجلد rdoc والموجود في مجلد doc يمكننا الدخول وفتح صفحة index.html في المتصفح والبدء في إستعراض Rails API .

وأخيراً

يمكننا الآن نقل هذا المجلد وحفظه في أي مكان ، بعد نقل المجلد يمكن مسح مجلد مشروع rails والذي قمنا بتنزيله في السابق وايضا railsdocs gemset بتنفيذ مايلي :

config/application.rb
1
2
3
4
5
6
7
cd ..

rm -rf rails

rvm gemset delete railsdocs

rvm gemset use default

هذا المشروع هو عبارة عن منصة مصغرة لما يعرف بالتمويل الجماعي crowd funding وهو مشروع مفتوح المصدر تم بنائه من قبل الشركة الناشئة Lockitron وذلك بعد فشلها في جمع التمويل الذي تحتاج عن طريق موقع kickstarter , قــرر أفراد الفريق القيــام ببناء منصتهم الخاصة والتي تساعدهـم على جمع التمويل اللازم لبنـاء مشروعهم الذي تعتمد فكــرته على عمل حلول تقنية مبتكره لتحكـــم في قفل الأبواب عن طريق الهــواتف الذكيــة مع العديد من الخدمــات الأخرى Keyless entry using your phone يمكن الإطلاع على مزيد من تفاصيل المشروع من موقع الشركة Lockitron.

مميزات المشروع

  • سهولة التقنية التي بنائه بها وهي ruby on rails .
  • إمكانية التعديل على المشروع وسهولة نشره على الويب بإستخدام منصة herok .
  • خدمة الدفع الإلكتروني من آمازون Amazon Flexible Payments Service.

روابط متعلقة بالموضوع

كود النسخة العربية من selfstarter

عرض للنسخة العربية على الويب demo

مقال جيد يوضح مفهوم التمويل الجماعي من أراجيك

يمكن إرسال بريد إلكتروني عن طريق rails و ذلك بإستخدام ActionMailer في هذا الموضوع سنقوم بتجربة إرسال البريد وسنفترض أن لدينا نموذج إدخال بيانات لموظف يتكون من (الاسم - العمر - البريد ) ونريد إرسال رسالة تآكيد إلى الموظف بعد حفظ بياناته والخطوات كما يلي :

>> إنشاء تطبيق جديد للتجربة إرسال البريد

Terminal
1
rails new mailapp

>> إنشاء صفحة تسجيل بيانات الموظف والجداول المرتبطة بها بتنفيذ الاوامر التالية من Terminal

Terminal
1
rails g scaffold employee name:string age:integer email:string
Terminal
1
rake db:migrate

توجد عدة حلول جاهزة تسمح بإضافة نظام إدارة المستخدمين إلى التطبيقـــات المبنية ب ruby on rails ومن أهمهــا وأكثرهــا شهرة devise حيث يمكن للمطور إضافة نظام كامل لإدارة المستخدمين وفي وقت قياسي، يتكون devise من 11 وحدة او module فيما يلي شرح مختصر لكل منها :

  • Registrable يتم عن طريق هذه الوحدة إدارة (تسجيل - تعديل - حذف ) بيانات المستخدمين.

  • Database Authenticatable تخزين وتشفير معلومات المستخدمين في قاعدة البيانات والتحقق منها عند دخول المستخدم الى التطبيق.

ماهي RubyGem؟

هي عبارة عن برنامج أو حزمة برمجية مكتوبة بلغة Ruby و غالبا مايطلق عليها “gem” أو “gems” يتم إدارة هذه البرامج أو الحزم عن طريق برنامج Ruby Gems حيث يسمح بتحميل وإعداد وإدارة الجيمات gems و يوجد لكل gem إسم ورقم إصدار

1
gem "rake", "~> 10.0.4"

تستخدم الجيمات عادة لإضافة ميزة أو خاصية للتطبيقات أو البرامج المكتوبة بلغة ruby أو تطوير خاصية موجودة فعلا و يتم إنشاء العديد من الحزم gems من قبل المبرمجين لحل مشكلة ما او اضافة ميزة غير موجودة ومن ثم إتاحة الفرصة للآخرين لإستخدامها وإضافتها الى برامجهم وتطبيقاتهم مما يسهل ويوفر الكثير من الوقت للآخرين للعمل على أمور أخرى لم يتم حلها بعد ( لا داعي لإعادة اختراع العجلة!) يمكن الحصول عل مزيد من المعلومات من موقع rubygems

خطوات نشر تطبيق Rails على منصة العمل Heroku

التسجيل في الموقع وإعداد Toolbelt

ستجد في الرابط التالي موضوع مفصل عن طريقة التسجيل وإعداد نظام التشغيل للعمل مع هذه المنصة Heroku منصة عمل متكاملة للتطبيقات السحابية

إعداد تطبيق أو مشروع Ruby on Rails

لنشر التطبيق على Heroku نحتاج لعمل بعض التعديلات البسيطة على ملفات مشروع Rails وسنطبق هذه التعديلات على المثال الذي قمنا بعمله سابقا على الرابط

maktabti

التعديل على ملف Gemfile

نقوم بالدخول على مجلد المشروع وفتح ملف Gemfile كما توضح الصورة

نبذه مختصره عن Heroku

هو منصة عمل متكاملة لنشر التطبيقات السحابية وتعرف الخدمة التي يقدمها بــ PaaS وهي إختصار لـ
platform-as-a-service provider أي موفر لخدمة منصات الأعمال حيث يقدم طريقة سهلة جدا للمطورين لنشر تطبيقاتهم على الإنترنت حيث يمكن نشر تطبيقات مبنية بلغات برمجية مثل java - php - ruby - python وغيرها و للمزيد عن اللغات التي يدعمها يمكن مراجعة الرابط التالي heroku language support

مالذي سنقوم بعمله في الجزء الثاني

سنقوم بالتعديل على شكل التطبيق وتغيير إتجاه الصفحات من اليسار إلى اليمين ثم تغيير العناوين إلى العربية وأخيراً تغيير مسار الصفحة الإفتراضية للتطبيق إلى صفحة عرض الكتب ومسح صفحة rails الإفتراضية routes