8000 GitHub - buku-masjid/buku-masjid: Sistem Keuangan Masjid · GitHub
[go: up one dir, main page]

Skip to content

About

Sistem Keuangan Masjid

Resources

Stars

332 stars

Watchers

3 watching

Forks

Latest commit

 

History

1,317 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buku Masjid

Buku Masjid adalah sistem pengelolaan finansial dan jadwal pengajian masjid berbasis web yang dibuat dengan framework Laravel.

Tujuan

  • Meningkatkan transparansi laporan keuangan masjid/mushalla.
  • Memungkinkan akses online bagi jamaah dan masyarakat umum untuk melihat laporan kas.
  • Mempermudah bendahara masjid/mushalla dalam mencatat transaksi keuangan.
  • Otomatisasi pembuatan laporan kas setiap kali ada transaksi.
  • Mempermudah pengurus masjid/mushalla dalam mengelola jadwal khatib dan pengajian.

Manfaat

  • Meningkatkan kepercayaan jamaah/masyarakat terhadap pengelolaan dana infak masjid/mushalla.
  • Memudahkan masyarakat dalam memutuskan untuk berinfak ke masjid tertentu.
  • Mengurangi beban tugas bendahara dalam pembuatan laporan kas masjid/mushalla.
  • Memungkinkan masyarakat/jamaah untuk memantau jadwal pengajian secara online.

Sponsor / Mitra

Kami ingin berterima kasih kepada sponsor yang mendukung development Buku Masjid.

  1. Pondok Teknologi
  2. Pondok IT
  3. Mushaira
  4. LKSA Al Ma'un Center
  5. STIMI Banjarmasin
  6. Jetorbit

Jika anda tertarik untuk menjadi sponsor/mitra, silakan hubungi Whatsapp Tim Buku Masjid pada halaman Kontak Buku Masjid.

Fitur

  1. Pengelolaan buku catatan: Setiap kegiatan dapat dicatat di buku catatan kas yang terpisah.
  2. Pengelolaan kategori/kelompok pemasukan dan pengeluaran untuk setiap buku catatan.
  3. Input pemasukan dan pengeluaran.
  4. Laporan:
    • Laporan kas Bulanan
    • Laporan kas per Kategori
    • Laporan kas Mingguan
  5. Pengelolaan jadwal khatib Jumat.
  6. Pengelolaan jadwal pengajian rutin.

Cara Install

Aplikasi ini dapat diinstal pada server lokal maupun online dengan spesifikasi berikut:

Kebutuhan Server

  1. PHP 8.1 (dan sesuai dengan persyaratan server Laravel 10.x).
  2. Database MySQL atau MariaDB.
  3. SQLite (digunakan untuk pengujian otomatis).

Langkah Instalasi

  1. Clone repositori ini dengan perintah: git clone https://github.com/buku-masjid/buku-masjid.git
  2. Masuk ke direktori buku-masjid: $ cd buku-masjid
  3. Instal dependensi menggunakan: $ composer install
  4. Salin berkas .env.example ke .env: $ cp .env.example .env
  5. Generate kunci aplikasi: $ php artisan key:generate
  6. Buat database MySQL untuk aplikasi ini.
  7. Konfigurasi database dan pengaturan lainnya di berkas .env.
    APP_URL=http://localhost
    APP_TIMEZONE="Asia/Makassar"
    
    DB_DATABASE=homestead
    DB_USERNAME=homestead
    DB_PASSWORD=secret
    
    MASJID_NAME="Masjid Ar-Rahman"
    MASJID_DEFAULT_BOOK_ID=1
    AUTH_DEFAULT_PASSWORD=password
    
    MONEY_CURRENCY_CODE="Rp"
    MONEY_PRECISION=2
    MONEY_DECIMAL_SEPARATOR=","
    MONEY_THOUSANDS_SEPARATOR="."
    
  8. Jalankan migrasi database: $ php artisan migrate --seed
  9. Buat tautan penyimpanan: $ php artisan storage:link
  10. Instal dependensi frontend: $ yarn install --frozen-lockfile
  11. Compile asset frontend: $ npm run dev
  12. Mulai server: $ php artisan serve
  13. Buka web browser dengan alamat web: http://localhost:8000, kemudian masuk dengan akun bawaan:
    email: admin@example.net
    password: password
    

Catatan: sumber JavaScript/CSS aplikasi berada di resources/assets dan resources/vendor. Berkas hasil build di public/js dan public/css dibuat oleh Laravel Mix, tidak diedit langsung.

Langkah Install dengan Docker

Untuk menggunakan docker silahkan jalankan perintah ini di terminal:

  1. Buat file .env
    $ cp .env.example .env
  2. Update untuk mengubah env DB_HOST:
    DB_HOST=mysql_host
    Atau Anda dapat mengotomatiskan proses ini menggunakan perintah ini.
    COPY .env.example .env.tmp
    sed 's/DB_HOST=127.0.0.1/DB_HOST=mysql_host/' .env.tmp > .env && rm .env.tmp
  3. Build docker images dan jalankan container:
    docker-compose build
    docker-compose up -d
  4. Jalankan database migration:
    docker-compose exec server php artisan migrate --seed
  5. Buka web browser dengan alamat web: http://localhost:8000, kemudian login dengan default user:
    email: admin@example.net
    password: password
    
  6. Untuk masuk ke docker container shell:
    docker-compose exec server sh
    docker-compose exec mysql bash

Data Demo

Ketika sudah ter-install di localhost, kita bisa generate data dummy untuk simulasi sistem buku masjid. Datad demo dapat di-generate dengan perintah berikut:

Generate demo data (3 bulan terakhir):

$ php artisan buku-masjid:generate-demo-data

Hapus semua demo data (yang created_at nya NULL)

$ php artisan buku-masjid:remove-demo-data

Lengkapnya dapat dilihat pada: Dokumentasi buku-masjid/demo-data.

API

Aplikasi menyediakan API (base URL /api) untuk mengakses data transaksi, kategori, dan buku kas. Autentikasi API menggunakan token pribadi milik user (users.api_token), bukan sesi cookie.

Login untuk Mendapatkan API Token

Kirim email dan password user ke endpoint login. Respons berisi data user beserta api_token (24 karakter). Token yang sudah ada akan dikembalikan ulang; jika user belum punya token, aplikasi membuatkannya secara otomatis.

curl -X POST http://localhost:8000/api/login \
  -H "Accept: application/json" \
  -d "email=admin@example.net" \
  -d "password=password"

Contoh respons:

{
  "data": {
    "id": 1,
    "name": "Admin Masjid",
    "email": "admin@example.net",
    "status": "Aktif"
  },
  "api_token": "Kb8xWz1sVq7pLm4nRt6yA2cD"
}

Memakai API Token

Sertakan token pada header Authorization: Bearer <api_token> di setiap request:

curl http://localhost:8000/api/user \
  -H "Accept: application/json" \
  -H "Authorization: Bearer Kb8xWz1sVq7pLm4nRt6yA2cD"

Token juga dapat dikirim sebagai query parameter api_token:

curl "http://localhost:8000/api/user?api_token=Kb8xWz1sVq7pLm4nRt6yA2cD" \
  -H "Accept: application/json"

Jika token tidak dikirim, tidak cocok, atau bukan berupa string (misalnya berupa array), API membalas 401 Unauthorized.

Endpoint Terproteksi

Endpoint berikut membutuhkan API token:

Method Endpoint Keterangan
POST /api/logout Logout: mengganti api_token user, token lama langsung tidak berlaku
GET /api/user Profil user yang sedang login
GET/POST/PUT/DELETE /api/transactions Data transaksi
GET/POST/PUT/DELETE /api/categories Kategori pemasukan/pengeluaran
GET/POST/PUT/DELETE /api/books Buku kas

Endpoint logout mengganti api_token milik user dengan token baru. Karena satu user hanya punya satu token, semua aplikasi yang memakai token lama ikut logout dan harus login ulang.

curl -X POST http://localhost:8000/api/logout \
  -H "Accept: application/json" \
  -H "Authorization: Bearer Kb8xWz1sVq7pLm4nRt6yA2cD"

Respons: {"message": "Anda telah logout."}

Setiap buku kas memiliki data terpisah. Untuk memilih buku kas aktif pada request API, tambahkan query parameter active_book_id=<id_buku>. Jika tidak diisi, API memakai buku kas default (MASJID_DEFAULT_BOOK_ID).

curl "http://localhost:8000/api/transactions?active_book_id=2" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer Kb8xWz1sVq7pLm4nRt6yA2cD"

Endpoint publik yang tidak membutuhkan token antara lain /api/schedules, /api/masjid_profile, dan /api/shalat_time (jika fitur jadwal shalat aktif).

Screenshot

Laporan Bulanan

Laporan Bulanan

Laporan Per Kategori

Laporan Per

Laporan Per Pekan

Laporan Per

Jadwal Pengajian

Jadwal Pengajian

Kontribusi

Jika Anda ingin berkontribusi pada proyek ini, kami sangat menghargainya. Berikut beberapa yang dapat Anda lakukan:

  1. Laporkan issue jika Anda menemui kesalahan atau bug.
  2. Sampaikan diskusi jika Anda ingin mengusulkan fitur baru atau perubahan pada fitur yang sudah ada.
  3. Ajukan pull request untuk perbaikan bug, penambahan fitur baru, atau perbaikan label.

Kontak

Untuk Diskusi:

Untuk pengumuman dan update:

Lisensi

Proyek Buku Masjid merupakan perangkat lunak open-source yang dilisensikan di bawah Lisensi MIT.

Credits

Proyek ini menggunakan bunyi bip dari Pixabay oleh transcendedlifting (Pixabay License)

About

Sistem Keuangan Masjid

Resources

Stars

332 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

0