Skip to content

v3.0.0

Latest

Choose a tag to compare

@rizkyilhampra rizkyilhampra released this 05 Sep 18:59
· 1 commit to master since this release

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 seeder now 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.fpm and Dockerfile.nginx for containerized deployment.
  • Orchestration: A docker-compose.prod.yml file 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 supercronic to handle Laravel's scheduled tasks (schedule:run) within a dedicated scheduler container.
  • 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_KEY environment 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.js to 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.