Giter Site home page Giter Site logo

control_prestamos-ti's Introduction

Sistema de Inventario y Préstamo de Equipos

Este proyecto es una aplicación de escritorio para gestionar el inventario y el préstamo de equipos en una organización. Está desarrollado en Python usando la biblioteca Tkinter para la interfaz gráfica y MySQL como base de datos.

Características

  • Inicio de sesión: Autenticación de usuarios con roles (administrador o usuario regular).
  • Gestión de inventario: Visualización, adición y eliminación de equipos.
  • Préstamos: Gestión de préstamos y devoluciones de equipos.
  • Actualización de estado: Modificación del estado de los equipos (disponible, en préstamo, en mantenimiento, fuera de servicio).
  • Configuración de base de datos: Ventana de configuración para los parámetros de la conexión a la base de datos MySQL.
  • Integridad del código: Uso de GPG para firmar el archivo app.py y verificar su integridad.

Requisitos

  • Python 3.12
  • Tkinter
  • MySQL
  • Paquetes de Python:
    • mysql-connector-python
    • bcrypt

Instalación

Paso 1: Clonar el repositorio

git clone https://github.com/TheSL18/control_prestamos-ti.git
cd control_prestamos-ti

Paso 2: Crear un entorno virtual (opcional pero recomendado)

python -m venv venv
source venv/bin/activate # En Windows usa `venv\Scripts\activate`

Paso 3: Instalar las dependencias

pip install -r requirements.txt

Paso 4: Configurar la base de datos

CREATE DATABASE inventario_equipos;

USE inventario_equipos;

CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre_usuario VARCHAR(50) NOT NULL,
    contrasena_hash VARCHAR(100) NOT NULL,
    es_admin BOOLEAN DEFAULT FALSE,
    nombres VARCHAR(100),
    dependencia VARCHAR(100)
);

CREATE TABLE equipos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    descripcion TEXT,
    tipo VARCHAR(50),
    disponible BOOLEAN DEFAULT TRUE,
    codigo_barras VARCHAR(100) UNIQUE NOT NULL
);

CREATE TABLE prestamos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    equipo_id INT NOT NULL,
    usuario_id INT NOT NULL,
    fecha_prestamo DATETIME NOT NULL,
    fecha_devolucion DATETIME,
    FOREIGN KEY (equipo_id) REFERENCES equipos(id),
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
);

Paso 5: Configurar la conexión a la base de datos

Crea un archivo config.ini en el directorio del proyecto con la siguiente estructura y ajusta los valores según tu configuración de MySQL:

[DATABASE]
host = 127.0.1.1
port = 3306
user = tu_usuario
password = tu_contraseña
database = inventario_equipos

Paso 6: Verificar la integridad del archivo app.py

Si el archivo app.py ha sido firmado con GPG, verifica su integridad de la siguiente manera:

  1. Importar la clave pública del firmante (si no lo has hecho):
gpg --keyserver hkps://keys.openpgp.org --recv-keys 3CA0B9DF1BE7CE09
  1. Verificar la firma del archivo app.py:
gpg --verify app.py.sig app.py

Si la verificación es exitosa, podrás proceder con confianza en que el archivo no ha sido alterado.

Paso 7: Ejecutar la aplicación

python app.py

Licencia

Licencia Este proyecto está bajo una Licencia custom. Consulta el archivo LICENSE para más detalles.

Contacto

Para preguntas o soporte, por favor contacta a [email protected] o abre un issue en GitHub.

El desarrollador usa llaves GPG para cifrar, firmar o verificar la integridad de los mensajes y para evitar la suplantación de identidad.

control_prestamos-ti's People

Contributors

thesl18 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.