Este proyecto es una aplicación de escritorio diseñada para la gestión de locales de ventas de accesorios de telefonía celular. El enfoque principal está en la funcionalidad de autenticación y administración de usuarios, permitiendo que diferentes tipos de usuarios (Depósito, Gerente, Vendedor) vean diferentes interfaces de usuario.
El proyecto está dividido en varias capas siguiendo la arquitectura en capas (Layered Architecture), lo que permite una separación clara de responsabilidades.
A lo largo del desarrollo de este proyecto, se han implementado varios patrones de diseño que ayudan a organizar el código, mejorar su mantenibilidad y promover buenas prácticas en el desarrollo de software:
Clase Sesion
: La clase Sesion
utiliza el patrón Singleton para asegurar que solo exista una instancia de la sesión de usuario en todo el sistema. Este patrón es esencial para gestionar de manera eficiente la información de la sesión y prevenir la creación de múltiples sesiones simultáneas.
Ventajas:
Clase Componente
y sus derivados Patente
y Familia
: El patrón Composite se utiliza para estructurar jerárquicamente los permisos de usuarios. Cada Componente
puede tener hijos que pueden ser permisos individuales (Patente
) o conjuntos de permisos (Familia
), lo que permite manejar roles complejos en la organización.
Ventajas:
Clases en la capa DAL: Se ha implementado el patrón Repository para abstraer el acceso a la base de datos. Este patrón facilita la persistencia y recuperación de entidades, como usuarios y permisos, ocultando la lógica de acceso a datos detrás de una interfaz común.
Ventajas:
Ejecuta el siguiente script SQL para crear la base de datos y las tablas necesarias:
CREATE DATABASE GestionLocalesTelefoniaDB;
GO
USE GestionLocalesTelefoniaDB;
GO
CREATE TABLE Usuarios (
Id INT PRIMARY KEY IDENTITY(1,1),
Username NVARCHAR(50) NOT NULL,
Password NVARCHAR(255) NOT NULL,
Email NVARCHAR(255) NOT NULL,
Nombre NVARCHAR(100) NOT NULL,
Apellido NVARCHAR(100) NOT NULL,
DNI NVARCHAR(20) NOT NULL,
Rol NVARCHAR(50) NOT NULL
);
CREATE TABLE Bitacora (
Id INT PRIMARY KEY IDENTITY(1,1),
FechaHora DATETIME NOT NULL,
Usuario NVARCHAR(100) NOT NULL,
Accion NVARCHAR(255) NOT NULL,
Detalle NVARCHAR(MAX) NULL
);
En el archivo Program.cs
de GestionLocalesTelefonia.UI
, ajusta la cadena de conexión a tu base de datos:
string connectionString = "Server=tu_servidor;Database=GestionLocalesTelefoniaDB;Integrated Security=True;";
GestionLocalesTelefonia.sln
en Visual Studio.GestionLocalesTelefonia.UI
como el proyecto de inicio.Si deseas contribuir a este proyecto, sigue los pasos a continuación:
feature/nueva-funcionalidad
).git commit -m 'Añadir nueva funcionalidad'
).git push origin feature/nueva-funcionalidad
).Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.