Commit Graph

107 Commits

Author SHA1 Message Date
Mathis HERRIOT
3828f170e2 feat: add Dockerfile for frontend service
Introduce a multi-stage Dockerfile for the frontend service to enable efficient builds and an optimized runtime using Node.js 22.
2026-01-08 15:32:46 +01:00
Mathis HERRIOT
ec771eb074 feat: revamp documentation pages with new components, layout, and visuals
Introduced enhanced MDX components (cards, callouts, tabs, accordions, steps) for better content presentation. Redesigned the homepage with new sections highlighting features, tech stack, and quick access links. Updated the global CSS to use Catppuccin theme. Added branded visuals like the Memegoat logo and SVG. Improved metadata, localization (French), and search functionality.
2026-01-08 15:32:13 +01:00
Mathis HERRIOT
77263aead9 chore: update .env.example with media size limits configuration 2026-01-08 15:31:54 +01:00
Mathis HERRIOT
ab74dc3b30 chore: update pnpm-lock.yaml with new dependency resolutions
Added new dependencies for validation, caching, security, and media processing. Updated existing resolutions to synchronize with the package changes and introduced support for new modules like @nestjs/cache-manager and @nestjs/throttler.
2026-01-08 15:31:45 +01:00
Mathis HERRIOT
acd53eff6a docs: add secure media processing details to README
Include information about antivirus scanning (ClamAV) and high-performance transcoding (WebP, WebM, AVIF, AV1) under the media processing section.
2026-01-08 15:31:29 +01:00
Mathis HERRIOT
91e23c2c02 chore: add .dockerignore to exclude unnecessary files from Docker context 2026-01-08 15:30:56 +01:00
Mathis HERRIOT
f508e8ee6d refactor: rename package scope to @memegoat in documentation/package.json 2026-01-08 15:30:39 +01:00
Mathis HERRIOT
3c02bd6023 feat: configure standalone output mode in next.js 2026-01-08 15:30:29 +01:00
Mathis HERRIOT
6e823743fc feat: add Dockerfile for documentation service
Introduce a multi-stage Dockerfile for the documentation service to enable efficient builds and optimized runtime with Node.js 22.
2026-01-08 15:30:20 +01:00
Mathis HERRIOT
99a350aa05 docs: overhaul and expand technical documentation
Revamped the documentation structure and content to enhance usability and organization. Added detailed sections on architecture, pipeline, security, API reference, deployment steps, compliance, and supported modules. Introduced new visuals like cards, accordions, and callouts for improved readability and navigation.
2026-01-08 15:29:56 +01:00
Mathis HERRIOT
8b51b84d44 feat: add Dockerfile for backend service
Introduced a multi-stage Dockerfile for the backend, enabling streamlined builds and optimized runtime image with Node.js 22.
2026-01-08 15:29:37 +01:00
Mathis HERRIOT
0af6f6b52a feat: update dependencies and scripts in package.json
Added new dependencies for caching, security, media processing, and validation. Updated scripts and included the `dist` folder for build output. Refined devDependencies to support new features and typings.
2026-01-08 15:28:38 +01:00
Mathis HERRIOT
382e39ebd0 feat: update biome.json with JavaScript parser configuration and linter rule adjustments
Added support for `unsafeParameterDecoratorsEnabled` in JavaScript parser configuration. Modified linter rules to include a `correctness` section disabling `useHookAtTopLevel`. Simplified domain-specific linter configurations.
2026-01-08 15:28:28 +01:00
Mathis HERRIOT
65b7cba6b1 feat: enhance bootstrap with Sentry, security middleware, and global configurations
Integrated Sentry for error monitoring and profiling. Added security improvements using Helmet and CORS. Implemented global validation pipes and exception filters for consistent request handling. Dynamically configured app PORT and logging for startup information.
2026-01-08 15:28:16 +01:00
Mathis HERRIOT
f7d85108e1 feat: add HealthController with database connection check
Introduced a HealthController to verify application status. Includes an endpoint to check database connectivity and returns health status with a timestamp.
2026-01-08 15:27:48 +01:00
Mathis HERRIOT
d5775a821e feat: integrate multiple modules, caching, throttling, and scheduling into AppModule
Enhanced AppModule by adding support for caching (Redis), scheduling, throttling, and multiple feature modules including AuthModule, CategoriesModule, ContentsModule, FavoritesModule, ReportsModule, TagsModule, and more. Improved environment validation and health check controller setup.
2026-01-08 15:27:36 +01:00
Mathis HERRIOT
add7cab7df feat: implement UsersModule with service, controller, and DTOs
Added UsersModule to manage user-related operations. Includes UsersService for CRUD operations, consent updates, and 2FA handling. Implemented UsersController with endpoints for public profiles, account management, and admin user listing. Integrated with CryptoService and database schemas.
2026-01-08 15:27:20 +01:00
Mathis HERRIOT
da5f18bf92 feat: implement TagsModule with service, controller, and endpoints
Added TagsModule to manage tags, including a TagsService for querying and sorting by popularity or recency. Created TagsController with endpoint to retrieve paginated and searchable tag data. Integrated with database and relevant schemas.
2026-01-08 15:27:11 +01:00
Mathis HERRIOT
a0836c8392 feat: add SessionsModule with service for session management
Implemented SessionsModule and SessionsService to manage user sessions. Includes methods for session creation, refresh token rotation, and session revocation. Integrated with database and CryptoService for secure token handling.
2026-01-08 15:27:02 +01:00
Mathis HERRIOT
9963046e41 feat: add method to generate presigned S3 upload URLs
Implemented a `getUploadUrl` method in S3 service to generate presigned URLs for uploading files. Includes support for custom bucket names and expiry times, with error handling and logging.
2026-01-08 15:26:50 +01:00
Mathis HERRIOT
dde1bf522f feat: implement ReportsModule with service, controller, and endpoints
Added ReportsModule to manage user reports. Includes service methods for creating, retrieving, and updating report statuses, as well as controller endpoints for handling these operations. Integrated with authentication, role-based access control, and database logic.
2026-01-08 15:26:39 +01:00
Mathis HERRIOT
dd875fe1ea feat: add MediaModule with service for virus scanning and media processing
Introduced MediaModule with MediaService to handle antivirus scanning using ClamAV and media file processing for images (webp/avif) and videos (webm/av1). Includes media-related interfaces and module exports for broader application integration.
2026-01-08 15:26:25 +01:00
Mathis HERRIOT
92ea36545a feat: add FavoritesModule with service, controller, and CRUD endpoints
Implemented FavoritesModule to manage user favorites. Includes service methods for adding, removing, and listing favorites, along with appropriate database integrations and API endpoints.
2026-01-08 15:26:05 +01:00
Mathis HERRIOT
912394477b feat: add categories and favorites schemas with integrations
Added `categories` and `favorites` database schemas with full type inference support. Integrated categories into `content` schema with new properties (`categoryId`, `slug`, `views`, and `usageCount`). Updated `tags` schema to include `userId` with reference to `users`. Exported new schemas in index for broader usage.
2026-01-08 15:25:51 +01:00
Mathis HERRIOT
fe309bc1e3 feat: add hashing methods for email and IP in CryptoService for blind indexing
Introduced `hashEmail` and `hashIp` methods to enable searching on encrypted data. Added support to retrieve PGP encryption key from configuration.
2026-01-08 15:25:40 +01:00
Mathis HERRIOT
342e9b99da feat: implement ContentsModule with controllers, services, and DTOs
Added a new ContentsModule to handle content creation, upload, and management. Includes controller endpoints for CRUD operations, content exploration, and tagging. Integrated caching, file processing, S3 storage, and database logic.
2026-01-08 15:25:28 +01:00
Mathis HERRIOT
e210f1f95f feat: add env schema for environment variable validation
Introduced `env.schema.ts` for structured validation of environment variables using Zod. Includes defaults and validations for database, S3, security, mail, Redis, and session configurations.
2026-01-08 15:25:16 +01:00
Mathis HERRIOT
2218768adb feat: add CommonModule with PurgeService and global exception filter
Introduced CommonModule to centralize shared functionality. Added PurgeService for automated database cleanup and a global exception filter for unified error handling.
2026-01-08 15:25:04 +01:00
Mathis HERRIOT
705f1ad6e0 feat: add CategoriesModule with CRUD operations
Implemented CategoriesModule with controller, service, and DTOs for managing categories. Includes endpoints for creation, retrieval, updating, and deletion, integrated with database logic.
2026-01-08 15:24:48 +01:00
Mathis HERRIOT
42805e371e feat: implement AuthModule with authentication and RBAC features
Added AuthModule with services, controllers, and guards for authentication. Implements session management, role-based access control, 2FA, and DTOs for user login, registration, and token refresh.
2026-01-08 15:24:40 +01:00
Mathis HERRIOT
9406ed9350 feat: implement ApiKeysModule with services, controller, and CRUD operations
Added a dedicated ApiKeysModule to manage API keys. Includes functionality to create, list, revoke, and validate keys, leveraging cryptographic hashing and database support. Integrated with authentication guards for security.
2026-01-08 15:24:23 +01:00
Mathis HERRIOT
9ab737b8c7 chore: add .env.example file with environment variable templates
All checks were successful
Backend Tests / test (push) Successful in 9m37s
Lint / lint (push) Successful in 9m37s
2026-01-08 12:41:52 +01:00
Mathis HERRIOT
b3035eb2ab feat: add MailModule to app imports 2026-01-08 12:41:42 +01:00
Mathis HERRIOT
a6fdbdb06d chore: refactor crypto service tests for readability and lint compliance 2026-01-08 12:41:35 +01:00
Mathis HERRIOT
48b233eae4 chore: add comment to ignore lint rule in S3 service test 2026-01-08 12:41:31 +01:00
Mathis HERRIOT
89bd9d65e7 feat: implement MailModule with email services and tests
Added MailModule with services for email validation and password reset functionalities. Includes configuration via `@nestjs-modules/mailer` and comprehensive unit tests.
2026-01-08 12:41:27 +01:00
Mathis HERRIOT
8cf1699717 feat: add mailing dependencies to support email functionality
Added `@nestjs-modules/mailer`, `nodemailer`, and their respective types to backend dependencies for implementing email services. Updated `pnpm-lock.yaml` to reflect these changes.
2026-01-08 12:41:06 +01:00
93b86a6b7a Mock @noble/post-quantum and jose dependencies, update Jest configurations in package.json for compatibility
Some checks failed
Backend Tests / test (push) Successful in 9m35s
Lint / lint (push) Failing after 4m58s
2026-01-07 21:25:46 +01:00
3363ef52ef Add CI workflow for backend tests using GitHub Actions
Some checks failed
Backend Tests / test (push) Failing after 4m56s
Lint / lint (push) Has been cancelled
2026-01-07 21:09:49 +01:00
06d2a65567 Add S3Service with tests and module setup for MinIO integration 2026-01-07 21:09:33 +01:00
fd32a14221 Add S3Module to app.module.ts for S3 integration 2026-01-07 21:09:17 +01:00
e3f9197abb Update pnpm-lock.yaml to reflect dependency minimization and version adjustments 2026-01-07 21:09:06 +01:00
cee4d41ef0 Add minio dependency to package.json 2026-01-07 21:08:49 +01:00
Mathis HERRIOT
187c51f932 chore: reorder and format imports for consistency across modules
All checks were successful
Lint / lint (push) Successful in 9m37s
2026-01-06 12:30:55 +01:00
Mathis HERRIOT
c1bc68e3e3 feat: add dependencies for cryptographic utilities
Some checks failed
Lint / lint (push) Failing after 4m59s
Added `@noble/post-quantum`, `@node-rs/argon2`, and `jose` to backend dependencies to support advanced cryptographic operations, including post-quantum algorithms, Argon2 hashing, and JWT/JWE handling.
2026-01-06 12:09:57 +01:00
Mathis HERRIOT
810acd8ed4 feat: implement CryptoModule with comprehensive cryptographic utilities and testing
Added CryptoModule providing services for Argon2 hashing, JWT handling, JWE encryption/decryption, JWS signing/verification, and post-quantum cryptography (ML-KEM). Includes extensive unit tests for all features.
2026-01-06 12:09:44 +01:00
Mathis HERRIOT
adceada1b6 feat: add CryptoModule to app imports 2026-01-06 12:09:28 +01:00
Mathis HERRIOT
dfba0c0adb feat: integrate ConfigModule and DatabaseModule into app initialization 2026-01-06 11:42:44 +01:00
Mathis HERRIOT
6074917bfb chore(docs): reorder imports across documentation files for consistency
All checks were successful
Lint / lint (push) Successful in 9m37s
2026-01-05 16:30:02 +01:00
Mathis HERRIOT
86543eeb4f feat(docs): add technical features documentation and apply consistent formatting
Added a detailed technical features section to the documentation, covering key functionalities of Memegoat. Improved consistency in formatting across documentation and source files.
2026-01-05 16:29:31 +01:00