Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💊 LAMSIA — Backend API

LAMSIA (Layanan Manajemen Smart Medication Box IoT) adalah sistem backend untuk kotak obat pintar berbasis IoT yang membantu pengguna mengelola jadwal dan konsumsi obat secara otomatis.

Python FastAPI MySQL SQLAlchemy License


📋 Daftar Isi


📖 Tentang Proyek

LAMSIA-BACKEND adalah REST API berbasis FastAPI yang menjadi jembatan komunikasi antara perangkat keras IoT (Arduino / Raspberry Pi) dan aplikasi klien. Sistem ini mengelola data pengguna, jadwal konsumsi obat, dan status kotak obat secara real-time melalui protokol MQTT dan HTTP.


🛠 Tech Stack

Komponen Teknologi
Framework API FastAPI + Uvicorn
ORM / Database SQLAlchemy + PyMySQL
Database MySQL 8.0
Konfigurasi Env python-dotenv
Utilities inflect, faker

📁 Struktur Proyek

LAMSIA-BACKEND/
├── app/                  # Kode utama aplikasi FastAPI
├── cli/                  # CLI tools (seed data, utilitas)
├── tests/                # Unit & integration tests
├── create_tables.py      # Script migrasi database
├── lamsia.py             # Entry point alternatif
├── requirements.txt      # Daftar dependensi Python
├── .env.example          # Template konfigurasi environment
└── README.md

✅ Prasyarat

Pastikan sudah terinstall di sistem kamu:


⚙️ Instalasi & Konfigurasi

1. Clone Repositori

git clone https://github.com/achul-cos/LAMSIA-BACKEND.git
cd LAMSIA-BACKEND

2. Konfigurasi Environment

Duplikat file .env.example dan rename menjadi .env:

# Windows
copy .env.example .env

# macOS / Linux
cp .env.example .env

Kemudian isi variabel berikut di .env:

DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=lamsia_db

3. Siapkan Database MySQL

Buka terminal MySQL dan buat database baru:

# Masuk ke MySQL
mysql -u root -p

# Atau jika perlu path lengkap (Windows)
# "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -u root -p
-- Buat database
CREATE DATABASE lamsia_db;

-- Verifikasi
SHOW DATABASES;

Output yang diharapkan:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| lamsia_db          |  ✓
| mysql              |
| performance_schema |
| sys                |
+--------------------+

4. Setup Virtual Environment

# Buat venv
python -m venv venv

# Aktivasi (Windows PowerShell)
.\venv\Scripts\Activate.ps1

# Aktivasi (macOS / Linux)
source venv/bin/activate

Catatan: Jika muncul error aktivasi di Windows, lihat bagian Troubleshooting.

5. Install Dependensi

pip install -r requirements.txt

🚀 Menjalankan Server

uvicorn app.main:app --reload

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

Dokumentasi API otomatis tersedia di:

Untuk keluar dari virtual environment:

deactivate

🗄 Migrasi Database

Tabel database dibuat otomatis saat server pertama kali dijalankan melalui create_tables.py. Untuk memverifikasi hasilnya secara manual:

USE lamsia_db;

-- Cek tabel yang tersedia
SHOW TABLES;

-- Cek struktur tabel users
DESCRIBE users;

Output yang diharapkan untuk DESCRIBE users:

+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int          | NO   | PRI | NULL    | auto_increment |
| username  | varchar(100) | NO   |     | NULL    |                |
| telephone | varchar(100) | NO   |     | NULL    |                |
| password  | varchar(255) | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

🔧 Troubleshooting

Error: Script tidak bisa dijalankan di PowerShell

Jika muncul error berikut saat aktivasi venv:

.\venv\Scripts\Activate.ps1 cannot be loaded because running scripts is disabled on this system.

Solusi 1 — Ubah execution policy untuk user saat ini (disarankan):

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Solusi 2 — Bypass untuk sesi ini saja (jika tidak punya hak admin):

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Solusi 3 — Jalankan Python langsung via path venv (tanpa aktivasi):

# Cek versi
.\venv\Scripts\python.exe --version

# Lihat package terinstall
.\venv\Scripts\python.exe -m pip list

# Jalankan server
.\venv\Scripts\python.exe -m uvicorn app.main:app --reload

Dibuat dengan ❤️ oleh Nasrullah (Achul) dan Steven

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages