Skip to content

isaac0621/quicklist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

QuickList: Lista de Compras y Gestor de Tareas

Aplicación móvil desarrollada en Ionic y Angular para registrar, organizar y dar seguimiento a listas de compras y tareas personales. Este proyecto fue diseñado con un enfoque en usabilidad, operación offline y eficiencia en el seguimiento del progreso.

Proyecto Final de Programación — CTP Alajuelita, 2026


1. Problema del Cliente y Solución Propuesta

El cliente requería una aplicación sencilla y eficiente para gestionar las compras del hogar y las tareas diarias, con el objetivo de evitar olvidos, duplicidad de productos y listas desordenadas.

La solución desarrollada permite:

  • Agregar, editar y eliminar productos o tareas rápidamente mediante gestos (swipe).
  • Organizar los elementos por categorías colapsables para una visualización más clara.
  • Seguir el avance mediante barras de progreso y conteo de elementos pendientes.
  • Conservar todos los cambios localmente cuando no hay conexión a internet (operación 100% offline).
  • Identificar automáticamente las categorías a partir de palabras clave.

2. Características y Funcionalidades Principales

Gestión de Elementos

  • Alta de productos/tareas con:
    • título
    • descripción
    • cantidad
    • categoría
    • estado
    • prioridad (Alta, Media, Baja)

Gestión de Fechas

  • Registro de fecha de creación.
  • Registro de fecha límite de entrega.

Interacciones Táctiles

  • Marcado de elementos completados con:
    • toque (tap)
    • deslizamiento (swipe)
  • Eliminación rápida.

Agrupación Inteligente

  • Autodetección de categorías.
  • Organización en secciones colapsables.

Modo Offline

  • Indicador de estado sin conexión.
  • Guardado persistente local utilizando:
    • Capacitor Preferences
    • LocalStorage

Interfaz Accesible

  • Diseño optimizado para uso con una sola mano.
  • Textos legibles.
  • Alto contraste.
  • Áreas táctiles amplias.

Sugerencias y Limpieza

  • Chips de sugerencias frecuentes.
  • Limpieza masiva de elementos completados.

Historial

  • Vista dedicada para consultar:
    • compras previas
    • tareas finalizadas

3. Tecnologías Utilizadas

Área Tecnología
Frameworks Core Ionic Framework (v7/v8)
Framework Frontend Angular (v17/v20)
Arquitectura Standalone Components
Lenguaje TypeScript
Programación Reactiva RxJS
Estilos SCSS
Hardware/Nativo Capacitor
Almacenamiento LocalStorage / Ionic Storage / Capacitor Preferences

4. Requisitos e Instalación

Requisitos Previos

  • Node.js (v18 o superior)
  • npm (v9 o superior)
  • Ionic CLI
  • Angular CLI

Instalar CLI necesarias

npm install -g @ionic/cli
npm install -g @angular/cli

## Clonar el Repositorio

