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.
Arquitectura en Capas (Layered Architecture): Separación de la aplicación en capas claras (Dominio, DAL, BLL, UI) para una mejor mantenibilidad y escalabilidad.
Patrón de Inyección de Dependencias (Dependency Injection): Facilita la inyección de dependencias, promoviendo un código más limpio y fácil de mantener.
Patrón de Fábrica (Factory): Utilizado para crear y manejar la instancia correcta de UI según el rol del usuario autenticado.
Patrón Repositorio (Repository Pattern): Implementado en la DAL para gestionar el acceso a datos, proporcionando una capa de abstracción sobre la lógica de acceso a la base de datos.
Patrón Estrategia (Strategy): La capa UI implementa la lógica para manejar diferentes interfaces según los roles de usuario, utilizando diferentes estrategias de interfaz.
Patrón de Registro de Actividad (Logger Pattern): Implementado para registrar todas las transacciones y actividades en el sistema, facilitando auditorías y análisis.
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.