AmImUmHerbal adalah sebuah aplikasi yang dirancang untuk membantu pengguna menemukan produk herbal dengan mudah dan efisien. Proyek ini dibangun menggunakan FastAPI dan berbagai pustaka lainnya untuk memberikan pengalaman pengguna yang optimal.
Prototype aplikasi AmImUmHerbal disusun menggunakan bantuan figma, berikut untuk gambaran sederhana dari aplikasi ini. "prototype aplikasi AmImUm Herbal"
- Pencarian Produk: Pengguna dapat mencari produk herbal berdasarkan nama, kategori, atau kata kunci.
- Detail Produk: Menampilkan informasi mendetail tentang setiap produk termasuk deskripsi, harga, dan manfaat.
- Tampilan Responsif: Antarmuka yang mudah digunakan di berbagai perangkat.
- API yang Kuat: Backend yang dibangun menggunakan FastAPI untuk kecepatan dan performa yang tinggi.
- Backend: FastAPI
- Database: PostgreSQL
- ORM: SQLAlchemy
- Pengelolaan Lingkungan: Poetry
- Keamanan: JWT untuk otentikasi
- Pengujian: Pytest
- Deployment: Docker, Docker Compose
- Firebase: Untuk otentikasi pengguna
- Supabase: Untuk pengelolaan data dan penyimpanan cloud
- Railway: Untuk deployment ke produksi
Sebelum memulai, pastikan kamu sudah menginstal:
- Python 3.12 atau lebih tinggi
- PostgreSQL
- Docker & Docker Compose (untuk environment development menggunakan container)
- Poetry (untuk manajemen dependensi dan environment)
Ikuti langkah-langkah berikut untuk menginstal dan menjalankan proyek:
git clone https://github.com/username/amimumherbal.git
cd amimumherbal
Jika kamu menggunakan Poetry:
poetry install
Buat file .env di root folder proyek dan masukkan konfigurasi berikut:
DATABASE_URL=postgresql://user:password@localhost:5432/mydatabase
SECRET_KEY=mysecretkey
DEBUG=True
FIREBASE_API_KEY=your_firebase_api_key
FIREBASE_PROJECT_ID=your_firebase_project_id
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
SMTP_SERVER=smtp_type
SMTP_PORT=587/465
SMTP_USER=your_email
SMTP_PASSWORD=your_password
FROM_EMAIL=your_email
Jika menggunakan Docker, kamu bisa menjalankan PostgreSQL melalui Docker Compose:
docker-compose up -d
Jika menggunakan Alembic untuk migrasi database:
poetry run uvicorn app.main:app --reload
Aplikasi akan berjalan di http://127.0.0.1:8000.
Untuk menjalankan pengujian unit dan integrasi, gunakan perintah berikut:
poetry run pytest
Pengujian juga mencakup cakupan kode dengan pytest-cov:
poetry run pytest --cov=app
Selama pengembangan, kamu bisa menggunakan Docker dan Docker Compose untuk menjalankan seluruh stack aplikasi, termasuk database PostgreSQL dan aplikasi FastAPI.
docker-compose -f docker-compose.dev.yml up --build
File docker-compose.dev.yml telah diatur untuk menjalankan container dengan pengaturan development seperti:
- Hot-reloading: Uvicorn akan secara otomatis memuat ulang jika ada perubahan kode.
- Debugging: Debug mode diaktifkan di dalam aplikasi.
Poetry dapat diatur untuk membuat virtual environment di dalam folder proyek (.venv):
poetry config virtualenvs.in-project true
Setelah diatur, jalankan perintah ini untuk menginstall semua dependensi termasuk dependensi pengembangan:
poetry install --with dev
Selama development, kamu dapat menggunakan poetry run untuk menjalankan aplikasi atau perintah pengujian:
poetry run uvicorn app.main:app --reload
Untuk memastikan skema database terbaru diterapkan:
poetry run alembic upgrade head
Proyek ini menggunakan beberapa dependensi khusus untuk development:
- ytest: Untuk menjalankan pengujian.
- pytest-cov: Untuk melacak cakupan kode selama pengujian.
- black: Untuk auto-formatting kode.
- isort: Untuk mengatur import.
- flake8: Untuk linting kode.
Kamu dapat menjalankan semua pengujian dengan:
poetry run pytest
Untuk memeriksa linting dan formatting:
poetry run black --check .
poetry run flake8 .
- Hot Reloading: Uvicorn secara otomatis memuat ulang aplikasi saat ada perubahan jika dijalankan dengan flag
--reload
. - Debugging: Gunakan tools seperti VSCode atau PyCharm untuk debugging dengan breakpoint.
Jika kamu ingin berkontribusi pada proyek ini:
- Fork repositori ini.
Buat branch fitur baru (
git checkout -b feature/your-feature
). - Lakukan perubahan dan commit (
git commit -m 'Add some feature'
). - Push branch kamu (
git push origin feature/your-feature
). - Buat Pull Request.
Proyek ini dilisensikan di bawah MIT License. Lihat LICENSE untuk detail lebih lanjut.
Untuk pertanyaan atau saran, silakan hubungi:
Nama: amimumHerbal Email: [email protected]
### Penjelasan Tambahan:
- **Docker Compose**: `docker-compose.dev.yml` diatur untuk development environment (misalnya hot-reloading, debug mode).
- **Poetry**: Bagian ini menjelaskan cara mengatur virtual environment dan menggunakan Poetry untuk keperluan development.
- **Testing**: Ada instruksi tambahan tentang bagaimana menjalankan tes dan mengukur cakupan kode menggunakan `pytest` dan `pytest-cov`.
- **Linting & Formatting**: Dengan menggunakan `black`, `flake8`, dan `isort`, proses development bisa lebih terstruktur dan mudah dijaga.