Skip to main content
#14

PharmaStock

Pharmacy Inventory & Financial Management System — Financial dashboard, critical stock detection, multi-role RBAC, and automated VAT/Income Tax calculations.

PythonFlaskHealthcarePharmacyFinancePWADashboardOpen SourceSupabase

💊 PharmaStock (V1.0.0) — Sistem Manajemen Inventaris & Keuangan Apotek

<p align="center"> <img src="images/logo.png" alt="PharmaStock Logo" width="120"/> </p> <h1 align="center">PharmaStock</h1> <p align="center"> <strong>Sistem Manajemen Inventaris & Keuangan Apotek</strong> </p> <p align="center"> <a href="https://pharma-stock.curzy.dev/"><strong>🌐 Live Demo</strong></a> </p> <div align="center">

Stars Forks License Platform

</div> <p align="center"> <a href="#-masalah">Masalah</a> · <a href="#-fitur-unggulan">Fitur</a> · <a href="#-tech-stack">Tech Stack</a> · <a href="#-struktur">Struktur</a> · <a href="#-demo">Demo</a> </p>

🕒 Apa Itu PharmaStock?

PharmaStock adalah sistem manajemen inventaris dan keuangan farmasi berbasis web yang dirancang khusus untuk pemilik apotek, kepala gudang, dan apoteker.

Masalah yang Diselesaikan

MasalahDampak
Pencatatan stok manual (buku/Excel)Selisih stok fisik yang sulit dilacak
Tidak ada deteksi dini expiredObat kedaluwarsa tidak terdeteksi
Owner tidak punya visibility omset real-timeKebocoran data finansial
Staff bisa lihat data sensitifMargin keuntungan terbuka

Solusi

PharmaStock menyediakan Dashboard Finansial Otomatis, Deteksi Stok Kritis & Near-Expiry, Pelacakan No. Batch, Kalkulasi PPN/PPh Otomatis, dan Isolasi Data Multi-Role (RBAC + RLS).


🎯 Fitur Unggulan

FiturStatusDeskripsi
Dashboard FinansialTotal omset, margin, grafik real-time untuk Owner
Deteksi Stok KritisOtomatis tandai produk di bawah ambang batas
Deteksi Near-ExpiryObat kedaluwarsa dalam 90 hari ditandai
Pelacakan Batch & ExpiredNo. Bets + Expiry Date sesuai standar farmasi
Kalkulator PPN & PPhPPN 11% & PPh 22 otomatis saat input transaksi
Isolasi Multi-Role (RBAC + RLS)Owner, Apoteker, Gudang dengan akses terpisah
Activity LogSetiap transaksi tercatat dengan timestamp & user
Responsif Mobile & DesktopOptimasi untuk staff lapangan & kasir

🛠️ Tech Stack

LayerTeknologiAlasan
FrontendNext.js 16, TypeScript, Tailwind CSSSSR, type-safety, optimasi bundle
BackendNext.js Server Actions & Route HandlersSatu wadah dengan frontend
DatabaseSupabase (PostgreSQL 17)Row Level Security 100%
StateSWRFetching real-time hemat bandwidth
ExportjsPDF + jspdf-autotableExport PDF laporan langsung dari dashboard

🏗️ Struktur Proyek

PharmaStock/
├── public/                  # Aset statis logo & ikon
├── src/
│   ├── app/               # Next.js App Router
│   │   ├── api/           # Route Handlers (REST API)
│   │   ├── karyawan/      # Manajemen karyawan (Admin)
│   │   ├── kategori/     # Kelola kategori produk
│   │   ├── keluar/       # Transaksi barang keluar
│   │   ├── masuk/         # Transaksi barang masuk
│   │   ├── produk/        # Katalog produk
│   │   ├── laporan/       # Dashboard finansial + logs
│   │   └── login/         # Autentikasi multi-role
│   ├── components/         # Komponen UI reusable
│   ├── lib/               # Helper, util, Supabase client
│   └── types/             # TypeScript definitions
├── supabase/migrations/   # Skrip migrasi SQL
└── package.json

🔑 Akun Demo (Sandbox)

PeranUsernamePasswordHak Akses
Admin (Owner)adminCurzy7Day#Dashboard finansial, karyawan, semua laporan
Apotekerapoteker1Curzy7Day#Stok kritis, katalog, barang keluar, kalkulator
Gudanggudang1Curzy7Day#Stok kritis, katalog, barang masuk, kalkulator

⚠️ Akun demo hanya untuk simulasi. Data dapat di-reset sewaktu-waktu.


🖼️ Preview

<!-- Tambah preview dengan screenshot/gif aplikasi -->

📦 Lisensi

PharmaStock adalah produk komersial. Lisensi selengkapnya tersedia di LICENSE.

Ketentuan Utama:

KetentuanDetail
PenggunaanDiperbolehkan untuk operasional apotek sendiri
ModifikasiDiperbolehkan untuk kebutuhan internal
DilarangMenjual ulang, membagikan, atau mempublikasikan ulang kode
Logo & NamaTIDAK BOLEH diganti atau dihapus
KepemilikanSeluruh hak cipta milik @Curzyori (Yuken Velino)

💰 Pembelian & Kontak

PharmaStock adalah produk komersial. Untuk informasi harga dan pembelian:

KontakDetail
WhatsAppHubungi via WhatsApp
GitHub@Curzyori
Portfoliocurzy.dev

👤 Pengembang

Dikembangkan dan dilindungi hak cipta oleh:

@Curzyori (Yuken Velino) Founder & Lead Engineer — Curzy


<sub>Built with passion as the 14th Project of the <strong>50 Projects Challenge</strong> by <strong>@curzyori</strong></sub>