Proyecto Final ‐ Práctica Profesionalizante ISPC 2024 - Capacit-ISPC/Project_CapacIT-App GitHub Wiki
#Proyecto Final Practica Profesionalizante - ISPC 2024 - Cohorte 2022
Requerimientos
El objetivo de este proyecto es potenciar el desarrollo de la aplicación web y la aplicación móvil mediante el marco de trabajo Scrum. La tienda deberá poder mostrar las siguientes páginas web como mínimo:
APLICACIÓN WEB
- Tienda e-commerce con productos y/o servicios (mínimo 5, fotos, descripción, botón de compra.)
- Registro, login y CRUD funcional de usuario y productos y/o servicios.
- Revisar enunciado del Módulo programador Web
- Agregar un componente para direccionar a la APP o en su defecto, informativo de las prestaciones de la misma en un potencial que estuviese en Play Store/Apple Store
APLICACIÓN MÓVIL
- Pantalla de Activity inicial: presentación con login, y navegabilidad entre todas las activitys.
- CRUD funcional con persistencia de datos
- Revisar enunciado del Módulo de Programador de Aplicaciones Móviles
- Agregar un botón para que lo redireccione a la aplicación web/Web institucional.
Hacer hincapié en la documentación y registro correcto en GitHub de US, Sprint y Wiki
Tienen que tomar la aplicación web y la aplicación móvil, verificar que tengan vinculación entre ellas, se tienen que complementar ambas
Si las dos aplicaciones no tienen relación entre sí, decidir en el equipo por cual de las dos se definen, y desarrollar la otra, por ejemplo, si se quedan con la App móvil, en ese caso pueden hacer una aplicación web ecommerce con la tecnología que se sientan más a gusto (tienen que hacer un desarrollo de lo que se pidió en su momento en el módulo Programador Web. Si van a desarrollar una nueva App móvil, la tecnología queda a su elección pero con las premisas del módulo Programador de Aplicaciones Móviles.
Todo deberá estar listo para mediados de Junio/2024.
Preguntas iniciales
- ¿Sigue funcional?
- ¿Se carga en el servidor?
- ¿Tiene vinculación con la app móvil de alguna manera? o desde la móvil alguna pantalla para que pueda visitar la web?
- ¿Qué funcionalidad como mejora superadora podrían agregar en ambas aplicaciones?
- Revisar accesibilidad
- Realizar pruebas de funcionamiento (testing) sobre todo en web que no se aplicaron
Con estas preguntas pueden iniciar el relevamiento de lo que tienen desarrollado y crear las Issues para esta etapa del proyecto integral
Puesta en Marcha
Esta actividad formativa, de complejidad gradual y creciente, deberá llevarse a cabo por todos los estudiantes, mediante la supervisión de los docentes quienes orientarán la propuesta de acuerdo a las ideas innovadoras y/o de necesidades potenciales en el mundo actual.
Sprint 0
Fecha de cierre: 26/04/2024
Una vez conformados los grupos y definido la organización y repositorio en github, deberán:
1- Definir los roles de los miembros del equipo Scrum (Scrum master y Developer team). Documentar en la Wiki del Proyecto.
2- Evaluar el contenido y distribución previa de la tienda para que se adecue al nuevo desarrollo de e-commerce / carrito de compras, analizando los requerimientos necesarios. Lo mismo ocurrirá con la App.
3- Plantear Historias de Usuarios en base a los requerimientos del proyecto teniendo en cuenta una redacción y nomenclatura adecuada, ej “#US01 Como usuario quiero registrarme en el sitio web para comprar uno o varios productos” y su respectivos criterios de aceptación.
4- Definir la documentación del proyecto mediante el documento IEEE830.
5- Crear un proyecto estilo kanban en Github.
6- Definir la estructura de páginas en la Wiki del repositorio en github a fin de poder documentar: Nombre y apellido de los integrantes del equipo como así también los roles de cada quién, registro de ceremonias de scrum: planning, review y retrospective (para esta última es importante publicar además el plan de mejora a ejecutar en la siguiente iteración), documento IEEE830 del proyecto.
Rúbricas de valoración Sprint 0:
- Logra conectarse a la Organización/ repositorio GitHub.
- Logra agregar Issues como Historia de Usuarios.
- Logra agregar Milestone por Sprints: Se debe agregar un hito o milestone, que engloba al sprint con fechas de inicio y final.
- Logra realizar Commit/historial Wiki/carga de issues: queda registro de participación de todos los miembros del grupo
- Logra crear Wiki con registro de ceremonias por SPRINT (daily, review, retrospective) y novedades del equipo
- Respeta Nomenclatura de las issues sugeridas
- Asigna y distribuye issues a cada miembro del equipo:
- Logra documentar el proyecto mediante en IEEE 830 para el cliente: más requerimientos.
- Utiliza kanban (Product Backlog, ToDo, In process, Finished).
- Logra Esquematizar el proyecto web (Mapa de sitio)
Aquellas puntos que se encuentren EN PROCESO, NO LOGRADO y NO EVIDENCIA , se suman a la entrega para el Sprint siguiente.
Sprint 1
Fecha de cierre 15/05/24
Deben referirse a lo realizado en el Módulo Programador Web mencionado mas arriba, y enfatizar en mejoras de desarrollo del mismo, como por ejemplo revisar que tenga la aplicación Web lo siguiente:
FrontEnd
- Producción de una aplicación web SPA a partir de la maqueta definida en el Módulo FullStack. Debe incluir como mínimo los componentes de: landing page, dashboard, galería de productos con posibilidad de acceder a la descripción de los productos y su correspondiente compra, quienes somos y contacto.
- Sistema de rutas para permitir la navegación (no incluye rutas protegidas por el momento)
- Formularios login y registro con sus respectivas validaciones y mensajes personalizados al usuario. Ej. validar por tipos de inputs (text, number, email, date, select, según lo que se requiera), agregar maxlenght y minlenght en los campos nombres, apellido, si solicitan DNI, usar MIN=1000000 MAX=99999999, por ejemplo.
- Implementación del enlace de datos (data binding) entre los componentes (.component.ts) y los templates (.component.html).
- Implementación de servicios que provean de datos a los respectivos componentes.
- Formularios reactivos. Tablero de control (Gestión) o Dashboard con la implementación del carrito. Conexión con backend para recuperar los datos de los productos/servicios y detalles de producto/servicios. Conexión con el backend para el registro e inicio de sesión. Agregar rutas protegidas a la navegación en base al usuario autenticado/autorizado.
- Definición de la Api Rest y los endpoints necesarios para las funcionalidades.
Backend
- DER, Modelo Relacional, Script de la base de datos todo actualizado,
- Modelo de Caso de Uso y Diagrama de Clases .(1 mínimo. Ej. CRUD de Producto o Servicio).
- Creación de Apis Rest para: manipular los productos (alta, baja, modificación, lectura, listar), para el carrito de compras y finalmente para lograr la autenticación (login y registro de usuario).
Rúbricas de valoración Sprint 1:
- Logra realizar confirmaciones en GitHub (commits)
- Logra llevar actualizado el kanban del proyecto.
- Logra documentar las ceremonias de planning, review y retrospective.
- Logra mantener actualizado el documento de proyecto IEEE830.
- Logra crear una App SPA
- Logra crear componentes desde el frontend para las distintas vistas del usuario
- Logra realizar un sistema de ruteo en Angular
- Logra realizar formularios reactivos para registro, login y carga de productos y servicios según especificación para el frontend en el apartado anterior.
- Logra actualizar los diagramas solicitados
- Logra crear un registro y login de usuarios mediante el acceso a los datos de la DB
- Logra crear un CRUD de productos y/o servicios
Sprint 2
Fecha de cierre 03/06/24
Deben referirse a lo realizado en el Módulo Programador Aplicaciones Móviles mencionado más arriba, y enfatizar en mejoras de desarrollo del mismo, como por ejemplo revisar que tenga la aplicación lo siguiente:
- Especificar en la sección de la Wiki, al menos un caso de Testing para la aplicación Web y otro para la App Móvil.
- Especificar en la sección de la Wiki, en algún punto la seguridad aplicada tanto en la aplicación Web como en la App Móvil.
Rúbricas de valoración Sprint 2:
- Logra realizar confirmaciones en GitHub (commits - ver documentación)
- Logra realizar un MERGE a la rama principal del proyecto (MAIN en el code de GitHub)
- Logra mantener actualizado el flujo de las Issues y Milestones. (deberán estar cerradas, asignadas)
- Logra llevar actualizado el kanban del proyecto. (todas las issues en done o en el Product Backlog las que no se hicieron).
- Logra documentar las ceremonias de planning, review y retrospective en Wiki mediante herramientas sugeridas (Ideaboard, Notion, Mural)
- Logra completar el documento de proyecto IEEE830. (Pueden dejar el link al google doc de donde se encuentra)
- Logra generar un archivo Readme.md con el proyecto nuevo, en coherencia con lo presentado
- Logra realizar al menos un caso de Testing para la aplicación Web y otro para la App Móvil.
- Logra aplicar accesibilidad dentro del proyecto web/móvil
- Logra definir en algún punto la seguridad tanto en la aplicación Web como en la App Móvil.
- Logra que la aplicación funcione y compile correctamente.
- Logra navegabilidad completa entre las activitys, funcionando los botones correctamente, regresando al punto principal
- Logra crear una página de contacto
- Aplica estética coherente en estilos y colores, imágenes, etc.
- Logra crear un login funcional (que se conecte con algún método sugerido)
- Logra CRUD básico funcional de productos o servicios y otro de usuarios
- Logra gestionar una persistencia de datos
Todos los integrantes del equipo deberán colaborar con el proyecto mediante confirmaciones (commits) al código fuente y tareas (issues) asignados.
Solo se evaluará el código disponible en la rama main o master (entregable).