Documentación de Portafy
Toda la información clave sobre el proyecto.
1. Visión General del Proyecto
Portafy es una plataforma web desarrollada para ayudar a programadores, diseñadores y otros trabajadores visuales a crear y gestionar sus portafolios en línea de manera sencilla y eficiente. El principal objetivo es proveer una solución gratuita y accesible para aquellos que necesitan una presencia profesional en línea para mostrar sus proyectos y trabajos a potenciales empleadores o a la comunidad.
El sistema permite a los usuarios cargar sus proyectos, utilizar plantillas de CV personalizables y compartir su perfil de forma organizada. Esto facilita que el trabajo de los usuarios sea evaluado por terceros, como profesores o reclutadores, de una forma visualmente atractiva y profesional.
2. Requerimientos del Sistema
2.1. Requerimientos Funcionales
Estos requisitos definen lo que el sistema debe hacer para cumplir con las necesidades del usuario:
- Registro e Inicio de Sesión: El sistema debe permitir a nuevos usuarios registrarse con una cuenta de correo electrónico, nombre y contraseña, así como iniciar sesión de forma segura usando JWT (JSON Web Token).
- Gestión de Proyectos: El sistema debe permitir a los usuarios subir, editar y eliminar sus proyectos, incluyendo contenido multimedia como imágenes y videos.
- Gestión de Perfil: El usuario debe poder visualizar y editar su perfil, así como compartir su cuenta a través de un enlace público.
- Importar/Exportar CV: Debe existir la funcionalidad para importar y exportar CVs en formato PDF, utilizando plantillas predefinidas.
- Opciones de Privacidad: El sistema debe ofrecer la posibilidad de establecer la privacidad de los proyectos, haciéndolos públicos o privados.
2.2. Requerimientos No Funcionales
Estos requisitos describen cómo el sistema debe funcionar, enfocándose en la experiencia del usuario y las limitaciones del sistema:
- Usabilidad: El sistema debe ser fácil de usar y la interfaz de usuario debe ser intuitiva y clara.
- Rendimiento: La plataforma debe tener un tiempo de respuesta rápido y ser capaz de manejar un número creciente de usuarios y proyectos sin degradación significativa del rendimiento.
- Disponibilidad: El sistema debe estar disponible la mayor parte del tiempo, excepto durante mantenimientos programados.
- Seguridad: El sistema debe cumplir con los estándares de seguridad mínimos definidos por OWASP para proteger la información del usuario de vulnerabilidades comunes.
- Responsividad: La interfaz de usuario debe ser totalmente responsiva y funcionar correctamente en una variedad de dispositivos (ordenadores de escritorio, tablets y móviles).
- Compatibilidad: El sitio debe ser compatible con los navegadores web más comunes (Chrome, Firefox, Safari, Edge).
3. Flujo de Usuario Básico
El flujo del usuario se centra en la creación y visualización de portafolios. Los pasos principales son:
- Registro o Inicio de Sesión: El usuario accede a la plataforma y crea una cuenta o inicia sesión. La autenticación se realiza de forma segura a través de JWT.
- Creación del Perfil: Una vez autenticado, el usuario puede configurar su perfil, añadiendo información personal y profesional que se mostrará en su portafolio.
- Subida de Proyectos: El usuario sube sus proyectos, proporcionando un título, una descripción y los archivos multimedia asociados (imágenes, videos, etc.).
- Visualización y Compartir: El portafolio del usuario se genera automáticamente. El usuario puede ver su perfil, editar sus proyectos o compartir el enlace con otros a través de redes sociales.
- Interacción con otros portafolios: El usuario puede navegar y descubrir los proyectos de otros usuarios, fomentando una comunidad y la exposición de sus trabajos.
4. Arquitectura del Sistema y Tecnologías
4.1. Arquitectura de Software
El sistema sigue una arquitectura de cliente-servidor. El frontend (lo que el usuario ve y con lo que interactúa) y el backend (la lógica del servidor, la base de datos y la API) están separados. La comunicación entre ambos se realiza mediante una API RESTful, utilizando el formato de intercambio de datos JSON.
Esto permite que el sistema sea más escalable y modular, ya que cada componente puede ser desarrollado y actualizado de forma independiente, facilitando la colaboración y el mantenimiento.
4.2. Tecnologías Clave
Las tecnologías utilizadas en este proyecto son estándares de la industria para el desarrollo web moderno, garantizando compatibilidad y un buen rendimiento.
4.3. Tecnologías del Frontend
- HTML5: Utilizado para estructurar el contenido de las páginas web.
- CSS3: Encargado del diseño, estilo y responsividad. Se implementa con un enfoque de responsividad suave y progresiva y se utilizan variables CSS para una fácil gestión del tema (modo claro/oscuro).
- JavaScript: Añade interactividad al lado del cliente, gestiona la comunicación con el servidor a través de la API y controla los elementos dinámicos de la interfaz.
4.4. Tecnologías del Backend y Base de Datos
- API RESTful: Es el puente entre el frontend y el backend, gestionando las peticiones y respuestas para todas las operaciones.
- Base de Datos: Se utiliza un sistema de gestión de bases de datos relacionales, MySQL Workbench, para almacenar y gestionar los datos de los usuarios, proyectos y perfiles.
5. Glosario de Términos
- API
- Application Programming Interface. Un conjunto de reglas y protocolos que permiten que dos aplicaciones se comuniquen entre sí.
- Backend
- La "parte trasera" de una aplicación. Incluye la lógica del servidor, la base de datos y la gestión de la API, que procesa los datos y se comunica con el frontend.
- Frontend
- La "parte delantera" de una aplicación. Es la interfaz de usuario con la que el usuario interactúa directamente, construida con HTML, CSS y JavaScript.
- JSON
- JavaScript Object Notation. Un formato de texto ligero y legible por humanos, utilizado para el intercambio de datos entre el servidor y el cliente.
- JWT
- JSON Web Token. Un método seguro para transmitir información entre dos partes como un objeto JSON, utilizado principalmente para la autenticación de usuarios.
- OWASP
- Open Web Application Security Project. Una fundación sin fines de lucro que trabaja para mejorar la seguridad del software a través de proyectos, herramientas y guías.
- RESTful
- Un estilo de arquitectura de software para sistemas hipermedia distribuidos, basado en los principios de la arquitectura REST (Representational State Transfer), a menudo utilizado para APIs web.
- SRS
- Software Requirements Specification. Un documento que describe de manera completa y detallada los requisitos de un sistema de software.
6. Equipo del Proyecto y Contacto
Este proyecto fue desarrollado por un equipo de estudiantes, con el apoyo de varios profesores de la EEST N°4 de Berazategui.
- Autores: Elias Franco, Valentin Ferreyra, Rodrigo Arguello
- Profesores: Diego Pezet, Victoria Moscardini, Mauro Russomando, Gustavo Maugeri, Nicolás Calderón, José Yedro
- Curso: 7º 4ª
- Fecha de Versión 1.0: 24 de junio de 2025