Eres parte de un equipo de desarrollo en una consultora tecnológica especializada en soluciones para pequeñas y medianas empresas. Tu equipo ha sido contactado por un emprendedor local que necesita digitalizar y optimizar la gestión de su negocio.
El cliente puede tener cualquier tipo de negocio: una escuela, una tienda en línea, un gimnasio, un restaurante, etc. El desafío es crear una solución personalizada que se adapte a las necesidades específicas del negocio elegido.
Desarrollar una API REST y una base de datos SQL que permitan al cliente gestionar eficientemente su negocio, reemplazando los métodos manuales actuales y preparando el negocio para un crecimiento futuro.
- Base de datos SQL (PostgreSQL, MySQL, etc.) o NoSQL (MongoDB, Supabase, etc.)
- API REST (usando Flask, FastAPI, Django REST Framework, etc.)
- Documentación completa de la API
- Tests unitarios y de integración
- Control de versiones con Git y GitHub
- Gestión del proyecto con metodologías ágiles (SCRUM)
Dos semanas.
- Diagrama ER de la base de datos
- Repositorio en GitHub con código fuente
- Documentación de la API (Swagger o similar)
- Suite de tests completa y pasando
- Documento de retrospectiva del proyecto
- Tablero Kanban (Trello, Jira, etc.) con historias de usuario
- Mínimo 3 tablas relacionadas en la base de datos
- API REST con operaciones CRUD básicas
- Tests unitarios para cada endpoint
- Documentación en Markdown
- Gestión de proyecto con Kanban
- Variables de entorno para datos sensibles
- Logging básico
- Manejo de excepciones simple
- Estructura de base de datos más compleja (5+ tablas)
- Documentación interactiva (Swagger)
- Manejo avanzado de errores con códigos HTTP apropiados
- Exportación de datos a CSV
- Filtrado y paginación en endpoints GET
- Autenticación con JWT
- Roles de usuario y permisos
- Caché de respuestas para optimizar rendimiento
- Implementación de websockets para actualizaciones en tiempo real
- Contenedorización con Docker
- Despliegue en la nube (AWS, Google Cloud, etc.)
- Integración con servicios externos (pagos, notificaciones, etc.)
- Interfaz de usuario básica (web o móvil)
- Diseñar y gestionar bases de datos
- Diseñar de back-end de aplicaciones
- Implementar tests de calidad
- Gestionar equipos técnicos
- Configura y automatiza su entorno de trabajo
