fix: ensure HttpCode annotations for specific endpoints in users and groups controllers
refactor: enhance person handling logic in groups service for better e2e test support
fix: improve CORS configuration for handling additional origins
feat: add @Public decorator to app controller's root endpoint
refactor: modify projects controller to return JSON responses for check-access endpoint
- Added `CORS_CONFIGURATION.md` to outline CORS setup for development and production environments.
- Removed completed CORS-related task from `PROJECT_STATUS.md`.
- Updated backend CORS setup to differentiate between development (open origins) and production (restricted origins).
- Implemented support for additional allowed origins via environment variables.
- Adjusted `WebSocketGateway` CORS settings to align with the new configuration.
- Updated `PROJECT_STATUS.md` to reflect progress on CORS-related security tasks.
- Updated GDPR compliance status: backend features implemented, frontend still pending.
- Revised e2e test development and API documentation tasks.
- Adjusted progress percentages for backend tests, frontend optimizations, and integrations.
- Added new task priorities focused on GDPR, security enhancements, and testing.
- Marked completion of real-time collaboration with Socket.IO and related WebSocket events.
- Updated statuses for unit tests, e2e tests, and priority tasks.
- Adjusted progress percentages and timeline estimates for backend and frontend modules.
- Emphasized upcoming tasks: API documentation, GDPR compliance, and e2e test implementation.
- Updated `setProject` function in `page.tsx` to include explicit `(prev: any)` and `(group: any)` type annotations for better readability.
- Added `"use client";` directive to `notifications.tsx` for React server-client compatibility.
- Improved structural consistency and clarity in group and person state updates.
- Added unit tests for WebSocket event emissions in `GroupsService` and `ProjectsService` (create, update, delete, and collaborator actions).
- Added new test files for `WebSocketsGateway` and `WebSocketsService` to ensure correct event handling and gateway connections.
- Improved test structure and coverage for real-time functionalities.
- Implemented `WebSocketsGateway` for handling Socket.IO connections, events, and rooms.
- Added `WebSocketsService` to act as a facade for emitting WebSocket events (projects, groups, notifications).
- Registered `WebSocketsModule` and integrated it into `AppModule`.
- Enabled real-time updates in `ProjectsService` and `GroupsService` with relevant WebSocket events (create, update, delete, collaborator/group actions).
- Introduced `SocketProvider` to manage WebSocket connection and context across the app.
- Added `NotificationsListener` component to handle real-time notifications and display feedback via `toast`.
- Enabled event subscriptions for projects, groups, collaborators, and user actions.
- Added `SocketProvider` for application-wide WebSocket connection management.
- Introduced real-time updates for projects and groups, including create, update, and delete events.
- Enhanced project and group pages with real-time collaboration, group actions, and data syncing.
- Refactored fetch methods to include loading and refreshing states.
- Integrated `toast` notifications for real-time event feedback.
- Updated `package.json` to include `socket.io-client@4.8.1`.
Reflected the completion of key modules (`auth`, `groups`, `tags`, `pages`). Adjusted progress percentages, revised timeline estimates, and emphasized next steps, including API integration finalization and real-time collaboration features.
- Added `lib/api.ts` to centralize API communication for authentication, projects, persons, tags, and groups.
- Introduced `middleware.ts` to handle route protection based on authentication and roles.
- Created `auth-context.tsx` to manage authentication state with `AuthProvider` and `useAuth` hook.
- Updated `package.json` to include `swr` for data fetching.
- Enhanced project documentation (`RESPONSIVE_DESIGN.md` and `README.md`) with responsive design and architecture details.
Implemented the following:
- `DashboardPage`: displays an overview of stats, recent projects, and tabs for future analytics/reports.
- `ProjectsPage` and `PersonsPage`: include searchable tables, actions, and mobile-friendly card views.
- Integrated reusable components like `AuthLoading`, `DropdownMenu`, `Table`, and `Card`.
Implemented reusable components:
- `TagSelector`: a customizable tag selection control with asynchronous mock data loading.
- `AuthLoading`: a loading state wrapper for authentication processes.
- `AdminLayout` and `DashboardLayout`: layouts with navigation and user management features.
- `ThemeProvider`: supports dynamic theme toggling.
Updated `PROJECT_STATUS.md` with completed modules (`auth`, `groups`, `tags`) and unit testing progress, including marked tests for controllers and services as done. Added logical and conceptual database models (`DATABASE_SCHEMA_PLAN.md`) and revised implementation statuses in `IMPLEMENTATION_GUIDE.md`.
Defined `projectCollaborators` relations in the database schema. Updated `usersRelations` and `projectsRelations` to include `projectCollaborations` and `collaborators` respectively. Added `projectCollaboratorsRelations` to establish relationships with `projects` and `users`.
Introduced `projectCollaborators` schema to define project-user relationships. Includes indices and a unique constraint for `projectId` and `userId`. Added corresponding type definitions for select and insert operations.
Added endpoints to manage collaborators in `ProjectsController`:
- Add collaborator
- Remove collaborator
- Get project collaborators
Updated `ProjectsService` with corresponding methods and enhanced `checkUserAccess` to validate user access as owner or collaborator. Included unit tests for new functionality in controllers and services.
Added comprehensive unit tests for `UsersController` and `UsersService`, covering CRUD operations, GDPR consent updates, data export, and exception handling. Mocked `JwtAuthGuard` and database operations for all tests.
Added comprehensive unit tests for `PersonsController`, `PersonsService`, `ProjectsController`, and `ProjectsService`. Covered CRUD operations, exception handling, group/project associations, and user access validation. Mocked `JwtAuthGuard` for all tests.
Updated `PROJECT_STATUS.md` to mark the `groups` and `tags` modules as completed, along with unit tests for services and controllers. Adjusted backend progress percentages and revised remaining priorities, focusing on module relations and real-time communication features.
Added comprehensive unit tests for `TagsService` and `TagsController`, covering CRUD operations, exception handling, and associations with projects and persons. Mocked `JwtAuthGuard` globally for testing purposes.
Added unit tests for `GroupsService`, `GroupsController`, `AuthService`, `AuthController`, and `JwtAuthGuard` to ensure functionality and coverage. Includes tests for entity operations, exception handling, and integration scenarios.
Added a new `README.md` under `.github` to document the project's CI/CD workflow and deployment setup. Includes GitHub Actions pipeline descriptions, Docker configuration details, environment variables, and production deployment considerations.
Introduced `JwtAuthGuard` as a global authentication mechanism using `APP_GUARD`. Added support for public routes via a `Public` decorator with metadata. Updated `AuthController`
Streamlined project structure documentation by detailing separate backend and frontend directories, updated setup commands, added Docker usage examples, and improved clarity on environment configuration.
Updated `PROJECT_STATUS.md` to mark the database migration system as completed with DrizzleORM. Adjusted progress percentages and next steps to prioritize authentication and core functionalities.
Introduced a new `db:update` script combining migration generation and execution. Updated `db:generate` and `db:push` commands for consistency with DrizzleKit updates.
Introduced a new `TagsModule` with support for creating, updating, and managing tags. Implemented DTOs (`CreateTagDto`, `UpdateTagDto`) for validation and structure. Added `TagsService` and `TagsController` with APIs for tags-to-project and tags-to-person associations.
Added `README.md` to document the database migration system, including generation and usage instructions. Updated `generate-migrations.ts` to fix directory structure and streamline commands. Included initial migration files for schema setup using DrizzleORM.
Deleted extensive implementation plan documents (`AUTH_IMPLEMENTATION_PLAN.md` and `BACKEND_IMPLEMENTATION_PLAN.md`) to streamline documentation efforts and prevent duplication with updated overall project guides.
Reorganized README sections, adding project overview and implementation guides for better navigation. Added `.gitignore` entry to exclude `node_modules`. Updated `pnpm-lock.yaml` with new dependencies for authentication, database, and real-time communication modules.
Implemented reusable UI components including AlertDialog, Accordion, Breadcrumb, Button, Card, and Calendar. Added essential assets and SVG icons for improved interface design. Integrated a base homepage layout with responsive grid structure.