iamrodrigodev /
final-ia-back
API REST construida con FastAPI para la predicción de deserción estudiantil usando Machine Learning. Proyecto Final del curso de Inteligencia Artificial.
76/100 healthLoading repository data…
llkiriell / repository
API REST construida con FastAPI, SQLAlchemy 2, Alembic y PostgreSQL, con autenticación basada en PyJWT y bcrypt (hash de contraseñas), configuración mediante variables de entorno y logging estándar de Python.
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.
API REST construida con FastAPI, SQLAlchemy 2, Alembic y PostgreSQL, con autenticación basada en PyJWT y bcrypt (hash de contraseñas), configuración mediante variables de entorno y logging estándar de Python.
Historial del scaffolding y decisiones: docs/plan-historial.md · Tablas auth/RBAC: docs/tables-auth-permissions.md · Primer usuario y token: docs/primer-acceso-api.md · CORS: docs/manual-cors.md
| Componente | Tecnología |
|---|---|
| Framework web | FastAPI |
| Servidor ASGI (desarrollo) | Uvicorn |
| Servidor (producción) | Gunicorn + workers Uvicorn |
| ORM | SQLAlchemy 2.x |
| Migraciones | Alembic |
| Base de datos | PostgreSQL (driver psycopg 3) |
| Configuración | pydantic-settings (.env) |
| JWT | PyJWT |
| Hash de contraseñas | bcrypt |
| Logging | logging (stdlib), archivo rotativo + consola |
| Auth / permisos | Usuarios, roles y permisos (RBAC); JWT en rutas /api/v1/auth/* |
| Python | 3.11+ recomendado |
pipClonar o situar el proyecto en tu máquina y entrar en la raíz del repositorio (hyper_api/).
Crear el entorno virtual localenv (desde la raíz del proyecto):
python -m venv localenv
Activar el entorno virtual (el prompt suele mostrar el prefijo (localenv)):
Windows — PowerShell (recomendado): estando en la raíz del proyecto (hyper_api\), el entorno vive en localenv\ y los scripts en localenv\Scripts\.
cd C:\ruta\completa\a\hyper_api
.\localenv\Scripts\Activate.ps1
Si prefieres la ruta absoluta al script (sustituye la carpeta del proyecto por la tuya):
& "C:\ruta\completa\a\hyper_api\localenv\Scripts\Activate.ps1"
Si aparece un error de política de ejecución, puedes permitir scripts locales para tu usuario con:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Windows — Símbolo del sistema (CMD): mis paths bajo localenv\Scripts\:
cd C:\ruta\completa\a\hyper_api
localenv\Scripts\activate.bat
Con ruta absoluta:
C:\ruta\completa\a\hyper_api\localenv\Scripts\activate.bat
Ubuntu (Linux) y macOS — Bash o terminal estándar:
source localenv/bin/activate
Para desactivarlo en cualquier sistema: deactivate.
Instalar dependencias (puede tardar según red y disco):
pip install -r requirements.txt
Variables de entorno: copia .env.example a .env y configura las variables DB_* (DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME, y opcionalmente DB_DRIVER). La URL de SQLAlchemy se arma en código (Settings.database_url). Ajusta también SECRET_KEY y, si aplica, CORS_ORIGINS. Si antes usabas DATABASE_URL en un solo valor, elimínala y reparte los datos en estas variables.
POST /api/v1/auth/register — JSON con email, username, password (registro; endurecer en producción).POST /api/v1/auth/token — formulario OAuth2 (username puede ser email o nombre de usuario, password).GET /api/v1/auth/me — cabecera Authorization: Bearer <token>.Los roles y permisos se asignan en base de datos (o futuros endpoints admin); el token JWT solo incluye el sub (id de usuario).
LOG_LEVEL (p. ej. INFO, DEBUG) y LOG_FILE_PATH (por defecto logs/app.log; puedes usar una ruta absoluta).tail -f logs/app.log (o tail -F si el archivo se rota y se recrea).Get-Content -Path logs\app.log -Wait -Tail 50Definir variables de entorno en el sistema, systemd, panel del PaaS o orquestador (no commitear .env con secretos).
Instalar dependencias en el entorno de ejecución (pip install -r requirements.txt o imagen que lo haga en build).
Ejecutar migraciones contra la base de producción:
alembic upgrade head
Servir la aplicación con Gunicorn y workers Uvicorn, por ejemplo:
gunicorn app.main:app -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000
Ajusta -w (número de workers) según CPUs y carga.
Buenas prácticas: proxy inverso (nginx, Caddy, etc.) con HTTPS, SECRET_KEY fuerte y única, ENVIRONMENT=production, revisar CORS_ORIGINS para los orígenes reales del front. No uses --reload en producción.
LOG_FILE_PATH en una ruta con permisos de escritura para el usuario del servicio (p. ej. bajo /var/log/...).tail -f o Get-Content -Wait -Tail.La instalación con pip, las migraciones contra bases remotas y el servidor en primer plano pueden ser lentos o bloqueantes. En flujos automatizados conviene ejecutarlos tú mismo y confirmar el resultado antes de seguir. Detalle en docs/plan-historial.md.
app/ — aplicación FastAPI (main.py, api/, core/, db/, models/, schemas/)alembic/ — migracioneslogs/ — directorio de logs (los .log no se versionan)docs/ — documentación de historial del proyectoSelected from shared topics, language and repository description—not editorial ratings.
iamrodrigodev /
API REST construida con FastAPI para la predicción de deserción estudiantil usando Machine Learning. Proyecto Final del curso de Inteligencia Artificial.
76/100 healthluaraumc /
API REST construída com FastAPI, SQLAlchemy e Alembic. Inclui autenticação via JWT, gestão de usuários, carreiras, cursos, habilidades, vagas e extração de habilidades com suporte OpenAI.
41/100 healthCrear la base de datos en PostgreSQL con el mismo nombre, usuario y contraseña que definiste en DB_NAME, DB_USER y DB_PASSWORD.
Migraciones (requiere .env válido y dependencias instaladas):
alembic upgrade head
Arrancar en desarrollo con recarga automática:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
Comprueba GET http://127.0.0.1:8000/health.
mateus-dev-me /
Uma API REST para gerenciamento de tarefas em kanban construída com Django e Django Ninja.
41/100 healthjefersonbraine /
API REST para cálculo de emolumentos de cartório do Paraná (Tabela XI). Construída com FastAPI sobre a biblioteca emolumentos-pr.
63/100 healthguilherme-rigel /
API REST para cadastro e autenticação de usuários, construída com FastAPI, SQLite e autenticação JWT. Ideal para estudo de segurança e criação de backends modernos.
46/100 healthG2M-Corp /
API REST para gerenciamento de tarefas, construída com Django e Django REST Framework, com suporte a autenticação JWT, upload de arquivos e documentação OpenAPI.
22/100 health