Web development full stack untuk PWL - B Final 4th Semester (Collab)
SILOKA QUIZKI adalah aplikasi web full-stack yang dibangun dengan JSX yang terintegrasi dengan berbagai database untuk memberikan platform kuis interaktif. Aplikasi ini akan menggunakan API untuk mengambil dan mengelola konten kuis.
- Frontend: React.js dengan JSX
- Backend: Node.js
- Database: Fast API and SQLite
- Integrasi API
- Teknologi lain:
- Prop-Types,
- CSS, Tailwinds, sqlalchemy,
- python-jose[cryptography],
- passlib[bcrypt], python-multipart, python-dotenv, pydantic[email],
- email-validator
- Npm install Prop-types
- npm install -D tailwindcss@3
- npx tailwindcss init -p
- pip install -r requirements.txt
- cd backend
- python main.py
- cd quizki
- npmΒ runΒ dev
- open the localhost in the terminal
-
Clone repositori
git clone https://github.com/reynaldyAl/siloka-quizki.git cd siloka-quizki -
Pasang dependencies
npm install
-
Buat branch baru
# Pastikan kamu berada di branch develop terbaru git checkout develop git pull origin develop # Buat branch fitur baru git checkout -b feature/nama-fitur
-
Fork repositori
- Kunjungi https://github.com/reynaldyAl/siloka-quizki
- Klik tombol "Fork" di pojok kanan atas
- Pilih akun GitHub kamu sebagai tujuan fork
-
Clone hasil fork
git clone https://github.com/username-kamu/siloka-quizki.git cd siloka-quizki -
Tambahkan upstream remote
git remote add upstream https://github.com/reynaldyAl/siloka-quizki.git
-
Buat branch baru
# Update dari upstream terlebih dahulu git fetch upstream git checkout develop git merge upstream/develop # Buat branch fitur baru git checkout -b feature/nama-fitur
Kami mengikuti strategi branching terstruktur:
main- Kode siap produksidevelop- Branch integrasi untuk fitur-fiturfeature/[nama-fitur]- Pengembangan fitur individubugfix/[nama-bug]- Perbaikan bughotfix/[nama-hotfix]- Perbaikan darurat untuk produksi
feature/[nama-fitur]- Untuk fitur baru (misal:feature/pencarian-kuis)bugfix/[nama-bug]- Untuk perbaikan bug (misal:bugfix/kalkulasi-skor)hotfix/[nama-hotfix]- Untuk perbaikan kritis (misal:hotfix/kerentanan-auth)docs/[nama-docs]- Untuk pembaruan dokumentasi (misal:docs/endpoint-api)refactor/[area]- Untuk refaktor kode (misal:refactor/kueri-database)
Gunakan kebab-case (huruf kecil dengan tanda hubung) untuk bagian deskriptif.
CATATAN PENTING: Jika ingin collab, silahkan buat branch sendiri dan push ke branch serta pastikan agar git fetch untuk memastikan kesamaan
-
Selalu update branch develop sebelum memulai pekerjaan baru
# Jika menggunakan metode 1 (kontributor langsung) git checkout develop git pull origin develop # Jika menggunakan metode 2 (fork) git checkout develop git fetch upstream git merge upstream/develop git push origin develop # Update fork kamu
-
Kembali ke branch fitur kamu dan update dengan perubahan terbaru dari develop
git checkout feature/nama-fitur git merge develop
-
Sinkronkan dengan repositori remote sebelum melakukan perubahan
git fetch --all
-
Kerjakan perubahan kamu
- Buat perubahan kode
- Uji perubahan lokal
-
Commit perubahan
git add . git commit -m "feat: menambahkan fitur login"
Format Pesan Commit:
feat:- Fitur barufix:- Perbaikan bugdocs:- Perubahan dokumentasistyle:- Perubahan format kode (tidak mengubah logika)refactor:- Refaktor kodetest:- Menambah/mengubah testchore:- Pemeliharaan repositori
-
Push ke branch
git push origin nama-branch-kamu
-
Buka Pull Request (PR) di GitHub
- Buka repositori di GitHub
- Klik "Pull Requests" > "New Pull Request"
- Pilih branch kamu sebagai "compare"
- Pilih "develop" sebagai "base" (atau "main" untuk hotfix)
- Isi template PR
-
Persyaratan PR
- Berikan judul PR yang jelas
- Jelaskan perubahan yang kamu buat
- Referensikan issue terkait (#nomor-issue)
- Minta review dari anggota tim yang relevan
- Pastikan semua pemeriksaan CI lolos
-
Proses Review Kode
- Tanggapi komentar reviewer
- Lakukan perubahan yang diperlukan
- Push commit tambahan ke branch yang sama
- PR akan diperbarui secara otomatis
-
Penggabungan
- PR memerlukan setidaknya satu persetujuan
- Selesaikan konflik penggabungan yang ada
- PR biasanya digabungkan menggunakan "Squash and merge" untuk menjaga riwayat tetap bersih
Jika kamu mengalami konflik merge:
# Update branch develop lokal
git checkout develop
git pull origin develop
# Kembali ke branch kamu
git checkout nama-branch-kamu
git merge develop
# Selesaikan konflik di editor kode
# Setelah menyelesaikan, tandai file sebagai resolved
git add .
# Selesaikan merge
git commit
git push origin nama-branch-kamuProyek kami mengikuti struktur berikut:
siloka-quizki/
βββ client/ # Kode frontend
β βββ public/ # Aset statis
β βββ src/
β β βββ assets/ # Gambar, font, dll.
β β βββ components/ # Komponen yang dapat digunakan kembali
β β βββ contexts/ # Konteks React
β β βββ hooks/ # Hook khusus
β β βββ pages/ # Komponen halaman
β β βββ services/ # Layanan API
β β βββ utils/ # Fungsi pembantu
β β βββ App.jsx # Komponen aplikasi utama
βββ server/ # Kode backend
β βββ config/ # File konfigurasi
β βββ controllers/ # Handler request
β βββ middleware/ # Middleware Express
β βββ models/ # Model database
β βββ routes/ # Rute API
β βββ server.js # Entry point
βββ .gitignore
βββ package.json
βββ README.md
Panduan:
- Tempatkan komponen di direktori yang sesuai
- Gunakan PascalCase untuk file komponen (misalnya,
UserProfile.jsx) - Gunakan camelCase untuk file non-komponen (misalnya,
authService.js) - Buat subdirektori untuk kode fitur khusus
- Tulis pengujian untuk fitur baru
- Pastikan pengujian yang sudah ada lulus sebelum mengajukan PR
- Jalankan suite pengujian secara lokal:
npm test
(Informasi deployment akan ditambahkan nanti)
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE untuk detailnya.