尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Free Indonesian Dental Care Apps (Integrated BPJS and Satu Sehat)
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A web-based clinic management application (Laravel 12), covering patient registration, medical records, billing, pharmacy/POS, payroll, doctor booking, up to basic hospital-style services (ER/Lab/Radiology/Inpatient care) and a self-service patient portal.
🔓 Free, No License — Self-Hosted Mode
This application has a license/serial validation mechanism against a remote server by default. To use it for free, with no license validation at all, set the following in your
.envfile:TYPE_LOCAL_SERVER=2With this value, the license gate (
AuthApiMiddleware) is bypassed entirely — no serial check, no connection to any license server. Suitable for self-use, further development, or self-hosted deployment with no license cost. See the License & Access Mode section below for details.
Patient Registration & Queue
/monitor-antrian).Examination & Medical Records
Billing, Finance & Pharmacy
HR & Payroll
Advanced Services (hospital-style)
Multi-Branch & Patient Portal
Klien) — users only see their own branch's data.Access Control & Audit
The feature list above reflects the current state of the code. For deeper architectural/technical conventions, see
CLAUDE.md.
<script>/<link> tags, no build step (Vite/Tailwind were removed from the original skeleton).<body> via fetch) without rewriting the frontend into a JS framework.barryvdh/laravel-dompdf for every printout (letters, invoices, etc.), via the viewOrPdf() helper.concurrently, the process runner for composer dev — not for a frontend build).pdo_sqlite or pdo_mysql, mbstring, openssl, etc).# 1. Clone the repo and enter it
git clone <this-repo-url> jivident
cd jivident
# 2. Install PHP dependencies
composer install
# 3. First-time setup — creates .env, generates APP_KEY, then migrates
composer setup
composer setup automatically:
.env.example to .env (if it doesn't exist yet).APP_KEY.php artisan migrate --force.After that, set TYPE_LOCAL_SERVER=2 in .env as mentioned at the top, so you don't hit the license gate.
If you want sample data (Indonesian regional data for address autocomplete, ICD-9/10, product categories, etc.) seeded too:
php artisan migrate:fresh --seed
composer dev
This runs three processes at once (via concurrently): php artisan serve, php artisan queue:listen, and php artisan pail (log tailing) — so a single terminal is enough for day-to-day development.
The app is reachable at http://localhost:8000 (or whatever APP_URL/port php artisan serve ends up using).
The initial migration (2024_07_17_005400_create_users_table.php) already creates a few sample users:
| Username | Password | Note |
|---|---|---|
superadmin | 12341234 | Full access |
user1 | 12341234 | Extra sample user |
user2 | 12341234 | Extra sample user |
Change these passwords immediately if the app is used anywhere outside a local development environment.
This application has a global middleware (App\Http\Middleware\AuthApiMiddleware) that runs on almost every request, checking a serial row in the database and — when it needs re-validating — making a request to the license server at AUTH_SERVER (env). Without a valid serial, the user is redirected to the license page.
There are two ways to run this application:
serial_code, periodically re-validated against AUTH_SERVER. Used when the app is deployed as a licensed product for other parties.TYPE_LOCAL_SERVER=2
in .env. The license gate is bypassed entirely — no serial check, no connection to any server. This is the recommended mode if you're running this app for yourself / your own organization, rather than as a product sold to other clinics.Testing note:
phpunit.xmlpinsTYPE_LOCAL_SERVER=0, so the test suite doesn't silently inherit a developer's local.envvalue — your own.envsetting doesn't affectcomposer testresults.
# Run the full test suite
composer test
# Run a specific test file/method
php artisan test tests/Unit/ProductQtyHelperTest.php
php artisan test --filter=test_method_name
# Check/format code style (Laravel Pint)
vendor/bin/pint --test # check only, no write
vendor/bin/pint # auto-format
app/Http/Controllers/Website/ — all business logic controllers, one namespace for every feature.app/Helpers/ — core logic shared across controllers (product stock/FEFO, transaction ledger, POS, payroll, doctor booking, manual database backup).routes/web.php — every route is defined here (no api.php), grouped per module with the checkAccess:<MODULE_CODE> middleware.resources/views/pages/ — one folder per module/menu, following the index (empty DataTable) + getList (server-side DataTables) endpoint pattern.For a deeper architectural explanation (conventions, design decisions, known gaps), read CLAUDE.md at the project root — that document is written to help anyone (human or AI assistant) understand this codebase quickly.