Loading repository data…
Loading repository data…
tomasg1985 / repository
Simulación transaccional de un Cajero Automático (ATM) en Python con persistencia en SQLite, encapsulamiento mediante tuplas de control y validación de tipos defensiva.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Una aplicación financiera transaccional desarrollada en Python que modela el comportamiento lógico, matemático y de seguridad de un cajero automático real. Este ecosistema implementa persistencia local mediante SQLite, gestionando transacciones financieras de forma atómica y aplicando control de excepciones riguroso junto con validaciones de tipo estrictas.
try/except sqlite3.Error) con rutinas de reversión transaccional (conexion.rollback()) ante fallos del sistema físico de disco, asegurando que el saldo nunca quede en un estado corrupto.extraer_monto, depositar) devuelven estructuras inmutables de tres elementos (Saldo Actualizado, Mensaje de Estado, Flag Booleano de Éxito) para garantizar flujos de datos predecibles y seguros.validar_monto) que aísla las entradas de texto de la terminal (str) y audita su composición mediante inspección digital (.isdigit()) antes de realizar castéos numéricos.colorama (Feedback jerarquizado por colores en la consola de comandos)Al iniciar el sistema por primera vez, el motor SQL inicializa de manera automática la siguiente tabla para el control de la cuenta bancaria simulada:
CREATE TABLE IF NOT EXISTS banco(
id INTEGER PRIMARY KEY AUTOINCREMENT,
saldo REAL NOT NULL,
contrasena TEXT NOT NULL
);
logic.py)Las reglas financieras del ATM han sido documentadas bajo estándares de producción mediante Docstrings interactivos que incluyen ejemplos de pruebas conceptuales (doctests):
| Función | Tipo de Operación | Descripción Técnica y Mecanismos de Control |
|---|---|---|
extraer_monto() | UPDATE / Escritura | Valida la suficiencia de fondos frente al saldo actual. Actualiza la entidad SQL y mitiga errores mediante cláusulas de guarda. |
depositar() | UPDATE / Escritura | Audita que el monto sea un valor positivo flotante o entero, actualiza el registro físico en disco y confirma la transacción (commit). |
cambiar_contrasena() | Lógica de Seguridad | Evalúa de forma estricta la concordancia de cadenas y restringe el uso de contraseñas previas idénticas para mitigar riesgos. |
validar_monto() | Sanitización de Datos | Filtra entradas de usuario por consola. Bloquea caracteres alfabéticos o montos menores o iguales a cero, impidiendo excepciones en ejecución. |
Sigue estos comandos detallados en tu terminal para probar la simulación en tu computadora:
Clonar el repositorio con persistencia relacional:
git clone https://github.com
cd sistema_atm
Instalar el formateador visual de consola:
pip install colorama
Ejecutar el orquestador principal:
python app.py
(Nota: El motor creará el archivo binario de base de datos banco.db de forma automática al momento de inicializar el programa).
Este software se distribuye bajo los términos de la Licencia MIT. Libre para fines educativos, académicos y desarrollo profesional continuo.