Overview
The Project Management feature provides a complete solution for planning, tracking, and managing association projects from inception to completion. It handles project creation, budget management, activity association, document storage, and progress tracking with detailed project views. Projects serve as containers for organizing related activities, tracking financial resources, assigning responsibilities, and maintaining project documentation including PDF files.Key Functionality
Project Planning
Create projects with descriptions, timelines, budgets, and funding sources
Document Management
Upload and preview multiple PDF documents per project with integrated viewer
Activity Linking
Associate multiple activities with projects for comprehensive activity tracking
Status Tracking
Track project status (Activo, Pendiente, Finalizado) with automatic sorting
User Interface Workflow
The project management interface (Proyectos.vue) implements a dual-view system:List View
The main project list displays all projects with:- Search: Real-time search across project name, responsible person, and description
- Pagination: 10 projects per page with range indicator
-
Smart Sorting:
- Finalizado projects appear at the bottom
- Active projects sorted by end date (soonest first)
- Completed projects sorted by end date (newest first)
-
Project Cards: Each card shows:
- Project name and responsible person
- Status badge (Activo/Pendiente/Finalizado) with color coding
- Edit and delete action buttons
- Click card to view detailed project view
Detail View
Clicking any project opens a comprehensive detail page with:-
Header Section:
- Project name with folder icon
- Status badge
- Back button to return to list
- Edit and delete actions
-
Metrics Cards:
- Budget total (Presupuesto Total)
- Start date (Fecha de Inicio)
-
Information Sections:
- Responsable: Assigned project manager (nombre + apellidos)
- Financiación: Funding source (fuenteFinanciacion)
- Descripción: Full project description with line breaks
- Documentación: PDF document viewer and management
- Seguimiento y Notas: Project notes and tracking information
- Capacidad y Vínculos: Activity count and linked activities list
-
PDF Preview:
- Multiple PDF support with file selector dropdown
- Embedded PDF preview using PdfPreview component
- “Open in new tab” button for full document viewing
-
Linked Activities:
- List of all associated activities
- Clickable links to activity search (RouterLink to
/actividades?search={activityName}) - Activity count display
Data Model
Projects are stored in theProyecto entity:
Key Fields
- idProyecto: Primary key, auto-generated
- nombre: Project name (max 255 characters)
- descripcion: Detailed project description (text field)
- estado: Project status - “Activo”, “Pendiente”, or “Finalizado”
- responsable: ManyToOne relation to Usuarios (project manager)
- presupuesto: Decimal field for budget amount
- fuenteFinanciacion: Source of funding (max 150 characters)
- startDate/endDate: Project timeline (date fields)
- notas: Additional tracking notes (text field)
- subproyectos: Array of subproject identifiers (simple-array)
- actividades: Array of activity IDs (simple-array)
- actividadesList: OneToMany relation to Activity entities
- pdfPath: Array of PDF file paths (simple-array, up to 10 files)
The
simple-array column type stores arrays as comma-separated strings in the database, automatically serialized/deserialized by TypeORM.API Endpoints
All endpoints require JWT authentication withmonitor or admin roles.
GET /projects
Retrieve all projects with populated relations.POST /projects
Create a new project with optional PDF uploads.nombre: string (required)descripcion: string (optional)estado: string (required)responsableId: number (required)presupuesto: number (required)fuenteFinanciacion: string (optional)startDate: date string (required)endDate: date string (optional)notas: string (optional)subproyectos: string[] (optional)activityIds: number[] (optional)pdf: File[] (optional, max 10 files)
- Max files: 10
- Allowed format: PDF only
- Max file size: 10MB per file
- Storage:
/uploads/projects/directory - Filename format:
pdf-{timestamp}-{random}.pdf
PUT /projects/:id
Update existing project with optional new PDF uploads.id: Project ID (number)
DELETE /projects/:id
Delete a project.id: Project ID (number)
GET /projects/activities
Retrieve available activities for project association.Frontend Implementation
Form Data Handling
The frontend builds FormData for file uploads:Search and Sorting
PDF Preview
Multiple PDF support with selector:Use Cases
Creating a New Project
- Click “Agregar Proyecto” button
- Fill in project details:
- Name and description
- Select responsible member from Usuarios
- Set budget and funding source
- Define start and end dates
- Select activities to associate
- Upload project documentation (PDFs)
- Submit form
- System creates project and stores PDF files
- Project appears in list with “Activo” or “Pendiente” status
Project Progress Tracking
- Search for project by name
- Click to open detail view
- Review current status and timeline
- Check linked activities progress
- Add notes in “Seguimiento y Notas” section
- Update status to “Finalizado” when complete
- System automatically moves to bottom of list
Document Management
- Edit existing project
- Upload additional PDF documents (max 10 total)
- In detail view, use dropdown to select document
- Preview PDF in embedded viewer
- Click “Abrir en pestaña nueva” for full view
- Documents stored at
/uploads/projects/
Activity Association
- Create or edit project
- Select activities from activityIds dropdown
- Save project
- View linked activities in detail view
- Click activity name to search activities page
- System maintains bidirectional relationship
Status Badge Colors
Integration with Other Features
- Activities: Projects can link multiple activities via
activityIdsfield - Member Management: Project responsable selected from Usuarios table
- Configuration: Project data contributes to association reporting and statistics
Responsive Design
The detail view is fully responsive with mobile optimizations:Related Documentation
- Activities - Learn how to create activities and link them to projects
- Member Management - Understand responsable assignment
