Project ini adalah sebuah aplikasi berbasis FastAPI untuk mengelola pengguna. Aplikasi ini menyediakan endpoint untuk create, retrieve, update, dan delete data pengguna, serta mendukung fitur paginasi untuk daftar pengguna. Aplikasi ini juga menyediakan endpoint untuk mendapatkan data prakiraan cuaca yang diambil dari API BMKG. 🌦️
Aplikasi Live bisa dilihat di:
- Swagger Docs: https://restapi.learn.fromindonesia.id/docs/
- UI Prakiraan Cuaca: https://restapi.learn.fromindonesia.id/ui/
- User Management: Create, Retrieve, Update, dan Delete data pengguna. 👤
- Pagination: Menampilkan daftar pengguna dengan dukungan paginasi. 📄
- Validation: Validasi input menggunakan model Pydantic. ✅
- Database Integration: Menggunakan SQLModel untuk interaksi dengan basis data. 🗄️
- Dependency Injection: Manajemen sesi basis data yang disederhanakan dengan
Dependsdari FastAPI. 🔗 - UI with TailwindCSS: Menampilkan UI prakiraan cuaca dengan TailwindCSS. 🎨
project/
├── app/
│ ├── core/ # Core utilities and configurations
│ ├── dto/ # Data Transfer Objects
│ ├── model/ # Pydantic models used for Database Table
│ ├── repository/ # Database interaction logic
│ ├── route/ # API route definitions
│ └── templates/ # HTML Templates
└── .env # Environment variables
└── Dockerfile # Dockerfile for the app
└── main.py # Application entry point
└── Makefile # Dockerfile for the app
└── requirements.txt # Python dependencies-
Clone Repository: 📂
git clone https://github.com/repodevs/sibermu-api-project.git
cd sibermu-api-project -
Buat
.envfile 📝cp .env.example .env
update isi dari .env jika diperlukan
-
Build and Run using Docker 🐳
make buildrun
atau
docker build -t repodevs/sibermu-api-project:latest .docker run -d --name apiapp -p 8002:8002 --env-file .env repodevs/sibermu-api-project:latest
-
Akses 🌐
- Swagger Docs: http://localhost:8002/docs/
- UI Prakiraan Cuaca: http://localhost:8002/ui/
-
(opsional) Hapus Docker Container 🗑️
make down
atau
docker rm -f apiapp
User Endpoints
- GET
/api/v1/users: List users with pagination. 📋 - POST
/api/v1/users: Create a new user. ✍️ - GET
/api/v1/users/{user_id}: Retrieve a user by ID. 🔍 - PATCH
/api/v1/users/{user_id}: Update a user by ID. 🛠️ - DELETE
/api/v1/users/{user_id}: Delete a user by ID. ❌
This project is licensed under the MIT License. 🏛️
Contributions are welcome! Please fork the repository and submit a pull request. 🚀
For questions or support, please contact edi20240200005@sibermu.ac.id. 💌

