Tugas 11 - Membuat Laporan PDF
Dokumentasi Sistem Laporan Siswa (Flask + MongoDB + PDF)
Deskripsi
Aplikasi web ini adalah sistem laporan siswa berbasis Flask, MongoDB, dan fpdf2 untuk mencetak laporan PDF. Data siswa dapat ditambah, diedit, dihapus, dan dicetak dalam format PDF.
Struktur Folder
Make Report PDF/ │ ├── app.py # Main Flask app ├── database.py # Koneksi & operasi database MongoDB ├── create_db.py # Script inisialisasi database & data contoh ├── requirements.txt # Daftar dependensi Python ├── Dockerfile # Konfigurasi Docker ├── .env # Konfigurasi environment (jangan upload ke publik) ├── templates/ # Template HTML (Jinja2) │ ├── index.html │ ├── tambah_siswa.html │ └── edit_siswa.html └── __pycache__/ # Cache Python (abaikan)
Instalasi & Menjalankan
1. Clone & Masuk ke Folder
git clone https://github.com/farhanwew/Web-programming.git
cd "Make Report PDF"
2. Buat Virtual Environment (opsional tapi disarankan)
python -m venv venv
venv\Scripts\activate
3. Install Dependensi
pip install -r requirements.txt
4. Konfigurasi .env
Edit file .env
dan sesuaikan MONGO_URI
dengan string koneksi MongoDB Atlas Anda.
5. Inisialisasi Database (opsional, untuk data contoh)
python create_db.py
6. Jalankan Aplikasi
python app.py
Akses di browser: http://localhost:7860
Fitur
- Tambah Siswa – Form input data siswa baru.
- Edit Siswa – Update data siswa yang sudah ada.
- Hapus Siswa – Konfirmasi sebelum menghapus data.
- Cetak PDF – Download laporan siswa dalam format PDF.
Deploy dengan Docker
Build Image
docker build -t laporan-siswa .
Jalankan Container
docker run -d -p 7860:7860 --env-file .env laporan-siswa
File Penting
app.py
: Routing Flask, logika utama aplikasi.database.py
: Fungsi CRUD ke MongoDB.templates/index.html
: Tampilan utama daftar siswa.templates/tambah_siswa.html
: Form tambah siswa.templates/edit_siswa.html
: Form edit siswa.
Comments
Post a Comment