Important Notice
Domain & Server Migration
SPDHTC has been migrated to a new server and domain: spdhtc.rizkyilhampra.dev.
The previous server was decommissioned on December 16, 2024. All user accounts registered before that date have been successfully migrated and can be used on the new site.
Repository History and License Change
To protect the project's integrity and the rights of its contributors, the repository's commit history has been rewritten. This action was taken in response to the project's data being used in a public publication without attribution or prior coordination.
As a result, the following changes have been made:
- The comprehensive dataset for diseases, symptoms, and rules has been permanently removed from this repository. The
seedernow only contains a single sample disease and rule for development purposes. - The license has been changed from WTFPL to Apache License 2.0 to clarify the terms of use, distribution, and contribution.
What’s Changed
Production Docker Environment
- New Docker Setup: Added production-ready
Dockerfile.fpmandDockerfile.nginxfor containerized deployment. - Orchestration: A
docker-compose.prod.ymlfile is now included for easy multi-container setup (app, web, db, scheduler). - Hardened & Optimized: Images include security best practices like unprivileged users, read-only filesystems with tmpfs mounts, and health checks.
- Cron Jobs: Integrated
supercronicto handle Laravel's scheduled tasks (schedule:run) within a dedicatedschedulercontainer. - Entrypoint Scripts: Added an entrypoint script (
entrypoint.sh) to handle application bootstrapping, such as warming up caches and running migrations on container start.
API Migration: RajaOngkir to IDN Area
- The application has been migrated from the RajaOngkir API to the open IDN Area API for fetching province and city data.
- The
RAJAONGKIR_API_KEYenvironment variable is no longer needed and has been removed. - The controller logic was updated to handle the new API response format, ensuring seamless functionality in the user profile section.
Database & Seeding
- Refactored Seeders: The database seeding logic has been reorganized into dedicated classes (
PenyakitSeeder,GejalaSeeder,RuleSeeder) for better maintainability. - Minimal Data: As mentioned above, the seeders now only populate the database with a minimal sample of data.
Frontend Improvements
- Robust Profile Form: Introduced a new
ProfileSelectManager.jsto manage the state of dependent province and city dropdowns in the user profile modal. This provides a much more stable and reliable user experience. - Improved Chart Loading: The diagnosis detail chart now renders after the modal is fully displayed (
shown.bs.modal), preventing rendering race conditions. - Enhanced Footer: The website footer has been redesigned to provide more context about the project.
Logging
- Configured logging to output structured JSON to
stderr, a best practice for collecting logs in containerized environments.
License
- The project is now licensed under the Apache License 2.0. The old WTFPL license files have been removed.