Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏫 Mini Escuela — Sistema Escolar en Python (POO)

Este proyecto es una mini aplicación de consola hecha en Python, diseñada para practicar y demostrar conceptos de Programación Orientada a Objetos (POO) junto con manejo de archivos CSV y JSON.

Incluye:

  • Clases con herencia, encapsulación, propiedades y métodos especiales.
  • Carga de datos desde CSV.
  • Exportación completa de la escuela (estudiantes + docentes) a JSON.
  • Un menú interactivo para gestionar la información.

📂 Estructura del Proyecto

app_mini_escuela/ ├─ data/ │ ├─ estudiantes.csv │ ├─ profesores.csv │ └─ escuela.json ← exportación completa ├─ src/ │ ├─ clases.py ← POO (Persona, Estudiante, Docente, Curso) │ ├─ menu.py ← Menú interactivo de consola │ └─ loader.py ← Carga de datos desde JSON └─ index.py ← Punto de entrada


🧠 Conceptos POO Aplicados

Este proyecto usa varios pilares de la Programación Orientada a Objetos:

Herencia

Estudiante y Docente heredan de Persona.

Encapsulación

Atributos como la nota (__nota) y la lista de estudiantes del curso (__estudiantes) están protegidos.

Abstracción

Cada clase expone solo lo necesario: métodos como presentarse(), propiedades como aprobo, etc.

Polimorfismo

El método presentarse() funciona distinto en Persona, Estudiante y Docente.

Composición

Un Curso contiene:

  • un docente
  • una lista de estudiantes

▶️ Cómo Ejecutar el Proyecto

Debes tener Python 3.10+ instalado.

python index.py

El sistema cargará automáticamente los datos desde:

data/estudiantes.csv
data/profesores.csv
o desde data/escuela.json (si ya fue exportada la escuela)

Luego verás un menú interactivo como este:
1. Ver lista de estudiantes del curso
2. Ver lista de docentes del curso
3. Ver lista de aprobados/no aprobados
4. Agregar estudiante
5. Agregar docente
6. Modificar nota
7. Salir
8. Exportar escuela a JSON


🗂 Datos del Proyecto (CSV y JSON)
📄 estudiantes.csv
Formato:
CSVnombre,documento,grupo,notaJuan Pérez,1001,A,4.5María Gómez,1002,A,3.2...Mostrar más líneas
📄 profesores.csv
Formato:
CSVnombre,documento,asignaturaAna María Torres,2001,Matemáticas...Mostrar más líneas
📄 escuela.json (exportado)
Ejemplo real:
JSON{  "estudiantes": [    { "nombre": "Juan Pérez", "documento": "1001", "grupo": "A", "nota": 4.5 }  ],  "docentes": [    { "nombre": "Ana María Torres", "documento": "2001", "asignatura": "Matemáticas" }  ]}Mostrar más líneas

🧩 Funcionalidades Principales
✔ Ver estudiantes
Lee desde CSV o JSON y reconstruye objetos Estudiante.
✔ Ver docentes
Mismo proceso con objetos Docente.
✔ Ver aprobados/no aprobados
Usa la propiedad POO:
Python@propertydef aprobo(self):    return self.__nota >= 3.0Mostrar más líneas
✔ Exportar toda la escuela a JSON
Incluye alumnos + docentes en un solo archivo.
✔ Agregar estudiantes y docentes desde consola
✔ Modificar notas (con validación)

🧪 Ejemplo: así luce un Estudiante reconstruido desde CSV/JSON
Pythonest = Estudiante("Juan Pérez", "1001", "A", 4.5)print(est.aprobo)  # Trueprint(est.presentarse())Mostrar más líneas

💡 Objetivo del Proyecto
Este proyecto se hizo con dos propósitos:

Practicar POO real con clases útiles, no ejemplos vacíos.
Servir como pieza de portafolio en GitHub, mostrando:

arquitectura limpia
modularidad
persistencia con CSV / JSON
menú interactivo
buenas prácticas de Python




📌 Oportunidades de Mejoras (roadmap)

Validación más robusta de entradas del usuario.
Implementar cursos múltiples.
Guardar en JSON después de cada cambio.
Versión con interfaz gráfica (Tkinter o PyQt).
API REST usando FastAPI.

ESTE PROYECTO ES SOLAMENTE PARA INCLUIR EN PORTAFOLIO.

About

Sistema escolar simple hecho con Python + POO. Incluye manejo de estudiantes, docentes, CSV y JSON.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages