Commit Graph

173 Commits

Author SHA1 Message Date
Mathis HERRIOT
c6b23de481 feat(api): add TagService and enhance API error handling
Introduce `TagService` to manage tag-related API interactions. Add SSR cookie interceptor for API requests and implement token refresh logic on 401 errors. Update `FavoriteService` to use `favoritesOnly` filter for exploring content.
2026-01-14 22:19:11 +01:00
Mathis HERRIOT
0611ef715c feat(ui): add ViewCounter component and enhance accessibility annotations
Introduce a new `ViewCounter` component to manage view tracking for content. Add biome-ignore comments for accessibility standards in several UI components, enhance semantic element usage, and improve tag handling in `SearchSidebar`.
2026-01-14 22:18:50 +01:00
Mathis HERRIOT
0a1391674f feat(meme): add ViewCounter component to meme detail pages
Integrate the `ViewCounter` component into meme standard and modal detail pages to track and display content views.
2026-01-14 22:18:10 +01:00
Mathis HERRIOT
2fedaca502 refactor(app): reorder imports in app.module.ts for consistency and readability 2026-01-14 22:00:16 +01:00
Mathis HERRIOT
a6837ff7fb refactor(auth): reorder imports in optional-auth.guard.ts for consistency and readability 2026-01-14 22:00:10 +01:00
Mathis HERRIOT
74b61004e7 refactor(auth): rename id to uuid in AuthStatus and mock uuid in tests 2026-01-14 21:59:51 +01:00
Mathis HERRIOT
760343da76 refactor(app): simplify metadata description formatting in layout component 2026-01-14 21:59:02 +01:00
Mathis HERRIOT
14f8b8b63d refactor(contents): reorder imports and improve code formatting
Standardize import order in `contents.controller.ts` and related files for better code readability. Adjust SQL formatting in repository methods for consistency.
2026-01-14 21:58:52 +01:00
Mathis HERRIOT
50a186da1d refactor(core): standardize and reorder imports across admin services and modules
Optimize the structure and readability of import statements in `admin` services, modules, and controllers. Ensure consistency and logical grouping for improved maintainability.
2026-01-14 21:58:41 +01:00
Mathis HERRIOT
3908989b39 feat(users): enhance user schema and extend service dependencies
Add `email` and `status` fields to user schema for better data handling. Update `UsersService` with new service dependencies (`RbacService`, `MediaService`, `S3Service`, `ConfigService`) for enhanced functionality. Mock dependencies in tests for improved coverage. Adjust user model with optional and extended fields for flexibility. Streamline and update import statements.
2026-01-14 21:58:28 +01:00
Mathis HERRIOT
02d70f27ea refactor: optimize import orders, improve formatting and code readability
Standardize import declarations, resolve misplaced imports, and enhance consistency across components. Update indentation, split multiline JSX props, and enforce consistent function formatting for better maintainability.
2026-01-14 21:58:04 +01:00
Mathis HERRIOT
65f8860cc0 feat(auth): add optional authentication guard and extend AuthModule providers
Some checks failed
Backend Tests / test (push) Failing after 5m0s
Lint / lint (push) Failing after 5m2s
Introduce `OptionalAuthGuard` to allow conditional authentication for routes. Update `AuthModule` to include `AuthGuard`, `OptionalAuthGuard`, and `RolesGuard` in providers and exports for broader reuse.

feat(app): integrate `AdminModule` into app module

Add `AdminModule` to the app's main module to enable administration functionalities.

feat(users): enhance user profiles with bio and avatar fields

Extend `UpdateUserDto` to include optional `bio` and `avatarUrl` fields for better user customization.

feat(categories): add functionality to count all categories

