Go to file
2026-02-24 10:15:47 +07:00
api/routers test 2026-02-23 11:58:02 +07:00
cache test 2026-02-23 11:58:02 +07:00
core test 2026-02-23 11:58:02 +07:00
database test 2026-02-23 11:58:02 +07:00
media test 2026-02-23 11:58:02 +07:00
services update readme & reqirements 2026-02-24 10:15:47 +07:00
utils test 2026-02-23 11:58:02 +07:00
.DS_Store test 2026-02-23 11:58:02 +07:00
.gitignore test 2026-02-23 11:58:02 +07:00
main.py test 2026-02-23 11:58:02 +07:00
README.md update readme & reqirements 2026-02-24 10:15:47 +07:00
requirements.txt update readme & reqirements 2026-02-24 10:15:47 +07:00
response.py test 2026-02-23 11:58:02 +07:00

🛰️ FastAPI Backend — Sistem Referensi & Validasi Data Geospasial

Proyek ini adalah backend berbasis FastAPI yang menangani proses pembacaan data spasial (Shapefile, GeoJSON), ekstraksi PDF, serta validasi dan sinkronisasi data terhadap referensi basis data menggunakan PostgreSQL/PostGIS dan RapidFuzz untuk pencocokan string.


⚙️ Fitur Utama

Upload dan ekstrak file .zip berisi .shp atau .gdb
Parsing PDF menggunakan pdfplumber
Konversi dan validasi geometri (Shapely + GeoPandas)
Pencocokan fuzzy string terhadap referensi DB (RapidFuzz)
Integrasi PostgreSQL / PostGIS melalui SQLAlchemy
Middleware CORS untuk komunikasi dengan frontend
Dukungan konfigurasi .env (via python-dotenv)


🔧 Instalasi dan Setup

1 Clone Repository

git clone https://git.labmu.ac.id/username/nama-proyek.git
cd nama-proyek

2 Buat Virtual Environment

python -m venv venv
source venv/bin/activate   # (Linux/Mac)
venv\Scripts\activate      # (Windows)

3 Instal Dependensi

pip install -r requirements.txt

4 Konfigurasi File .env

Buat file .env di root proyek:

REFERENCE_DB_URL=postgresql+psycopg2://user:password@localhost:5432/nama_db
REFERENCE_SCHEMA=public

🚀 Menjalankan Server

Jalankan server FastAPI menggunakan Uvicorn:

uvicorn main:app --reload

Server akan berjalan di:
👉 http://127.0.0.1:8000


🧠 Contoh Endpoint

Method Endpoint Deskripsi
POST /upload/shapefile Upload file .zip berisi .shp
POST /upload/pdf Ekstrak tabel dari file PDF
GET /reference/check Validasi data terhadap referensi DB

🧩 Teknologi yang Digunakan

Kategori Library
Framework FastAPI, Starlette
Database SQLAlchemy, psycopg2, PostgreSQL/PostGIS
Data & Geo Pandas, GeoPandas, Shapely, Fiona, PyProj
Parsing pdfplumber
Matching RapidFuzz
Utilitas python-dotenv, pathlib, zipfile
Server Uvicorn

🧪 Testing

Jalankan server dan uji dengan Swagger UI:

http://127.0.0.1:8000/docs

Atau gunakan cURL / Postman untuk pengujian manual.


🧰 Tips Penggunaan

  • Pastikan GDAL, GEOS, dan PROJ sudah terinstal di sistem jika menggunakan GeoPandas / Fiona.
  • Gunakan pip freeze > requirements.txt untuk memperbarui dependensi.
  • Gunakan .gitignore agar file sensitif seperti .env tidak ikut ter-push.

👨‍💻 Pengembang

Nama: Dimas Anhar


📄 Lisensi

Proyek ini dikembangkan untuk keperluan penelitian dan pengembangan internal.
Lisensi dapat disesuaikan sesuai kebijakan lab atau institusi.