No description
  • Vue 89.7%
  • TypeScript 10.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Taufiq Ismail e6db36a488 Merge branch 'origin/dev-ezzad' into 'master'
INFRA-3303 - fix bug and add features Salin Semula

See merge request shukry-datakraf/myinfra-frontend!428
2026-08-28 07:10:45 +00:00
app-layouts Merge remote-tracking branch 'origin/master' into dev-shukry 2026-08-27 14:32:52 +08:00
app-routes Merge remote-tracking branch 'origin/master' into dev-shukry 2026-08-27 14:32:52 +08:00
assets fix(INFRA-3261): read komponen status from status_detail 2026-08-12 14:00:43 +08:00
components Merge remote-tracking branch 'origin/master' 2026-08-28 07:35:40 +08:00
composables INFRA-3303 - fix bug and add features Salin Semula 2026-08-28 12:33:38 +08:00
config INFRA-3303 - fix bug and add features Salin Semula 2026-08-28 12:33:38 +08:00
constants Merge remote-tracking branch 'origin/master' 2026-07-30 23:15:05 +08:00
docs Merge remote-tracking branch 'origin/master' into dev-shukry 2026-08-16 19:29:05 +08:00
e2e Agihan semula reuse flow UI and display fixes 2026-08-08 06:44:12 +08:00
examples remove aproval workflow deprecated 2026-02-24 13:19:46 +08:00
k8s chore(INFRA-3228): add Mailpit mail sink to training env 2026-07-27 20:22:38 +08:00
layouts Merge remote-tracking branch 'origin/master' into dev-shukry 2026-08-05 11:24:30 +08:00
middleware feat(tpata): 3D borang and per-quarter figures; withdraw Pengurusan Laporan 2026-08-19 17:15:34 +08:00
pages INFRA-3303 - fix bug and add features Salin Semula 2026-08-28 12:33:38 +08:00
plugins fix(frontend): add 401 refresh recovery in auth-init and persist refresh timing across page reloads 2026-08-24 00:34:30 +08:00
public feat(jalan): add MARRIS guideline reference page 2026-07-30 23:15:34 +08:00
scripts kewangan: UI enhancements, routing & dev scripts 2026-06-22 19:12:18 +08:00
server feat(INFRA-2792): add carousel block and refine header/layout options 2026-07-09 09:56:28 +08:00
services Merge branch 'dev-adam' into 'master' 2026-08-28 03:35:49 +00:00
stores feat(komponen): sub-komponen form rows + Borang DA8 print button 2026-07-11 13:56:41 +08:00
tests Merge remote-tracking branch 'origin/master' into dev-shukry 2026-08-27 14:32:52 +08:00
themes Merge branch 'master-rian-new' into 'master' 2026-01-28 04:06:02 +00:00
types Merge remote-tracking branch 'origin/master' into dev-shukry 2026-08-27 14:32:52 +08:00
utils Merge remote-tracking branch 'origin/master' into dev-shukry 2026-08-27 14:32:52 +08:00
.dockerignore update dockerignore 2025-10-12 10:25:28 +08:00
.env.example chore(pelaporan): trim the module-flag comments to one line each 2026-08-17 13:25:09 +08:00
.gitattributes chore: add .gitattributes and normalize line endings to LF 2026-06-06 18:37:58 +08:00
.gitignore Kewangan: unify Jabatan/Agensi wording & UX 2026-08-13 04:58:35 +08:00
.gitlab-ci.yml ci(frontend): make staging ingress apply non-fatal on RBAC forbidden 2026-07-10 04:09:15 +08:00
.nuxtrc remove duplicate var 2026-06-06 22:59:44 +08:00
.prettierrc Dpa flow 2025-06-12 21:05:57 +00:00
app.vue Add client fetch timeout and UI / rental tweaks 2026-03-12 15:53:39 +08:00
docker-compose.dev.yml perf(dev): stop forcing polling watchers on Linux 2026-08-18 15:16:43 +08:00
docker-compose.prod.yml chore(docker): wire prod compose to .env and module feature flags 2026-08-08 06:26:18 +08:00
docker-compose.yml Update docker-compose.yml 2026-03-05 15:44:32 +08:00
Dockerfile kewangan: UI enhancements, routing & dev scripts 2026-06-22 19:12:18 +08:00
Dockerfile.ci update 2025-10-13 14:33:15 +08:00
Dockerfile.dev update docker compose 2025-06-16 10:39:01 +08:00
eslint copy.config.mjs remove duplicate var 2026-06-06 22:59:44 +08:00
eslint.config.mjs project setup 2025-04-24 14:59:27 +08:00
nuxt.config.ts fix(dev): restore env-driven Vite HMR config for HTTPS staging 2026-08-18 12:51:34 +08:00
package-lock.json feat(me): add Cetak / Muat Turun PDF laporan for Maklumat Eksekutif 2026-08-28 10:59:48 +08:00
package.json feat(me): add Cetak / Muat Turun PDF laporan for Maklumat Eksekutif 2026-08-28 10:59:48 +08:00
PENGURUSAN_PELANGGAN_COMPLETE_GUIDE.md legacy matching 2026-03-30 07:19:25 +00:00
PENGURUSAN_PELANGGAN_FRONTEND_REFERENCE.md legacy matching 2026-03-30 07:19:25 +00:00
Perlembagaan NuxtJS.pdf add guide 2025-06-01 14:24:22 +08:00
README.md Edit README.md 2026-08-18 09:30:35 +00:00
tailwind.config.js chore(config): add Inter as primary font in Tailwind sans stack 2026-07-27 04:35:27 +08:00
test-custom-items.js remove console.log 2025-10-15 23:03:56 +08:00
theme-preset.ts add primevue theme 2025-04-28 22:59:26 +08:00
tsconfig.json update 2025-06-29 12:12:35 +08:00
vitest.config.ts Add KWGN 'waran' e2e suite and test tooling 2026-06-01 23:37:17 +08:00

