Skip to content

Project Setup: ElysiaJS + Drizzle + MySQL menggunakan Bun #2

@LearnProgrammingDev

Description

@LearnProgrammingDev

Project Setup: ElysiaJS + Drizzle + MySQL menggunakan Bun

Deskripsi Singkat

Kita akan menginisiasi dan membangun fondasi proyek backend baru di repository ini. Teknologi utama yang digunakan adalah runtime Bun, web framework ElysiaJS, dan Drizzle ORM yang dihubungkan ke database MySQL.

Issue ini adalah panduan implementasi bersifat high-level. Anda dapat menentukan arsitektur folder dan detail konfigurasi sesuai best practice.

Tugas yang Harus Diselesaikan

  • Inisialisasi Proyek Bun

    • Setup proyek baru di direktori ini (pastikan package.json dan tsconfig.json terbentuk).
  • Instalasi Dependensi

    • Install ElysiaJS sebagai web framework.
    • Install Drizzle ORM, drizzle-kit (sebagai dev dependency untuk migrasi), dan driver MySQL yang sesuai (seperti mysql2).
  • Konfigurasi Database MySQL & Drizzle

    • Setup konfigurasi koneksi ke MySQL. Gunakan environment variables (file .env) untuk kredensial database.
    • Buat file konfigurasi migrasi Drizzle (drizzle.config.ts atau sejenisnya).
    • Buat contoh skema tabel sederhana (misal tabel users) untuk memverifikasi fungsionalitas ORM.
    • Generate dan jalankan migrasi awal ke database MySQL.
  • Setup Aplikasi ElysiaJS Dasar

    • Buat entry file (misalnya src/index.ts) dan inisialisasi server Elysia.
    • Buat dua endpoint dasar untuk verifikasi:
      • Sebuah endpoint pengecekan status (misalnya GET / yang mengembalikan "Hello Elysia!").
      • Sebuah endpoint yang berinteraksi dengan database menggunakan Drizzle (contoh: endpoint untuk mengambil semua data dari tabel contoh).
  • Dokumentasi & Skrip Eksekusi

    • Tambahkan skrip pada package.json untuk menjalankan server, misalnya bun run dev.
    • Pastikan ada sedikit dokumentasi (bisa di README) tentang cara setup env lokal, cara menjalankan migrasi, dan menjalankan server.

Acceptance Criteria

  • Server dapat dihidupkan dengan perintah Bun tanpa pesan error.
  • HTTP endpoint berjalan secara normal.
  • ORM dapat membaca/menulis data ke database MySQL.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions