Sistem masjid untuk semua
E-Masjid.My ialah sebuah sistem pengurusan masjid percuma dan sumber terbuka (lesen MIT)
Matlamat-matlamat utama sistem ini ialah seperti berikut.
Mudah untuk digunakan
- Bukan semua orang pakar IT. Mereka bentuk sebuah sistem untuk orang bukan IT memerlukan pertimbangan yang teliti.
Masa untuk menggunakan kemahiran IT untuk berbuat kebaikan
- Sumber terbuka ialah suatu bentuk sedekah — sesuatu yang dituntut dalam Islam.
Jangka hayat yang panjang
- Syarikat pengehosan/teknologi mungkin mati tetapi kami berharap dengan menyerahkan projek ini secara sumber terbuka, projek ini dapat hidup lebih lama demi ummah.
Beri, bukan ambil
- Kita sepatutnya menyumbang kepada komuniti Muslim, terutamanya masjid dan bukan mengambil manfaat daripada mereka.
- Docker Desktop https://docs.docker.com/get-docker/
- Java 17 https://www.oracle.com/java/technologies/downloads/#java17
- Maven (binary) https://maven.apache.org/download.cgi
- Node 20 https://nodejs.org/en/download
- VSCode https://code.visualstudio.com/download
- GIT https://www.git-scm.com/downloads
- Pemproses: 1.6 GHz atau lebih pantas
- Memori: 4 GB RAM atau lebih tinggi
- Fork repo ini ke akaun Github anda, contoh
https://github.com/<github-user>/e-masjid.my
, dengan menekan butang Fork di bahagian atas sebelah kanan laman web ini. - Setelah selesai Fork, klon repo ini ke komputer anda.
git clone https://github.com/<github-user>/e-masjid.my.git
- Setelah selesai klon, navigasi ke folder e-masjid.my.
cd e-masjid.my
- Ikut arahan seterusnya seperti di bawah bergantung kepada sistem pengoperasian komputer anda.
sh run-dev.sh
sh run-dev.sh
Skrip ini akan membina semua API secara automatik dan melaksanakan arahan docker-compose yang akan menghidupkan 6 container untuk persekitaran pembangunan.
Apabila kesemua container telah hidup, anda boleh menghentikan mana-mana container yang tidak diperlukan dalam tugasan anda.
Anda juga boleh menggunakan ./gradlew (atau gradlew.bat untuk windows) yg disediakan to memperinci/melaksanakan build. Perintah-perintah di bawah ini akan menunjukkan gradle tasks yang tersedia:
./gradlew task
./gradlew task --all
Sepertimana yang anda dapat lihat pada output ./gradlew task --all
, anda boleh melaksanakan build secara berasingan untuk setiap modul backend. Setiap modul backend ditulis dalam Spring boot, jadi anda boleh menggunakan plugin org.springframework.boot seperti berikut:
./gradlew api:tabung-api:bootRun --args='--spring.profiles.active=local'
Anda juga boleh menjana fail Jar secara berasingan untuk digunakan pada docker-compose. Cara untuk menjana Jar adalah seperti berikut:
./gradlew api:tabung-api:bootJar
Untuk binaan keseluruhan projek, kami menyediakan ultimateBuild
. ultimateBuild
boleh dijalankan dengan:
./gradlew ultimateBuild
ultimateBuild
dikodkan seperti berikut:
task ultimateBuild( type: Task,
dependsOn: ["api:buildapi","dashboard:publish","public-web:publish"]
) {
description="Build all programs"
doLast {
println "build completed"
}
}
Di mana:
api:buildapi
membina kesemua projek api, termasuk menyusun dan menyediakan pakej yg terbina.dashboard:publish
menyusun projek dashboard dan menyediakan fail2 untuk disiarkan oleh pelayan.public-web:publish
menyusun projek public-web dan menyediakan fail2 untuk disiarkan oleh pelayan.
Fork repo ini dan hantar Pull Request anda.
Kami mahu input anda! Kami ingin menjadikan penyumbangan kepada projek mudah dan telus, sama ada dengan:
- Melaporkan pepijat
- Menghantar pembetulan
- Mencadangkan ciri baru
- Menambah baik ciri
- Dokumentasi
- Ujian unit
Atau anda ingin berbual dengan kami, cari kami di Discord.