```bash
git clone https://github.com/isaac0621/Proyecto-de-Programacion.git
cd quicklist

Instalar Dependencias

npm install

Iniciar Servidor de Desarrollo

ionic serve

La aplicación abrirá en:

http://localhost:4200

con Hot Reload habilitado.


5. Estructura del Proyecto

src/
├── app/
│   ├── models/
│   │   ├── task.model.ts
│   │   └── category-keywords.ts
│   │
│   ├── services/
│   │   └── shopping.service.ts
│   │
│   ├── home/
│   ├── add-product/
│   ├── purchased/
│   ├── categories/
│   ├── settings/
│   │
│   ├── app.component.ts
│   └── app.routes.ts
│
├── assets/
├── environments/
├── theme/
│   └── variables.scss
│
└── index.html

Descripción de Carpetas

Carpeta Función
models/ Interfaces y modelos de datos
services/ Lógica de negocio y persistencia
home/ Pantalla principal
add-product/ Formulario de ingreso
purchased/ Historial
categories/ Gestión de categorías
settings/ Configuración

6. Modelo de Datos y Categorías

Interfaz Principal

interface Task {
  id: string;
  titulo: string;
  descripcion: string;
  fechaCreacion: string;
  fechaLimite: string;
  estado: TaskStatus;
  prioridad: TaskPriority;
  categoria: string;
  completada: boolean;
}

Categorías Configuradas

Categoría Identificador Visual
Lácteos Rojo
Limpieza Azul
Verduras Verde
Panadería Naranja
Otros Gris

7. Interfaz y Componentes

Pantallas Principales

Home / Mi Lista

Lista principal agrupada por categorías con indicadores de progreso.

Agregar Producto

Formulario de captura rápida con chips de sugerencias dinámicas.

Comprados / Historial

Registro histórico con funcionalidad de vaciado de lista.

Editar Producto

Modal overlay para modificación de atributos:

  • nombre
  • cantidad
  • prioridad

Componentes UI de Ionic Implementados

ion-header
ion-toolbar
ion-content
ion-list
ion-item
ion-input
ion-button
ion-card
ion-select
ion-toggle
ion-fab
ion-badge
ion-checkbox

Sistema de Diseño

Elemento Valor Hexadecimal
Fondo #FFFFFF
Texto #000000
Primario #2F6BFF
Éxito #2ECC71
Urgente #FFC107
Tipografía Base 18px – 22px

8. Pruebas y Compilación

Matriz de Pruebas Funcionales

ID Función Evaluada Estado
1 Inserción de nuevo producto Correcto
2 Validación de campos obligatorios Correcto
3 Marcado como completado Correcto
4 Listas colapsables Correcto
5 Persistencia offline Correcto
6 Edición de atributos Correcto
7 Eliminación de registros Correcto
8 Autodetección de categoría Correcto

Ejecutar Pruebas

Unit Testing

npm test

Cobertura de Código

npm test -- --code-coverage

9. Compilación y Despliegue

Android

npm run build
npx cap add android
npx cap run android

iOS

npm run build
npx cap add ios
npx cap run ios

10. Resolución de Problemas Frecuentes

Fallo en carga de datos almacenados

Causa posible

Inicialización incorrecta de almacenamiento local.

Solución

  • Limpiar caché del entorno.
  • Verificar inicialización de Preferences.

Falta de sincronización UI/Datos

Causa posible

Observables no actualizados.

Solución

  • Validar suscripciones RxJS.
  • Verificar detección de cambios de Angular.

11. Implementación de Inteligencia Artificial

Durante el ciclo de desarrollo se utilizaron herramientas de IA bajo el siguiente esquema.

Elementos generados con asistencia de IA

  • Propuestas iniciales de estructura y rutas.
  • Refinamiento del sistema de diseño:
    • escalas tipográficas
    • áreas táctiles
  • Expresiones regulares.
  • Validaciones de formularios.
  • Estructuración inicial de documentación técnica.

Elementos desarrollados manualmente

  • Lógica de negocio definitiva.
  • Implementación UX/UI.
  • Jerarquía visual y accesibilidad.
  • Auditoría funcional:
    • swipe actions
    • modales
    • barras de progreso
  • Consolidación final del código.

12. Información del Proyecto y Autoría

Entregables Académicos Incluidos

  • Levantamiento de requerimientos.
  • Especificación de requisitos.
  • Propuesta arquitectónica.
  • Diseño UI/Wireframes.
  • Código fuente funcional.
  • Documentación de pruebas.
  • Material de presentación.

Autor

Isaac Tenorio Campos

Institución: CTP Alajuelita
Especialidad: Programación
Profesor: Bengi Obando Umaña
Ubicación: Circuito 06, Dirección Regional San José Central

Fechas de Ejecución

05 de Mayo de 2026 → 26 de Mayo de 2026

About

Aplicación móvil de lista de compras desarrollada en Ionic/Angular. Proyecto final – Programación, CTP Alajuelita 2026.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors