16 Commits

Author SHA1 Message Date
Alexis Bruneteau
9420975f76 fix: Install kustomize directly from GitHub instead of using external action
Replace imranismail/setup-kustomize action with direct kustomize installation from kubernetes-sigs GitHub repository. This avoids authentication issues with Gitea.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 12:50:50 +02:00
Alexis Bruneteau
00331c5d95 refactor: Use Kustomize for Kubernetes deployment management
- Update kustomization.yaml with newName field for proper image replacement
- Replace individual kubectl apply commands with kustomize build
- Use kustomize edit to dynamically set image tag from CI/CD pipeline
- Simplify deployment to single 'kubectl apply -k' command
- Consolidate verification steps

Benefits:
- Single source of truth for manifest configuration
- Declarative image tag management
- Easier to manage overlays for different environments
- Reduced template duplication

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 12:42:33 +02:00
Alexis Bruneteau
b98075df82 fix: Fix kubectl apply syntax for multiple files
kubectl apply -f does not accept multiple files as separate arguments on the same line. Changed to apply each manifest individually.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 12:42:00 +02:00
Alexis Bruneteau
b555203dc7 fix: Resolve Docker build failure by installing dev dependencies
- Change npm ci to install all dependencies (including devDependencies) during build stage
- Run npm ci --only=production after build to minimize final image size
- Fix CMD instruction to use JSON format (resolves Docker warning)

class-variance-authority, tailwindcss, postcss, and other build tools are required during the build process and were missing when using --only=production flag initially.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 12:20:36 +02:00
Alexis Bruneteau
20d0993b06 fix: Resolve ESLint errors to enable production build
- Remove unused getCategoryColor import from Charts.tsx (no-unused-vars)
- Remove unused CardDescription import from HomePage.tsx (no-unused-vars)
- Fix CardTitle type annotation (HTMLParagraphElement -> HTMLHeadingElement)
- Add eslint-disable-next-line for CardTitle heading-has-content (intentional generic wrapper component)

Build now compiles without errors.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 12:11:54 +02:00
Alexis Bruneteau
a918615eb4 fix: Resolve dependency conflict and optimize Gitea workflow
- Fix package-lock.json sync issue by installing yaml@2.8.1 to satisfy tailwindcss dependency requirements
- Remove redundant test step (--passWithNoTests defeats purpose)
- Consolidate kubectl apply commands into single operation
- Combine kubectl verification with deployment update step
- Remove separate notify job (redundant; use Gitea status checks)
- Add env variables at workflow level for DRY principle
- Improve Docker build efficiency with multi-tag in single command
- Add proper permissions to kubeconfig file
- Simplify action syntax (uses: vs name:)

This reduces workflow execution time and complexity while fixing npm ci errors.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 12:06:06 +02:00
Alexis Bruneteau
35614903d6 feat: Update k8s ingress configuration
- Change host to diwii.sortifal.dev
- Remove HTTPS/TLS configuration (handled upstream)
- Simplify ingress rules for HTTP-only routing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 01:29:54 +02:00
Alexis Bruneteau
af378e0d0e fix: Configure Gitea workflow for monorepo structure
- Add working-directory default to build and deploy jobs
- Fix npm cache lookup to point to dashboard-sqdc/package-lock.json
- Ensure all Node.js and kubectl operations execute from correct directory

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 01:29:01 +02:00
Alexis Bruneteau
1ca02412a9 tag 2025-10-22 00:44:02 +02:00
Alexis Bruneteau
770c41d5e0 feat: Add Shadcn UI, dark theme, and complete Docker/K8s deployment setup
Major Changes:
- Migrate UI to Shadcn components with Tailwind CSS v3
- Implement dark theme as default with improved color scheme
- Optimize homepage layout to fit single screen without scrolling
- Fix chart visibility with explicit colors for dark mode

Deployment Infrastructure:
- Add Docker multi-stage build with Nginx + Node.js
- Create Kubernetes manifests (deployment, service, ingress, PVC)
- Configure Gitea CI/CD workflow with registry integration
- Add deployment scripts with registry support

CI/CD Configuration:
- Registry: gitea.vidoks.fr/sortifal/pfee
- Automatic build and push on commits
- Kubernetes deployment with image pull secrets
- Three-stage pipeline: build, deploy, notify

Documentation:
- Add DEPLOYMENT.md with comprehensive deployment guide
- Add SETUP-REGISTRY.md with step-by-step registry setup
- Add workflow README with troubleshooting guide
- Include configuration examples and best practices

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 00:42:32 +02:00
paul.roost
ca05e334a7 feat: Implement server-side API for categories, KPIs, and measurements
- Added Express server with SQLite database connection.
- Created API endpoints to fetch categories, KPIs, measurements, and statistics.
- Implemented error handling for database operations.

feat: Create ChartModal component for visualizing KPI data

- Developed ChartModal to display line charts for KPI measurements.
- Integrated Chart.js for rendering charts with responsive design.
- Added styling for modal and chart components.

feat: Add ExportModal component for exporting KPI data

- Implemented ExportModal to allow users to select data ranges for export.
- Included radio buttons for predefined time ranges (last week, month, year, all data).
- Styled modal for better user experience.

feat: Introduce RangeChartModal for dynamic range selection

- Created RangeChartModal to visualize KPI data over user-selected time ranges.
- Integrated radio buttons for selecting different time ranges.
- Enhanced chart rendering with Chart.js.

refactor: Create useSQLiteDatabase hook for data fetching

- Developed custom hook to manage fetching categories, KPIs, and measurements.
- Improved error handling and loading states for better user feedback.

style: Add CSS styles for modals and charts

- Created styles for ChartModal, ExportModal, and RangeChartModal.
- Ensured responsive design for various screen sizes.
2025-10-21 13:31:14 +02:00
paul.roost
5ecda7eef7 feat: Add DetailPage and HomePage components with KPI visualization
- Implemented DetailPage for detailed KPI analysis including charts and status badges.
- Created HomePage to display an overview of KPIs categorized by security, quality, delays, costs, and maintenance.
- Introduced KPI types and data structures for better type safety.
- Added styles for DetailPage, HomePage, KPICard, and charts for improved UI.
- Integrated web vitals reporting and setup tests for better performance tracking and testing.
- Included a CSV file with mathematical formulas for KPI calculations.
2025-10-21 12:23:45 +02:00
paul Roost
aa13c49772 Update cahier_des_charges with formatting adjustments and content enhancements for clarity and consistency 2025-09-13 17:13:47 +02:00
paul Roost
9d8dc1b3fb Update cahier_des_charges with enhancements to pedagogical approaches and technical specifications 2025-09-12 13:03:07 +02:00
paul Roost
e72588b22b Update cahier_des_charges with team member details and enhance analysis sections 2025-09-09 15:13:47 +02:00
Alexis Bruneteau
ecdd37bef0 cdc 2025-09-09 14:05:46 +02:00