✨ Eksa Framework v3.5.1

Ruby Version Rack Version License Framework Role

Eksa Framework adalah micro-framework MVC (Model-View-Controller) modern yang dibangun di atas Ruby dan Rack. Didesain untuk pengembang yang menginginkan kecepatan, kode yang bersih, dan tampilan antarmuka Glassmorphism yang elegan secara out-of-the-box.


🚀 Fitur Unggulan v3.5.1

  • 💎 Modern Glassmorphism UI: Tampilan transparan yang indah dengan Tailwind CSS & Lucide Icons.
  • Rack 3 & Middleware Support: Mendukung standar terbaru dan pembuatan pipeline middleware kustom.
  • 🛠️ Powerful CLI: Inisialisasi project (eksa init), jalankan server (eksa run), generate komponen, ganti database, dan migrasi data otomatis.
  • 💾 Agnostic Database Engine: Dukungan multi-database (SQLite & MongoDB Atlas) dengan sistem adapter yang otomatis dan transparan.
  • 🛡️ Secure Environment Variables: Dukungan file .env untuk menyimpan kredensial database (MongoDB URI) secara aman.
  • ⚙️ JIT Schema Initialization: Inisialisasi tabel/koleksi secara otomatis tepat saat model pertama kali diakses.
  • 🧪 Built-in Testing: Lingkungan pengujian otomatis siap pakai menggunakan RSpec dan rack-test.
  • 🛡️ Built-in Authentication: Sistem keamanan BCrypt dengan proteksi sesi Rack untuk registrasi log-in area Admin.
  • 📝 Interactive CMS Dashboard: Panel admin integratif untuk mengedit isi blog Markdown & transisi visibilitas via UI.
  • 🔍 Dynamic SEO Engine: Penanganan otomatis file robots.txt, sitemap.xml, dan dukungan JSON-LD (Structured Data).
  • 🎨 Asset Helpers: Library bawaan untuk pengelolaan CSS dan JS yang lebih rapi.
  • 👻 Aesthetic Error Pages: Halaman 404 dengan desain Glassmorphism yang elegan secara native.

🛠️ Instalasi Cepat

1. Install via Gem

gem install eksa-framework

2. Inisialisasi Project Baru

mkdir my-app && cd my-app
eksa init

3. Konfigurasi Keamanan (Opsi MongoDB)

Salin .env.example menjadi .env dan isi kredensial Anda:

cp .env.example .env

4. Jalankan Server

bundle install
eksa run

💻 Panduan Pengembangan

1. CLI Generator & Utility

Hemat waktu dengan menggunakan generator bawaan:

# Membuat controller dan view template
eksa g controller Berita

# Membuat model (Schema akan dibuat otomatis saat diakses)
eksa g model Artikel

# Membuat postingan blog baru dengan meta tambahan
eksa g post "Panduan Eksa" --category "Tutorial" --author "Eksa Team" --image "url-gambar.jpg"

# Mengaktifkan/menonaktifkan fitur (auth / cms)
eksa feature enable auth
eksa feature enable cms

# Manajemen Database (Switch & Migrate)
eksa db switch mongo                             # Pindah ke MongoDB
eksa db migrate --from sqlite --to mongo         # Pindah data ke Cloud

# Reset Password Admin
eksa reset-password admin PasswordRahasia123

2. Database & Model (Agnostic)

Definisikan schema tabel Anda di dalam model. Eksa akan menanganinya secara cerdas baik di SQLite maupun MongoDB:

class Artikel < Eksa::Model
  def self.setup_schema
    db.execute "      CREATE TABLE IF NOT EXISTS artikels (\n        id INTEGER PRIMARY KEY AUTOINCREMENT,\n        judul TEXT,\n        konten TEXT,\n        penulis TEXT\n      )\n    SQL\n  end\n\n  def self.semua\n    db.execute(\"SELECT * FROM artikels ORDER BY id DESC\")\n  end\nend\n"

3. CMS Dashboard & Blog Engine

Eksa memiliki sistem blog bawaan yang cara kerjaja mirip Jekyll namun dengan kemudahan CMS.

  • Blog Markdown: Simpan file .md di _posts/ dengan Front Matter YAML.
  • Dynamic Routing: Otomatis mengenali rute /posts/:slug.
  • Admin Panel: Akses /cms untuk mengedit konten menggunakan editor terintegrasi, ganti status (Draft/Published), atau hapus postingan.

4. SEO & Metadata

Eksa secara otomatis menghasilkan:

  • http://localhost:9292/sitemap.xml
  • http://localhost:9292/robots.txt
  • JSON-LD: Skema BlogPosting dan WebSite disematkan otomatis pada layout untuk peringkat SEO yang lebih baik.

5. Menjalankan Test

Gunakan RSpec yang sudah terkonfigurasi untuk memastikan aplikasi stabil:

bundle exec rspec

📜 Lisensi

Proyek ini dilisensikan di bawah MIT License. Lihat file LICENSE untuk detail lebih lanjut.