MyInfra Frontend

MyInfra system.

Prerequisites

  • Node.js 20 or higher
  • Docker and Docker Compose (for containerized development)

Getting Started

Local Development

  1. Clone the repository
git clone <repository-url>
cd myinfra-frontend
  1. Install dependencies
npm install
  1. Copy environment variables
cp .env.example .env
  1. Run development server
npm run dev

The application will be available at http://localhost:3000

Docker Development

  1. Copy environment variables
cp .env.example .env
  1. Start development with Docker Compose
docker-compose up

The application will be available at http://localhost:3000 with hot-reload enabled.

To rebuild the containers:

docker-compose up --build

Production Build

Local Build

npm run build
npm run preview

Docker Production

docker-compose -f docker-compose.prod.yml up -d

To rebuild for production:

docker-compose -f docker-compose.prod.yml up -d --build

Available Scripts

Development

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run generate - Generate static site
  • npm run lint - Run ESLint

Testing

  • npm run test - Run tests in watch mode
  • npm run test:ci - Run tests once (CI mode)
  • npm run test:coverage - Run tests with coverage report
  • npm run test:ui - Open Vitest UI

Test Coverage: 614 tests (98.2% passing) across services, composables, middleware, stores, and components

Docker Commands

Development

  • docker-compose up - Start development environment
  • docker-compose down - Stop development environment
  • docker-compose logs -f - View logs
  • docker-compose exec nuxt-dev sh - Access container shell

Production

  • docker-compose -f docker-compose.prod.yml up -d - Start production
  • docker-compose -f docker-compose.prod.yml down - Stop production
  • docker-compose -f docker-compose.prod.yml logs -f - View logs
  • docker-compose -f docker-compose.prod.yml ps - Check container status

Environment Variables

See .env.example for required environment variables:

  • NODE_ENV - Application environment (development/production)
  • NUXT_HOST - Host to bind (default: 0.0.0.0)
  • NUXT_PORT - Port to bind (default: 3000)
  • NUXT_PUBLIC_API_BASE - API base URL
  • NUXT_AUTH_SECRET - Authentication secret
  • NUXT_PUBLIC_MAPBOX_TOKEN - Mapbox API token (if using maps)
  • NUXT_PUBLIC_MAPS_API_KEY - Google Maps API key

Project Structure

myinfra-frontend/
├── components/          # Vue components
├── pages/              # Nuxt pages
├── public/             # Static assets
├── server/             # Server middleware
├── Dockerfile          # Multi-stage Docker configuration
├── docker-compose.yml  # Development Docker Compose
└── docker-compose.prod.yml # Production Docker Compose

Troubleshooting

Port Already in Use

If port 3000 is already in use, you can change it in:

  • .env file: Update NUXT_PORT
  • docker-compose.yml: Update the ports mapping

Docker Build Issues

  • Clear Docker cache: docker system prune -a
  • Rebuild without cache: docker-compose build --no-cache

Permission Issues in Docker

If you encounter permission issues, ensure the node user has proper permissions:

docker-compose exec nuxt-dev chown -R node:node /app

... ... ...