Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

MiniFCore

Propósito del Proyecto

MiniFCore es una plataforma web para la gestión de pedidos, productos, filamentos y sugerencias en un entorno de impresión 3D. Permite a los usuarios realizar pedidos personalizados y a los administradores gestionar productos, filamentos, usuarios y analizar tendencias y necesidades de stock.

Funcionamiento General

  • Backend: Desarrollado en Python con Flask, expone una API RESTful para gestionar usuarios, productos, filamentos, pedidos y sugerencias. Utiliza MongoDB como base de datos.
  • Frontend: Desarrollado en React, permite a los usuarios y administradores interactuar con la plataforma de forma intuitiva y segura.
  • Autenticación: Basada en JWT, con roles diferenciados para usuarios y administradores.
  • Gestión de Pedidos: Los usuarios pueden ver y gestionar solo sus propios pedidos, mientras que los administradores pueden ver todos los pedidos.

Mejoras Implementadas: Principios SOLID y Patrones de Diseño

Principios SOLID

  1. Responsabilidad Única (SRP):

    • El código se ha organizado en capas: Controllers, Services y Repositories.
    • Cada clase tiene una única responsabilidad: los controladores gestionan la API, los servicios la lógica de negocio y los repositorios el acceso a datos.
  2. Inversión de Dependencias (DIP):

    • Los servicios reciben los repositorios como dependencias, permitiendo desacoplar la lógica de negocio del almacenamiento de datos y facilitando el testeo y la extensión.

Patrones de Diseño

  1. Repository:

    • Se crearon repositorios para cada entidad, encapsulando el acceso a la base de datos y desacoplando la lógica de negocio del almacenamiento.
  2. Controller:

    • Se implementaron controladores para cada entidad, que actúan como intermediarios entre la API y la lógica de negocio.

Beneficios de la Nueva Arquitectura

  • Mantenibilidad: El código es más fácil de entender, modificar y extender.
  • Escalabilidad: Permite agregar nuevas funcionalidades o entidades sin afectar el resto del sistema.
  • Testabilidad: Cada capa puede ser testeada de forma independiente.
  • Seguridad: Los usuarios solo pueden acceder a sus propios pedidos, mientras que los administradores tienen acceso global.

Cómo Ejecutar el Proyecto

  1. Asegúrate de tener MongoDB corriendo localmente.
  2. Ejecuta el backend:
    python -m backend.app
  3. Ejecuta el frontend:
    cd frontend
    npm install
    npm start
  4. Accede a la aplicación desde tu navegador en http://localhost:3000.

MiniFCore es un ejemplo de aplicación web moderna, profesional y alineada con buenas prácticas de ingeniería de software.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages