Tugas 11 - Membuat Laporan PDF

Dokumentasi Sistem Laporan Siswa

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

Popular posts from this blog

Tugas 8 - Crud Form Pendafaran

ETS - Dokumentasi Proyek Portal Berita

Tugas 6 - Pemrograman Web (N) - Form Registration, Dropdown, and Indonesia Postal Code