Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dashboard App

Autor: Ronaldo Cahuasiri Colque

Aplicación web de administración desarrollada con Flask y Flask-AppBuilder para la gestión de Categorías y Productos, incluyendo carga de imágenes, autenticación de usuarios y panel administrativo tipo dashboard.

Descripción del Proyecto

Este sistema permite administrar de forma eficiente un catálogo de productos organizado por categorías, con funcionalidades completas de CRUD y soporte para imágenes.

Está construido utilizando Flask-AppBuilder, lo que proporciona una interfaz administrativa automática, control de usuarios y una arquitectura escalable basada en SQLAlchemy.

Características

  • CRUD completo de Categorías
  • CRUD completo de Productos
  • Carga de imágenes para categorías y productos
  • Visualización de imágenes en listados
  • Autenticación de usuarios
  • Control de acceso por roles (Administrador / Usuario)
  • Interfaz administrativa generada automáticamente
  • Arquitectura modular y escalable

Tecnologías utilizadas

  • Python 3.12+
  • Flask
  • Flask-AppBuilder
  • SQLAlchemy
  • MySQL 8+
  • WTForms
  • Jinja2
  • MarkupSafe

Requisitos

  • Python 3.12 o superior
  • MySQL 8.0 o superior
  • pip actualizado

Instalación

Clonar el repositorio:

git clone <url-del-repositorio>
cd dashboard-app

Crear entorno virtual:

Windows:

python -m venv env
env\Scripts\activate

Linux / Mac:

python3 -m venv env
source env/bin/activate

Instalar dependencias:

pip install -r requirements.txt

Base de datos

Crear la base de datos en MySQL:

CREATE DATABASE dashboardapp
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

Configurar conexión en config.py:

SQLALCHEMY_DATABASE_URI = "mysql+pymysql://usuario:contraseña@localhost/dashboardapp"

Ejecución del proyecto

Crear usuario administrador:

flask fab create-admin

Ejecutar la aplicación:

python run.py

Abrir en el navegador:

http://localhost:8080

Seeder de datos (opcional)

Para cargar datos de prueba:

python seeders.py

Este script inserta:

  • 5 categorías
  • 20 productos

Además evita duplicados en cada ejecución.

Estructura del proyecto

dashboard-app/
├── app/
│   ├── __init__.py        (Factory de la aplicación)
│   ├── extensions.py      (DB y AppBuilder)
│   ├── models.py          (Modelos de datos)
│   ├── views.py           (Vistas CRUD)
│   └── static/
│       └── uploads/       (Imágenes subidas)
│
├── config.py              (Configuración general)
├── run.py                 (Punto de entrada)
├── seeders.py             (Datos de prueba)
├── requirements.txt
└── README.rst

Modelos de datos

Categoria

  • id: Identificador único
  • nombre: Nombre de la categoría
  • descripcion: Descripción de la categoría
  • imagen: Ruta de imagen
  • estado: Activo / Inactivo
  • creado_en: Fecha de creación
  • actualizado_en: Fecha de actualización

Producto

  • id: Identificador único
  • nombre: Nombre del producto
  • descripcion: Descripción del producto
  • precio: Precio del producto
  • categoria_id: Relación con Categoria
  • imagen: Ruta de imagen
  • estado: Activo / Inactivo
  • creado_en: Fecha de creación
  • actualizado_en: Fecha de actualización

Notas importantes

  • Las imágenes se almacenan en app/static/uploads/
  • Flask-AppBuilder genera automáticamente los formularios desde los modelos
  • El sistema está preparado para ampliación con nuevos módulos
  • Se recomienda usar entornos virtuales para desarrollo

Autor

Ronaldo Cahuasiri Colque Sistema desarrollado con fines académicos

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages