Skip to content

Fro 62 optimisation du workflow ci GitHub actions#30

Closed
pierrick-fonquerne wants to merge 42 commits intomainfrom
FRO-62-Optimisation-du-workflow-CI-GitHub-Actions
Closed

Fro 62 optimisation du workflow ci GitHub actions#30
pierrick-fonquerne wants to merge 42 commits intomainfrom
FRO-62-Optimisation-du-workflow-CI-GitHub-Actions

Conversation

@pierrick-fonquerne
Copy link
Copy Markdown
Owner

No description provided.

…Verse Studios

FantasyRealm logos:
- Main logo (192px, 512px for PWA)
- Square, symbol, grayscale, transparent variants
- Origin high-resolution version

PixelVerse Studios logos:
- Main logo, square, symbol variants
- Grayscale, transparent, origin versions

Favicons:
- favicon.ico, favicon.svg, favicon-96x96.png
- apple-touch-icon.png for iOS
- site.webmanifest for PWA support

Updated index.html with proper meta tags and favicon references.
Removed unused vite.svg.

Closes FRO-57
Replace Vite template placeholder with FantasyRealm branding.
Remove unused react.svg asset.
…-et-assets-graphiques-PixelVerse-Studios-et-FantasyRealm

feat(assets): add brand logos and favicons for FantasyRealm and Pixel…
Use dorny/paths-filter to detect changes and skip unnecessary builds:
- Backend job runs only when src/backend/** changes
- Frontend job runs only when src/frontend/** changes
- CI workflow changes trigger both builds for safety
- Skip jobs added to keep CI green when builds are skipped

Closes FRO-58
…-avec-detection-des-changements-path-filtering

ci: add path filtering to optimize build times
Without full git history, paths-filter cannot compute the diff between
commits on push events and marks all filters as false, causing builds
to be skipped incorrectly.
…tch-depth

fix(ci): add fetch-depth: 0 for paths-filter to work on push events
- 9-page design system document
- Color palette, typography, spacing tokens
- Components, iconography, accessibility guidelines
- WCAG 2.1 AA compliance with verified contrast ratios
- Add 12 new pages for wireframes and mockups (pages 10-21)
- Wireframes Desktop: Accueil, Création, Galerie (pages 10-12)
- Wireframes Mobile: Accueil, Création, Galerie (pages 13-15)
- Mockups Desktop: Accueil, Création, Galerie (pages 16-18)
- Mockups Mobile: Accueil, Création, Galerie (pages 19-21)
- Update table of contents with new sections
- Each wireframe/mockup displayed full-width on dedicated page
…-3-pages

docs: add wireframes and mockups to charte graphique (FRO-54)
Add complete UI component library following the style guide:

Components:
- Base: Button, Input, Textarea, Select, Checkbox, Radio, Toggle, Badge, Alert
- Layout: Card (Header/Body/Footer)
- Navigation: Navbar, Breadcrumbs, Pagination
- Overlay: Modal, Dropdown, Tooltip
- Data: Tabs, Accordion

Infrastructure:
- Tailwind CSS v4 with @theme design tokens
- Self-hosted fonts (Cinzel + Inter) for RGPD compliance
- CSS animations (fade, scale, slide)
- Full TypeScript support with exported types
…System-React-composants-Tailwind

feat(frontend): implement Design System with Tailwind CSS v4 (FRO-56)
- Add Header component with responsive navigation and burger menu
- Add Footer component with links and social icons
- Add HeroSection with badge, stats and CTAs
- Add FeaturesSection with 3 feature cards
- Add PopularHeroesSection with mock heroes data
- Add AboutSection with feature checklist
- Add CtaSection with gradient background
- Create HomePage assembling all sections
- Fix Button cursor-pointer style
…O-18)

- Add Header tests (8 tests): navigation, burger menu, links
- Add Footer tests (9 tests): links, social icons, copyright
- Add HomePage tests (12 tests): all sections rendering
feat(frontend): implement homepage (FRO-18)
- Change text-dark-300 to text-cream-400 in PopularHeroesSection
- Increase Badge background opacity from /20 to /30
- Increase Badge border opacity from /30 to /40
- Use text-gold-300 instead of text-gold-400 for gold badge
- Add role="main" and id="main-content" to main element
- Add skip link for keyboard users to jump to main content
- Improves WCAG 2.1 compliance
- Add docker-compose.yml with PostgreSQL 18, MongoDB 8.0, pgAdmin, API and Frontend
- Add shell scripts: install.sh, migrate.sh, start.sh, stop.sh, reset-db.sh, logs.sh
- Add migration system with __migrations tracking table
- Add Dockerfile for .NET API and React frontend
- Update SQL schema to match MCD (SERIAL, BYTEA, optimized indexes)
- Auto-generate secure passwords on first install
- Pre-configure pgAdmin with PostgreSQL server
…e-développement-local-Docker-Compose

feat(infra): add Docker Compose local development environment (FRO-60)
- Add POST /api/auth/register endpoint with validation
- Implement Argon2id password hashing (OWASP recommended)
- Add password validation with CNIL rules (12+ chars, uppercase,
  lowercase, digit, special char)
- Add password strength scoring (Faible/Moyen/Fort/Très fort)
- Implement Result<T> pattern for clean error handling
- Add UserRepository with email/pseudo uniqueness checks
- Send welcome email on successful registration
- Add SQL migration for user audit columns (created_at, updated_at)

Unit tests: PasswordValidator, Argon2PasswordHasher, AuthService
Frontend:
- Add RegisterPage with success state and navigation
- Add RegisterForm with validation and API integration
- Add PasswordStrengthIndicator with CNIL criteria
- Add PasswordInput component with visibility toggle
- Add passwordValidation utility aligned with backend
- Add API client and authService
- Update Header with registration link
- Add CheckIcon and CircleIcon reusable components

Backend:
- Fix error response key (error -> message)
- Add ILogger to AuthService for email logging
- Fix pseudo MaxLength (50 -> 30)
- Make Program class partial for integration tests
- Add Microsoft.Extensions.Logging.Abstractions package

Tests (227 total):
- Add passwordValidation.test.ts (52 tests)
- Add PasswordStrengthIndicator.test.tsx (16 tests)
- Add RegisterForm.test.tsx (24 tests)
- Add RegisterPage.test.tsx (13 tests)
- Add AuthControllerIntegrationTests with Testcontainers (11 tests)
- Add accessibility tests with jest-axe (RGAA/WCAG)
- Update AuthServiceTests for fire-and-forget email

Infrastructure:
- Fix SQL scripts with plural table names
- Update docker-compose with PostgreSQL volume mount
- Update EmailTemplates with French text and gold color
- Replace basic light theme with immersive dark fantasy design
- Add gradient backgrounds and gold accent colors (#D4AF37)
- Include thematic emojis (castle, swords, shield icons)
- Add decorative borders and shadow effects on CTA buttons
- Translate all email content to French
- Use table-based layout for maximum email client compatibility
- Update unit tests to match French content
…RO-59)

- Execute SQL scripts from database/sql/ instead of EnsureCreated()
- Migrate DbContext tests from Unit (InMemory) to Integration (Testcontainers)
- Add constraint validation tests (unique email/pseudo, rating range)
- Fix Image property type: string -> byte[] to match SQL BYTEA schema

This ensures EF Core model matches the actual SQL schema.
…s-d-intégration-InMemory-vers-Testcontainers

test(integration): migrate to Testcontainers with real SQL scripts (F…
Backend implementation:
- Add POST /api/auth/login endpoint
- JWT token generation with claims (userId, email, pseudo, role)
- Password verification with Argon2
- Account suspension check (403 Forbidden)
- MustChangePassword flag support
- Email normalization (lowercase, trim)
- Secure error messages (no user enumeration)
- Structured logging for auth events

New files:
- IJwtService, JwtService, JwtSettings
- LoginRequest, LoginResponse, UserInfo DTOs
- GetByEmailWithRoleAsync in IUserRepository

Tests:
- 6 unit tests for LoginAsync
- 8 integration tests for POST /api/auth/login
Add frontend authentication with:
- AuthContext for global auth state and localStorage persistence
- LoginForm component with validation and error handling
- LoginPage with accessibility (RGAA) compliance
- authService.login() for API communication
- Unit tests for AuthContext, LoginForm, LoginPage (180 tests total)

Handles MustChangePassword flag (feature placeholder).
- Add DashboardPage placeholder with welcome message
- Update Header with user avatar and dropdown menu
- Redirect to /dashboard after successful login
- Add tests for DashboardPage (9 tests)
- Update Header tests for authenticated state (17 tests)
- Add POST /api/auth/forgot-password endpoint
- Create SecurePasswordGenerator with CNIL-compliant password generation
- Add ForgotPasswordRequest DTO with email + pseudo validation
- Implement ForgotPasswordAsync in AuthService with MustChangePassword flag
- Add GetByEmailAndPseudoAsync and UpdateAsync to UserRepository
- Add GetTemporaryPasswordTemplate to EmailTemplates
- Align email template colors with official style guide v3.0
- Add 22 new tests (7 AuthService, 12 SecurePasswordGenerator, 3 EmailTemplates)
- Add ForgotPasswordForm component with email + pseudo validation
- Add ForgotPasswordPage with success state
- Add forgotPassword method to authService
- Update LoginForm to link to /forgot-password
- Add route /forgot-password in App.tsx
- Add 18 tests for ForgotPasswordPage
…O-11)

Add UtcDateTimeConverter to handle PostgreSQL timestamp with time zone
requirement. Npgsql 6.0+ requires DateTime values with Kind=Utc.
Add POST /api/auth/change-password endpoint for mandatory password change:
- Create ChangePasswordRequest and ChangePasswordResponse DTOs
- Add ChangePasswordAsync to IAuthService and AuthService
- Add GetByIdWithRoleAsync to IUserRepository
- Validate current password, CNIL password rules, and uniqueness
- Return new JWT token after successful password change
- Set MustChangePassword flag to false upon completion
- Fix JWT claims mapping with MapInboundClaims = false
- Add 8 unit tests and 10 integration tests
Add ChangePasswordModal component for mandatory password change flow:
- Create ChangePasswordModal with 3 password fields and strength indicator
- Add postAuthenticated method to ApiClient for authenticated requests
- Add changePassword function to authService
- Update LoginForm to show modal when mustChangePassword is true
- Add 27 unit tests for ChangePasswordModal
- Update existing tests for new modal behavior
…spacing

- Add BaseUrl property to EmailSettings (configurable via Email__BaseUrl)
- Pass baseUrl parameter to all email template methods
- Remove hardcoded BaseUrl constant from EmailTemplates
- Remove 30px gap between header and body in email templates
- Add FRONTEND_URL environment variable support in docker-compose
- Update .env.example with FRONTEND_URL documentation
- Add unit tests for BaseUrl in email templates
- Apply code style improvements (primary constructors)
…de-passe-obligatoire

Fro 12 changement mot de passe obligatoire
- Add concurrency to cancel outdated runs on same branch
- Add NuGet package cache for faster .NET builds
- Replace skip jobs with single CI Success job
- Simplify workflow from 5 to 4 jobs
@vercel
Copy link
Copy Markdown

vercel bot commented Jan 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
fantasyrealm-character-manager Ready Ready Preview, Comment Jan 15, 2026 9:13pm

@railway-app
Copy link
Copy Markdown

railway-app bot commented Jan 15, 2026

🚅 Environment fantasyrealm-character-man-pr-30 in FantasyRealm Online has no services deployed.

@pierrick-fonquerne pierrick-fonquerne deleted the FRO-62-Optimisation-du-workflow-CI-GitHub-Actions branch January 15, 2026 21:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant