Pertama -tama, tim pengembang Ideoxan ingin mengucapkan terima kasih secara pribadi karena telah meluangkan waktu untuk berkontribusi pada proyek kami dan komunitas!
Dokumen ini berisi semua informasi yang diperlukan untuk berkontribusi pada proyek Ideoxan. Jika Anda memiliki pertanyaan, hubungi kami di [email protected].
Proyek ini dipertahankan dan diatur sesuai dengan kode perilaku resmi proyek. Perjanjian untuk syarat dan ketentuannya, bersama dengan Ketentuan Layanan Resmi Ideoxan, Kebijakan Privasi Ideoxan dan Lisensi Termasuk (MIT) diharuskan untuk berkontribusi pada proyek organisasi ini.
Runtime Node.js diperlukan untuk menjalankan server backend (yang melayani situs web). Versi di atas 10.x didukung. Disarankan, untuk menggunakan simpul 13.x NPM juga diperlukan tetapi biasanya dipasang dengan node.js. Anda dapat memeriksa versi Node.js dengan melakukan
node -vGit CLI diperlukan untuk mengunduh kode dari repositori.
Browser modern yang mendukung spesifikasi ES6 untuk JS diharuskan untuk melihat situs web Chrome/Chromium, Firefox, dan Safari akan melakukannya.
Meskipun MongoDB tidak 100% diperlukan untuk menjalankan situs web, kami sarankan Anda menginstalnya sehingga login dan verifikasi pengguna dapat digunakan. Untuk menginstal MongoDB lihat panduan dokumentasi mereka. Pastikan server berjalan di localhost atau lokasi lain yang ditentukan dalam daftar variabel lingkungan lokal atau
Gunakan yang berikut untuk mengunduh repositori dan menginstal paket yang diperlukan:
git clone https://github.com/ideoxan/ideoxan.git
cd ideoxan
npm install Server mendukung menggunakan variabel lingkungan di seluruh sistem dan lokal. Jika Anda tidak dapat mengatur variabel lingkungan di seluruh sistem, maka buat file .env di direktori Ideoxan utama. Pastikan lingkungan simpul Anda tidak diatur ke production jika tidak variabel lingkungan tidak akan digunakan secara lokal. Berikut ini adalah daftar variabel lingkungan bekas. Jika ada di antara mereka yang saling bertentangan, tolong beri tahu kami.
MONGO_URI
EXPRESS_SESSION_SECRET
PWD_HASH Variabel lingkungan MONGO_URI digunakan untuk mengatur URI dari database MongoDB. URI ini harus berupa string Mongouri yang valid. Standarnya adalah mongodb://localhost:27017/ix
Variabel lingkungan EXPRESS_SESSION_SECRET adalah rahasia bahwa semua sesi yang diautentikasi dengan server itu akan digunakan. Yang terbaik adalah menjaga keamanan dan aman ini karena ini dapat digunakan untuk membatalkan, memodifikasi, dan sesi spoof (yang tidak baik). Simpan ini selama dan serumit mungkin. Tidak ada default karena alasan keamanan.
Variabel lingkungan PWD_HASH adalah nilai integer yang digunakan untuk kata sandi hash dalam modul bcryptjs. Jaga agar angka cukup tinggi di mana kata sandi aman tetapi cukup rendah sehingga tidak menyebabkan server melambat. Sekali lagi, untuk alasan keamanan, tidak ada nilai default.
Jika Anda ingin berkontribusi pada kursus atau pelajaran, silakan lihat repo GitHub kami yang lain dengan awalan curriculum- . Semua panduan kurikulum kami disimpan di GitHub (tidak semua tersedia untuk umum) dan disimpan server di bawah /static/curriculum dan diminta oleh sisi klien di bawah direktori Static Express ( /static ). Kurikulum tidak termasuk dengan editor, situs web, atau isinya. Di bawah GIT, kursus -kursus ini dimasukkan sebagai submodul dan dapat dipasang di bawah direktori kurikulum dengan menggunakan yang berikut:
git submodule init
git submodule update --recursiveIni akan mengkloning, mengambil, dan menarik semua kursus yang tersedia untuk umum. Jika Anda ingin tahu lebih banyak tentang submodul git dan cara kerjanya klik di sini.
Ada dua cabang utama yang digunakan: master dan prod . Cabang prod adalah apa yang dikirim untuk produksi dan penyebaran. Kami hanya mencoba memperbarui cabang ini sesering mungkin saat dibutuhkan (perbaikan panas lebih lambat untuk digabungkan). Cabang master adalah tempat mayoritas komitmen baru kami pergi. Pikirkan ini sebagai sistem pembuatan malam yang segar. Meskipun cabang ini memiliki kode terbaru, itu tidak berarti itu yang paling stabil. Jika Anda berencana menggunakan ini dalam jangka panjang dan tidak ingin memperbarui setiap 20 menit, kami sarankan Anda menggunakan cabang prod .
Ada tiga opsi untuk menjalankan server.
Mode pengembang adalah perintah untuk menjalankan server pada mesin pengembangan. Ini memungkinkan pengeditan yang mudah dan startup server yang cepat. Ini bergantung pada paket nodemon, jadi pastikan bahwa dependensi pengembang yang diuraikan dalam file package.json diinstal melalui NPM.
Untuk menjalankan server secara lokal gunakan:
npm run devUntuk memulai server tanpa fitur tambahan, jalankan:
npm run startIni secara otomatis memperbarui submodul yang disertakan dan kemudian memulai server. Atau, server dapat dimulai sama seperti proyek Node.js normal:
node server.jsMetode ini tidak disarankan untuk digunakan karena opsi ini dirancang secara pribadi untuk server spesifik yang digunakan oleh Ideoxan.
Ini membutuhkan PM2 untuk dipasang secara global .
npm run serverJika itu tidak berfungsi, gunakan:
pm2 start server.js --name ideoxan --max-memory-restart 500M --watch --cron " 0 2 * * * " Pertama dan terutama, jika Anda yakin masalah ini berkaitan dengan keamanan, jangan membuka masalah. Laporkan bug langsung kepada kami melalui email
Masalah yang Anda laporkan biasanya merupakan masalah keamanan saat ...
Jika Anda telah mengalami salah satu di atas, ini kemungkinan besar hasil dari kemungkinan risiko keamanan dan harus dilaporkan. Kegagalan untuk melaporkan dapat mengakibatkan kemungkinan tindakan hukum atas nama kami.
Bahkan jika masalah Anda tidak memenuhi hal di atas dan masih percaya itu adalah masalah yang terkait dengan keamanan, jangan ragu untuk mengirim email kepada kami. Lebih baik aman daripada menyesal.
Silakan periksa yang berikut untuk memastikan bahwa Anda dibersihkan untuk membuka masalah.
Jika masalah Anda berkaitan dengan runtime Node.js, salah satu paket/perangkat lunak yang tidak dicakup/dikelola oleh Ideoxan, atau apa pun, maka ini bukan tempat yang tepat untuk mengajukan masalah Anda. Jika Anda memerlukan bantuan diarahkan ke pelacak bug atau pemecahan masalah yang tepat, jangan ragu untuk menghubungi kami. (Lihat Hubungi Kami)
Jika Anda telah memodifikasi salah satu sumbernya, ada kemungkinan besar bahwa masalah ini disebabkan oleh gangguan. Jika masalah masih berlanjut setelah mengembalikan kode Anda, buka masalah.
Kami tidak mendukung perangkat lunak lama. Silakan periksa versi Anda terhadap yang ditentukan dalam package.json master cabang package-lock.json
Jika masalah ini telah dilaporkan dan masih terbuka di github kami, silakan komentar masalah Anda daripada membuka masalah baru. Jika masih belum terbuka, periksa status itu. Jika memiliki tag wont-fix yang dilampirkan pada masalah ini, jangan naik lagi kecuali Anda melihatnya sebagai masalah yang menonjol dan sejumlah besar waktu telah berlalu. Periksa juga untuk melihat apakah ada solusi. Terkadang masalah akan ditutup bukan karena ditandai sebagai tidak valid atau solusi tercapai tetapi karena kurangnya aktivitas. Jika Anda menemukan ini terjadi, jangan ragu untuk meminta masalah dibuka kembali.
Jika Anda mengeluarkan terkait dengan keamanan, silakan lihat melaporkan masalah keamanan.
Jika Anda mengikuti di atas dan memenuhi persyaratan, Anda sekarang dapat membuka masalah. Pastikan untuk menggunakan judul deskriptif, dan jelaskan masalah Anda dengan jelas . Pastikan untuk mengikuti templat laporan bug (sangat disarankan). Jika Anda gagal menggambarkan masalah Anda dengan benar, masalah Anda akan ditutup tanpa penjelasan.
Jika Anda berkontribusi pada basis kode (tidak termasuk dokumentasi), pastikan untuk mengikuti standar kami.
Silakan periksa apakah sudah ada masalah yang terbuka yang dapat diselesaikan. Jika tidak, pastikan bahwa permintaan tarik belum mencakup apa yang Anda coba gabungkan.
Jika Anda yakin hal di atas, buka permintaan tarik menggunakan template PR kami
Jika Anda menyarankan bahwa Ideoxan menambahkan fitur baru atau memperluas yang sudah ada, silakan buka masalah menggunakan Template Permintaan Fitur
Segera hadir
Jika Anda memiliki pertanyaan atau kekhawatiran yang tidak memenuhi di atas, jangan ragu untuk menghubungi kami (lihat hubungi kami)
Repositori ini berusaha untuk memungkinkan kompatibilitas, keseragaman, dan keterbacaan secara keseluruhan. Kami menyarankan jika Anda mencoba berkontribusi pada sumber proyek ini, bahwa Anda membaca yang berikut.
Segera hadir
| Label | Keterangan | Mencari |
|---|---|---|
| Bug kritis | Bug yang menghambat situs web sama sekali tidak berguna dan sangat penting untuk operasi/manajemen dasar | ? |
| Bug (sedang) | Bug keparahan sedang yang memengaruhi sebagian besar situs dan/atau penggunanya. | ? |
| Bug (rendah) | Bug prioritas rendah yang nyaris tidak berdampak pada situs dan/atau penggunanya | ? |
| Label | Keterangan | Mencari |
|---|---|---|
| Duplikat | Masalah yang merupakan rangkap dari masalah sebelumnya, tertutup (diselesaikan), masalah terbuka (tertunda), atau permintaan tarik tertutup | ? |
| Tidak akan memperbaiki | Masalah yang tidak terkait dengan proyek atau dan masalah yang tidak dapat diselesaikan | ? |
| Tidak sah | Masalah yang tidak memiliki prevalensi proyek atau tidak dapat direplikasi | ? |
| Pertanyaan | Informasi lebih lanjut harus diberikan agar pertanyaan menjadi valid | ? |
| Label | Keterangan | Mencari |
|---|---|---|
| Situs web | Masalah terkait situs web | ? |
| Server | Masalah terkait server | ? |
| Dokumentasi | Masalah yang terkait dengan dokumentasi Situs, Server, atau API | ? |
| Lainnya | Masalah yang tidak berurusan dengan situs web, server atau dokumentasi | ? |
| Peningkatan | Saran untuk fitur baru yang sedang dipertimbangkan atau peningkatan yang sudah ada | ? |
| Label | Keterangan | Mencari |
|---|---|---|
| Bantuan yang diinginkan | Tag yang diberikan untuk permintaan atau permintaan tarik yang membutuhkan peninjauan atau kontribusi eksternal. Biasanya jika diberikan, masalah ini berada di luar cakupan pengetahuan para pengelola atau bukan dari prioritas tertinggi. | ? |
| Masalah pertama yang bagus | Jika Anda baru di sekitar sini, ini adalah tempat yang tepat untuk memulai! Ini adalah masalah aktif atau contoh masalah yang baik untuk ditangani oleh pendatang baru. | ? |
Jika Anda perlu menghubungi, silakan hubungi kami di tautan berikut di bawah ini
Lebih banyak platform akan ditambahkan di masa depan.