hasyim_kai c98018bb4e Squashed commit of the following:
commit bcfb4c1456
Merge: 1cbde57 975c87d
Author: Munawwirul Jamal <57973347+munaja@users.noreply.github.com>
Date:   Mon Nov 17 11:15:14 2025 +0700

    Merge pull request #147 from dikstub-rssa/feat/surat-kontrol-135

    Feat: Integration Rehab Medik - Surat Kontrol

commit 975c87d99a
Merge: f582090 1cbde57
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Mon Nov 17 10:58:10 2025 +0700

    Merge branch 'dev' into feat/surat-kontrol-135

commit f582090d18
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Thu Nov 13 11:56:21 2025 +0700

    Fix: Refactor surat kontrol

commit a14c4a5d3c
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Tue Nov 11 14:21:58 2025 +0700

    Fix: Refactor Surat Kontrol CRUD {id} to {code}

commit 24313adef6
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Fri Nov 7 10:35:46 2025 +0700

    Fix: debug back btn in add, edit, detail content page

commit 59b44b5729
Merge: 99a61a0 db15ec9
Author: Muhammad Hasyim Chaidir Ali <68959522+Hasyim-Kai@users.noreply.github.com>
Date:   Fri Nov 7 09:11:10 2025 +0700

    Merge branch 'dev' into feat/surat-kontrol-135

commit 99a61a0bf2
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Thu Nov 6 08:06:01 2025 +0700

    Feat: add right & bottom label in input base component

commit db48919325
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Wed Nov 5 13:53:43 2025 +0700

    Feat: add banner in List if requirement not met

commit bd57250f7e
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Wed Nov 5 13:26:48 2025 +0700

    Fix: refactor getDetail url param

commit a361922e32
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Wed Nov 5 13:19:07 2025 +0700

    Feat: Add & integrate add, edit, detail page

commit 331f4a6b20
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Tue Nov 4 16:56:08 2025 +0700

    Feat: Integrate Control Letter

commit 2275f4dc99
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Mon Oct 27 14:01:58 2025 +0700

    Feat: add UI BPJS > Surat Kontrol

commit 89e0e7a2c8
Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com>
Date:   Mon Oct 27 10:21:59 2025 +0700

    Feat: add UI CRUD Surat Kontrol at Rehab Medik > kunjungan > Proses
2025-11-18 12:58:58 +07:00
2025-11-18 12:58:58 +07:00
2025-11-18 12:58:58 +07:00
2025-10-08 00:03:36 +07:00
2025-10-31 14:30:19 +07:00
2025-10-08 00:03:36 +07:00
2025-10-08 00:03:36 +07:00
2025-10-08 00:03:36 +07:00
2025-10-08 00:03:36 +07:00
2025-10-08 00:03:36 +07:00
2025-10-08 00:03:36 +07:00
2025-10-16 03:24:15 +07:00
2025-10-08 00:03:36 +07:00
2025-10-08 00:03:36 +07:00
2025-10-08 00:03:36 +07:00

SIMRS - FE

RSSA - Front End

Important

Read this following instructions before doing your job

Framework Guide

Configuration

  • nuxt.config.ts
    Nuxt configuration file
  • .env
    Some environment variables

Directory Structure for app/

  • app.vue: Main layout
  • components : Contains all reusable UI components.
  • components/content : Entry point for business logic and workflows. Pages or routes call these content components to handle API requests and process application logic
  • components/app : View-layer components that manage and present data. These are used within content/ to render or handle specific parts of the UI, and return results back to the content
  • components/pub : Public/shared components used across different parts of the app.
  • composables : Contains reusable logic and utility functions (e.g. composables, hooks)..
  • layouts : Reusable UI layout patterns used across pages.
  • models : Contains data definitions or interfaces.
  • schemas : Contains JSON schemas used for validation.
  • services : Contains reusable API calls and business logic.

Directory Structure for app/pages

  • pages/auth : Authentication related pages.
  • pages/(features) : Grouped feature modules that reflect specific business content or domains.

Directory Structure for server/

  • server/api : API or proxy requests

Workflows

The basic development workflow follows these steps:

Define Your Data in models/

  • Create data definitions or interfaces.
  • These should represent the structure of the data used across your app.

Build UI Components in components/app

  • Create reusable UI and app specific components.
  • Keep components pure, avoid making HTTP requests directly within them.
  • They receive data via props and emit events upward.

Business Logic in components/content

  • This layer connects the UI with the logic (API calls, validations, navigation).
  • It composes components from components/app/, components/pub/, and other content.
  • Also responsible for managing state, side effects, and interactions.

Create Pages in pages/

  • Define permissions and guards for each page.
  • Pages load the appropriate content from components/content/.
  • They do not contain UI or logic directly, just route level layout or guards.

Validation

  • UI level validation in components/app. help users avoid mistakes before submitting.

    • Lightweight/instant validation related to UX.
    • Basic formatting (email regex, numeric-only, password length).
    • Showing error messages directly under the field.
  • Business level validation in components/flow. cannot rely only on the UI, since it often requires server-side checks or rules that may change.

    • More complex validation rules tied to business logic.

Code Conventions

  • Under the script setup block, putting things in group with the following order:
    • Imports → all dependencies, sorted by external, alias (~), and relative imports.
    • Props & Emits → clearly define component inputs & outputs.
    • State & Computed → all ref, reactive, and computed variables grouped together.
    • Lifecycle Hooks → grouped by mounting → updating → unmounting order.
    • Functions → async first (fetching, API calls), then utility & event handlers.
    • Watchers → if needed, put them at the bottom.
    • Template → keep clean and minimal logic, use methods/computed instead of inline JS.
  • Declaration Naming
    • Uses PascalCase for type naming
    • Uses camelCase for variable and const naming
    • Underscore can be used to indicates that a variable has derived from an attribute of an object
      for example: person_name indicates it is an attribute name from object person
  • Looping
    • Uses i, j, k as variable for for looping index
    • Uses item as object instantition for forEach loop callback
    • Uses item as object instantition for v-for loop callback in the template

Git Workflows

The basic git workflow follows these steps:

  1. Create a new branch on dev
    • branch name should be feat/<feature-name> or fix/<bug-name>
  2. Make your changes
  3. Commit your changes
    • commit msg format: [type]: [description]
      • type can be feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
      • description should be a brief description of the changes
      • Example: feat: add new feature
  4. Push your changes to dev
  5. Create a pull request from dev to main
Description
No description provided
Readme 6.5 MiB