AutonomousVehicleControlBeginnersGuide
Python sample codes and documents about Autonomous vehicle control algorithm. This project can be used as a technical guide book to study the algorithms and the software architectures for beginners.
Gestioná el seguimiento de tus materias aprobadas y regulares para organizar tu plan de estudios
Translation pending
AI summary · website content
EducationPython · JavaScriptGitHub @TTubiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗App web para estudiantes de la Tecnicatura Universitaria en Programación (UTN, plan 2024). Marcás qué materias tenés regulares o aprobadas y te muestra qué podés cursar, qué podés rendir, qué está bloqueado y qué te falta para desbloquearlo.
Demo online: https://planificador-correlativas.vercel.app/
localStorage). El servidor no guarda datos personales.Según la Ordenanza N.º 2019/2023 del Consejo Superior de la UTN, cada materia tiene dos listas de correlativas:
regulares tienen que estar al menos regularizadas y sus correlativas aprobadas, aprobadas.El plan completo está en data/tup_plan2024.json.
| Parte | Tecnología |
|---|---|
| Backend | Python 3.13, FastAPI, Pydantic, Uvicorn |
| Base de datos | SQLite con SQL escrito a mano (módulo sqlite3, sin ORM) |
| Frontend | HTML, CSS y JavaScript sin frameworks |
| Tests | pytest y TestClient de FastAPI |
| CI | GitHub Actions (Windows y Linux) |
Necesitás Python 3.13, la versión fijada en .python-version. También funciona desde 3.10.
Windows (PowerShell):
git clone https://github.com/TTubi/planificador-correlativas.git
cd planificador-correlativas
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn app.main:app --reload
Linux o macOS:
git clone https://github.com/TTubi/planificador-correlativas.git
cd planificador-correlativas
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload
Después abrí http://127.0.0.1:8000/.
Al arrancar, la app valida el JSON del plan y genera la base planificador.db. Si el plan tiene errores, no arranca y los muestra. python -m scripts.cargar_plan hace lo mismo a mano, y sirve para validar el JSON sin levantar el servidor.
python -m pytest # backend (Python)
node --test "tests/js/*.test.mjs" # lógica del frontend (JavaScript)
Los tests no necesitan la base generada: los de la API arman una base temporal propia. Los de JavaScript usan el runner que trae Node 22 y no necesitan instalar paquetes.
| Variable de entorno | Para qué sirve | Valor por defecto |
|---|---|---|
PLANIFICADOR_DB | Ruta del archivo de la base SQLite que se genera al arrancar. | planificador.db en la raíz del proyecto |
Localmente no hace falta definirla. Existe para los hostings donde la carpeta del proyecto es de solo lectura.
Vercel detecta la app FastAPI en app/main.py y la publica como una función serverless, así que no hace falta un vercel.json. Los archivos de app/static/ se sirven desde su CDN.
En vercel.com, entrá con tu cuenta de GitHub y elegí Add New → Project.
Importá el repo planificador-correlativas. Vercel reconoce el preset FastAPI: no cambies los comandos de build ni la carpeta raíz.
En Environment Variables, agregá:
| Nombre | Valor |
|---|---|
PLANIFICADOR_DB | /tmp/planificador.db |
Tocá Deploy. En uno o dos minutos te da la URL pública. La demo de este repo está en https://planificador-correlativas.vercel.app/.
Desde ahí, cada push a main publica una versión nueva, y cada PR recibe su propia URL de vista previa.
Por qué hace falta PLANIFICADOR_DB: en Vercel el código queda en una carpeta de solo lectura, y el único lugar donde se puede escribir es /tmp. Sin la variable, la app intenta crear la base junto al código, falla al arrancar y el deploy queda caído.
Detalles a tener en cuenta:
This is the beginning of the README. Read the rest at the original. Read the full README ↗