clqms-fe1/README.md
2026-02-08 17:39:53 +07:00

3.2 KiB

CLQMS Frontend - Phase 1 Complete

Project Setup Summary

Framework: SvelteKit with TypeScript
Styling: Tailwind CSS v4 + DaisyUI v5
Package Manager: pnpm
Deployment: Static adapter (SPA mode)

Quick Start

# Install dependencies
pnpm install

# Start development server
pnpm dev

# Build for production
pnpm build

# Preview production build
pnpm preview

Project Structure

src/
├── app.css                    # Global styles with DaisyUI theme
├── app.d.ts                   # TypeScript declarations
├── app.html                   # HTML template
├── hooks.server.ts            # Server hooks (auth middleware)
├── lib/
│   ├── components/
│   │   ├── index.ts          # Component exports
│   │   ├── layout/
│   │   │   ├── Header.svelte # App header with user menu
│   │   │   └── Sidebar.svelte # Navigation sidebar
│   ├── server/
│   │   └── api.ts            # API client wrapper
│   ├── stores/
│   │   ├── auth.ts           # Auth state management
│   │   └── index.ts          # Store exports
│   └── types/                # TypeScript types (to be added)
└── routes/
    ├── +layout.svelte        # Root layout
    ├── +page.svelte          # Landing page (redirects to login)
    ├── (app)/                # Protected app routes
    │   ├── +layout.svelte    # App layout with sidebar
    │   └── dashboard/
    │       └── +page.svelte  # Dashboard page
    └── (auth)/               # Public auth routes
        ├── +layout.svelte    # Auth layout (no sidebar)
        └── login/
            └── +page.svelte  # Login page

build/                         # Production build output

Configuration Files

  • svelte.config.js - SvelteKit config with static adapter
  • vite.config.ts - Vite config with Tailwind plugin
  • tsconfig.json - TypeScript configuration
  • .env - Environment variables

Features Implemented

  • SvelteKit project initialized with TypeScript
  • Tailwind CSS v4 + DaisyUI v5 configured
  • Forest theme with medical green colors
  • Static adapter for static hosting
  • API client with fetch wrapper
  • Auth store for state management
  • Server hooks for auth middleware
  • Login page (converted from template)
  • Dashboard page with stats cards
  • Sidebar navigation component
  • Header component with user menu
  • Responsive layout

Environment Variables

Create a .env.local file for local overrides:

PUBLIC_API_BASE_URL=http://localhost/clqms01/
PUBLIC_API_BASE_URL_PROD=https://clqms01-api.services-summit.my.id/

Next Steps (Phase 2)

  1. Implement actual login API integration
  2. Add JWT token handling
  3. Create protected routes
  4. Add logout functionality
  5. Implement password change

Build Output

The production build is generated in the build/ folder and can be deployed to any static hosting service (Netlify, Vercel, GitHub Pages, etc.).

Notes

  • DaisyUI v5 uses Tailwind v4's new CSS-first configuration
  • The forest theme uses medical green (#2d6a4f) as primary color
  • Static adapter configured with fallback for SPA routing