Add project rebuild specs
This commit is contained in:
95
project-specs/API_ENDPOINTS.md
Normal file
95
project-specs/API_ENDPOINTS.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# API Endpoints - DocLink Web
|
||||
|
||||
Source of truth for this document:
|
||||
- Compiled Flutter web build in `main.dart.js`
|
||||
- Sample test data in `assets/assets/fpp-example.json`
|
||||
|
||||
Important note:
|
||||
- This repo snapshot looks like a **compiled web build**, not the original Dart source.
|
||||
- Endpoint paths and request fields below are extracted from the compiled JavaScript bundle.
|
||||
- Some request methods are inferred from the shared HTTP helper used by the app.
|
||||
|
||||
## Base URL
|
||||
|
||||
Most endpoints point to:
|
||||
|
||||
```text
|
||||
https://devbandungraya.aplikasi.web.id/one-api-doctor/doctor_mitra
|
||||
```
|
||||
|
||||
## HTTP pattern
|
||||
|
||||
The compiled app uses a shared JSON POST helper:
|
||||
|
||||
- `Content-Type: application/json`
|
||||
- `Authorization: Bearer <token>` when token auth is available
|
||||
- Many requests also include `token` in the JSON body
|
||||
|
||||
## Auth
|
||||
|
||||
| Endpoint | Method | Purpose | Request fields |
|
||||
| --- | --- | --- | --- |
|
||||
| `/auth/login` | POST | Login doctor user | `username`, `doctor_id`, `password` |
|
||||
| `/auth/logout` | POST | Logout user | `M_UserID`, `M_UserUsername` |
|
||||
| `/auth/change_password` | POST | Change password | `token`, `M_UserID`, `username`, `doctor_id`, `new_password`, `confirm_password` |
|
||||
|
||||
## Order / Result
|
||||
|
||||
| Endpoint | Method | Purpose | Request fields |
|
||||
| --- | --- | --- | --- |
|
||||
| `/order/home` | Referenced in app config | Home page / navigation target | Not visible as request body in the bundle snippet |
|
||||
| `/order/order_list_search_for_result_v2` | Referenced in app config | Search/list result page | Not visible as request body in the bundle snippet |
|
||||
| `/order/get_order_saran_by_order_patient_id` | POST | Fetch saran/recommendation by order patient ID | `token`, `order_patient_id` |
|
||||
| `/order/hasil_belum_keluar_by_id` | POST | Fetch unfinished result by order ID | `token`, `order_id` |
|
||||
| `/order/order_patient` | POST | Create/save order patient | `token`, `M_MouID`, `patient_name`, `patient_diagnosa`, `patient_address`, `patient_nik`, `patient_hp`, `patient_dob`, `patient_note`, `details` |
|
||||
| `/order/search_order_pasien_by_doktorid` | POST | Search patient orders by doctor | `token`, `OrderPatientM_DoctorID`, `search` |
|
||||
|
||||
## FPP
|
||||
|
||||
| Endpoint | Method | Purpose | Request fields |
|
||||
| --- | --- | --- | --- |
|
||||
| `/Fpp/load/{c}/{b}` | POST | Load FPP data | Path params only in bundle snippet |
|
||||
| `/Fpp/loadFPP/{a}/{b}` | POST | Load FPP detail/data | Path params only in bundle snippet |
|
||||
|
||||
## Pesan Khusus
|
||||
|
||||
| Endpoint | Method | Purpose | Request fields |
|
||||
| --- | --- | --- | --- |
|
||||
| `/Pesankhusus/add_pesan_khusus` | POST | Save special message | `token`, `order_id`, `pesan_khusus` |
|
||||
|
||||
## Other API base references
|
||||
|
||||
The bundle also references additional API bases for result/summary flows:
|
||||
|
||||
- `.../result/getResult`
|
||||
- a base path used for summary and search flows
|
||||
|
||||
Those base URLs are not fully visible in the extracted snippet, so I did not guess them here.
|
||||
|
||||
## Sample data
|
||||
|
||||
`assets/assets/fpp-example.json` contains lab test group data, for example:
|
||||
|
||||
- `HEMATOLOGI`
|
||||
- `KLINIK RUTIN`
|
||||
|
||||
This looks like static UI seed data, not an API endpoint.
|
||||
|
||||
## Rebuild notes for a new project
|
||||
|
||||
The current UI looks very mobile-first. For a new project, I would split it into:
|
||||
|
||||
1. Auth screens
|
||||
2. Dashboard shell
|
||||
3. Order flow
|
||||
4. Result/search flow
|
||||
5. FPP flow
|
||||
6. Password change / profile actions
|
||||
|
||||
Responsive behavior should use:
|
||||
|
||||
- mobile: bottom navigation or drawer
|
||||
- desktop: persistent sidebar + content pane
|
||||
- forms: two-column layout on desktop, single column on mobile
|
||||
- tables/lists: cards on mobile, table/grid on desktop
|
||||
|
||||
Reference in New Issue
Block a user