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.)
- API REST (usando Flask, FastAPI, Django REST Framework, etc.)
- Sistema de autenticación y autorización
- 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)
Se estiman dos semanas para el desarrollo del prototipo funcional.
- 📊 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)
- Elige un tipo de negocio que te interese y sea realista para un emprendedor local.
- Piensa en las necesidades específicas de ese negocio al diseñar tu base de datos y API.
- Mantén la flexibilidad en tu diseño para futuras expansiones o cambios en el negocio.
- Prioriza la seguridad y la eficiencia en tu implementación.
Competencia: Gestionar eficientemente proyectos de desarrollo con herramientas de control de versiones
- Uso de github, gitlab o bitbucket
- Conectar repo local al remoto
- Uso de gitflow methodology
- Uso de commits descriptivos
- Uso apropiado de ramas
- Uso de nomenclatura en commits
- Uso de nomenclatura en ramas
Competencia: Ser capaz de desarrollar un programa en Python
- Uso de Control de errores (cláusula try/except)
- Uso de herramientas de logger
- Uso de frameworks (FastAPI, Flask, Django)
- Uso de librerias
- Uso de Entornos virtuales (venv, conda, virtualenv)
- Uso de Archivo de dependencias (requirements.txt)
Competencia: Diseñar y gestionar bases de datos de manera eficiente
- Uso de Modelado de datos
- Uso de Normalización de datos
Competencia: Implementar tests para garantizar la calidad del software
- Uso de Test Unitarios
- Uso de Test de Integración
¡Buena suerte con tu proyecto! 🍀