Implement `countAll` method in `CategoriesRepository` to fetch the total number of categories using raw SQL counting.
2026-01-14 21:45:32 +01:00
Mathis HERRIOT
0e9edd4bfc feat(app): enhance metadata and add admin sidebar section
Update app metadata with multilingual support, SEO improvements, and structured OpenGraph and Twitter metadata. Add an "Administration" section in the sidebar for authenticated admin users. Improve role display and enable dynamic sorting in `HomeContent`. Extend UI badges with a success variant.
2026-01-14 21:44:25 +01:00
Mathis HERRIOT
6ce58d1639 feat(admin): implement admin statistics API and service
Add admin statistics endpoint to provide user, content, and category stats. Introduce `AdminModule` with controller, service, and repository integration for data aggregation. Include frontend service to consume the stats API.
2026-01-14 21:44:14 +01:00
Mathis HERRIOT
47d6fcb6a0 feat(media): add image resizing support for processImage
Extend the `processImage` method to support optional resizing with `width` and `height` parameters. Update processing pipeline to handle resizing while maintaining existing format processing for `webp` and `avif`.
2026-01-14 21:44:00 +01:00
Mathis HERRIOT
d7c2a965a0 feat(contents): enhance user-specific data handling and admin content management
Integrate user-specific fields (`isLiked`, `favoritesCount`) in content APIs and improve `ContentCard` through reactive updates. Add admin-only content deletion support. Refactor services and repository to enrich responses with additional data (author details, tags).
2026-01-14 21:43:44 +01:00
Mathis HERRIOT
fb7ddde42e feat(app): add dashboard pages for settings, admin, and public user profiles
Introduce new pages for profile settings, admin dashboard (users, contents, categories), and public user profiles. Enhance profile functionality with avatar uploads and bio updates. Include help and improved content trends/recent pages. Streamline content display using `HomeContent`.
2026-01-14 21:43:27 +01:00
Mathis HERRIOT
026aebaee3 feat(database): add migration snapshot 0006_snapshot.json for schema updates
Capture extensive database schema changes, including new tables and updated relationships for better data management and integrity.
2026-01-14 21:43:10 +01:00
Mathis HERRIOT
a30113e8e2 feat(users): add avatar and bio support, improve user profile handling
Introduce `avatarUrl` and `bio` fields in the user schema. Update repository, service, and controller to handle avatar uploads, processing, and bio updates. Add S3 integration for avatar storage and enhance user data handling for private and public profiles.
2026-01-14 21:42:46 +01:00
Mathis HERRIOT
975e29dea1 refactor: format imports, fix indentation, and improve readability across files
Some checks failed
Backend Tests / test (push) Has been cancelled
Lint / lint (push) Has been cancelled
Apply consistent import ordering and indentation in frontend and backend files. Ensure better maintainability and adherence to code style standards.
2026-01-14 21:06:38 +01:00
Mathis HERRIOT
a4ce48a91c feat(database): update passwordHash length and add migration snapshot
Some checks failed
Lint / lint (push) Has been cancelled
Backend Tests / test (push) Has been cancelled
Increase `passwordHash` field length to 100 in the `users` schema to accommodate larger hashes. Add migration snapshot `0005_snapshot.json` to capture database state changes.
2026-01-14 20:51:24 +01:00
Mathis HERRIOT
ff6fc1c6b3 feat(ui): enhance mobile user experience and authentication handling
Add `UserNavMobile` component for improved mobile navigation. Update dashboard and profile pages to include authentication checks with loading states and login prompts. Introduce category-specific content tabs on the profile page. Apply sidebar enhancements, including new sections for user favorites and memes.
2026-01-14 20:50:38 +01:00
Mathis HERRIOT
5671ba60a6 feat(dto): enforce field length constraints across DTOs
Add `@MaxLength` validations to limit string field lengths in multiple DTOs, ensuring consistent data validation and integrity. Integrate `CreateApiKeyDto` in the API keys controller for improved type safety.
2026-01-14 20:41:45 +01:00
Mathis HERRIOT
5f2672021e feat(middleware): add crawler detection middleware for suspicious requests
Introduce `CrawlerDetectionMiddleware` to identify and log potential crawlers or bots accessing suspicious paths or using bot-like user agents. Middleware applied globally to all routes in `AppModule`.
2026-01-14 20:41:25 +01:00
5665fcd98f Exclude .migrations from file includes in biome.json configuration
All checks were successful
Backend Tests / test (push) Successful in 9m40s
Lint / lint (push) Successful in 9m42s
2026-01-14 20:20:14 +01:00
48ebc7dc36 Remove pull_request.path filters from CI workflows 2026-01-14 20:14:06 +01:00
dbfd14b57a Update user schema: modify password_hash to varchar(95)
Some checks failed
Backend Tests / test (push) Has been cancelled
Lint / lint (push) Has been cancelled
2026-01-14 20:12:32 +01:00
7c3f4050c5 Update Dockerfile for documentation to simplify base image and streamline dependency handling
Some checks failed
Lint / lint (push) Has been cancelled
Lint / lint (pull_request) Has been cancelled
2026-01-14 19:17:37 +01:00
6d2e1ead05 Update Dockerfile for documentation to simplify base image and streamline dependency handling
Some checks failed
Lint / lint (push) Has been cancelled
Lint / lint (pull_request) Has been cancelled
2026-01-14 19:05:35 +01:00
6aaf53c90b Remove redundant empty entry in docker-compose.prod.yml 2026-01-14 18:58:24 +01:00
ccec39bfa0 Add documentation service in docker-compose.prod.yml for hosting project docs 2026-01-14 18:57:52 +01:00
a06fdbf21e Set NEXT_PUBLIC_API_URL environment variable for backend build in deploy workflow 2026-01-14 18:53:21 +01:00
Mathis HERRIOT
0cb361afb8 fix(docker): update API URL for production environment
Change default `NEXT_PUBLIC_API_URL` in `docker-compose.prod.yml` to the production API URL `https://api.memegoat.fr` for proper environment configuration.
2026-01-14 18:31:12 +01:00
Mathis HERRIOT
24eb99093c feat(docs): reorganize imports and improve formatting for readability
Some checks failed
Lint / lint (pull_request) Has been cancelled
Lint / lint (push) Successful in 9m36s
Streamline import orders in MDX components and layout files. Adjust text formatting in the homepage and configuration files for consistent structure and enhanced clarity. Add new accessibility-focused linting rules in `biome.json`.
2026-01-14 18:04:31 +01:00
Mathis HERRIOT
75ac95cadb feat(ci): enhance deploy workflow with separate lint and build steps
Split linting and building into distinct steps for backend, frontend, and documentation in `deploy.yml`.
2026-01-14 18:02:45 +01:00
Mathis HERRIOT
35abd0496e refactor: apply consistent formatting to improve code quality
Some checks failed
Deploy to Production / deploy (push) Failing after 2m20s
Lint / lint (push) Successful in 9m37s
Ensure uniform code formatting across components by aligning with the established code style. Adjust imports, indentation, and spacing to enhance readability and maintainability.
2026-01-14 17:26:58 +01:00
Mathis HERRIOT
03e5915fcc feat(deps): update and expand development dependencies
Some checks failed
Backend Tests / test (push) Successful in 9m42s
Lint / lint (push) Failing after 5m2s
Update various `@types` packages, NestJS, TypeScript, and Jest dependencies. Add new packages such as AWS SDK clients and utility libraries to enhance testing, type definitions, and AWS integrations.
2026-01-14 16:54:17 +01:00
Mathis HERRIOT
77ac960411 feat(ci): add GitHub Actions workflow for production deployment
Some checks failed
Backend Tests / test (push) Failing after 4m47s
Lint / lint (push) Failing after 4m48s
Introduce `deploy.yml` to automate deployment to production on `prod` branch push. Includes setup for Node.js, pnpm caching, linting, building, and Docker Compose deployment. Update `docker-compose.prod.yml` to use environment variables for enhanced configurability.
2026-01-14 16:44:03 +01:00
Mathis HERRIOT
8425ffe4fc refactor!: remove pnpm-lock.yaml file from the repository to eliminate redundant dependency tracking and streamline package management. 2026-01-14 16:38:26 +01:00
Mathis HERRIOT
b81835661c feat(docker): add production-ready docker-compose configuration with health checks
Introduce a new `docker-compose.prod.yml` file tailored for production setups. Add health checks for PostgreSQL, Redis, and ClamAV services. Update existing `docker-compose.yml` with health checks, environment refinements, service dependencies, and production-specific optimizations.
2026-01-14 16:38:07 +01:00
Mathis HERRIOT
fbc231dc9a refactor!: remove unused resizable components and enhance efficiency in critical areas
Remove outdated `ResizablePanelGroup`, `ResizablePanel`, and `ResizableHandle` components from the codebase. Optimize API error handling with anti-spam protection for repetitive errors. Update Dockerfile for streamlined builds, improve sitemap generation in `app`, and refactor lazy loading using `React.Suspense`. Refine services to support enhanced query parameters like `author`.
2026-01-14 16:37:55 +01:00
Mathis HERRIOT
37a23390d5 refactor: enhance module exports and imports across services
Refactor multiple modules to improve dependency management by adding missing imports (e.g., `AuthModule`, `CryptoModule`) and ensuring essential services and repositories are exported. Update Dockerfile for better build and runtime efficiency, improve CORS handling, and enhance validation with updates to DTOs. Include package.json refinements for dependency organization.
2026-01-14 16:36:59 +01:00
Mathis HERRIOT
bd9dd140ab **feat(docker): add docker-compose for multi-service setup**
Introduce `docker-compose.yml` to orchestrate services for local development. Include configurations for PostgreSQL, Redis, MinIO (S3), Mailpit, backend, and frontend. Simplify setup with predefined environment variables, volumes, and dependencies, ensuring streamlined service management and integration.
2026-01-14 13:53:02 +01:00
Mathis HERRIOT
5b6e0143b6 feat: add comprehensive database migration snapshot
Introduce a detailed database schema migration snapshot, including tables such as `users`, `categories`, `contents`, `tags`, `favorites`, `roles`, `permissions`, and more. Adds relationships, indexes, unique constraints, and primary keys to ensure optimal structure and query efficiency.
2026-01-14 13:52:53 +01:00
Mathis HERRIOT
214bf077e5 feat: add axios and related dependencies to pnpm lockfile
Includes `axios@1.13.2` and its dependencies (`follow-redirects` and `proxy-from-env`) for enhanced HTTP request handling.
2026-01-14 13:52:43 +01:00
Mathis HERRIOT
bb9ae058db refactor(docker): update Dockerfile for optimized multi-stage builds and dependency management
Switched to pnpm-based alpine image, added dependency and build stages, and improved caching. Streamlined Next.js production setup with reduced image size and improved runtime performance.
2026-01-14 13:52:20 +01:00
Mathis HERRIOT
0b07320974 feat: introduce new app routes with modular structure and enhanced features
Added modular app routes including `login`, `dashboard`, `categories`, `trends`, and `upload`. Introduced reusable components such as `ContentList`, `ContentSkeleton`, and `AppSidebar` for improved UI consistency. Enhanced authentication with `AuthProvider` and implemented lazy loading, dynamic layouts, and infinite scrolling for better performance.
2026-01-14 13:52:08 +01:00
Mathis HERRIOT
0c045e8d3c refactor: remove unused tests, mocks, and outdated e2e configurations
Deleted unused e2e tests, mocks (`cuid2`, `jose`, `ml-kem`, `sha3`), and their associated jest configurations. Simplified services by ensuring proper dependency imports, resolving circular references, and improving TypeScript type usage for enhanced maintainability and testability. Upgraded Dockerfile base image to match new development standards.
2026-01-14 13:51:32 +01:00
Mathis HERRIOT
8ffeaeba05 feat: update .env.example with refined defaults for services
Revise `.env.example` file to include updated configurations for database, Redis, S3 storage, and mail services. Add missing variables for enhanced security and better local environment setup.
2026-01-14 13:50:43 +01:00
Mathis HERRIOT
9e37272bff feat: add initial database schema with migrations
Introduce foundational database schema with tables for `users`, `categories`, `contents`, `tags`, and `favorites`. Add foreign key relationships, constraints, and indexes for efficient querying.
2026-01-14 13:04:27 +01:00