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.
- 💎 Modern Glassmorphism UI: Tampilan transparan yang indah dengan Tailwind CSS & Lucide Icons.
- 📱 Mobile Responsive Navigation: Sistem navigasi adaptif dengan mobile drawer yang elegan.
- ⚡ 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
.envuntuk 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 EksaMination 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.
gem install eksa-frameworkmkdir my-app && cd my-app
eksa initSalin .env.example menjadi .env dan isi kredensial Anda:
cp .env.example .envbundle install
eksa runHemat 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 PasswordRahasia123Definisikan 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 <<~SQL
CREATE TABLE IF NOT EXISTS artikels (
id INTEGER PRIMARY KEY AUTOINCREMENT,
judul TEXT,
konten TEXT,
penulis TEXT
)
SQL
end
def self.semua
db.execute("SELECT * FROM artikels ORDER BY id DESC")
end
endEksa memiliki sistem blog bawaan yang cara kerjaja mirip Jekyll namun dengan kemudahan CMS.
- Blog Markdown: Simpan file
.mddi_posts/dengan Front Matter YAML. - Dynamic Routing: Otomatis mengenali rute
/posts/:slug. - Admin Panel: Akses
/cmsuntuk mengedit konten menggunakan editor terintegrasi, ganti status (Draft/Published), atau hapus postingan.
Eksa secara otomatis menghasilkan:
http://localhost:9292/sitemap.xmlhttp://localhost:9292/robots.txt- JSON-LD: Skema
BlogPostingdanWebSitedisematkan otomatis pada layout untuk peringkat SEO yang lebih baik.
Gunakan EksaMination (pendekatan pengujian yang lebih ringan dan terintegrasi) untuk memastikan aplikasi stabil:
# Menjalankan semua test dengan format dokumentasi
bundle exec eksa-mination -f documentationKami sangat terbuka untuk kontribusi dari siapa pun! Silakan baca panduan berikut sebelum memulai:
- Panduan Kontribusi: Langkah-langkah untuk berkontribusi kode.
- Kebijakan Keamanan: Cara melaporkan kerentanan secara privat.
- Kode Etik: Standar perilaku dalam komunitas kami.
Proyek ini dilisensikan di bawah MIT License. Lihat file LICENSE untuk detail lebih lanjut.