{"id":28761498,"url":"https://github.com/sazardev/django-restful-template","last_synced_at":"2025-08-23T01:33:30.944Z","repository":{"id":299146108,"uuid":"1002024051","full_name":"sazardev/django-restful-template","owner":"sazardev","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-14T23:12:35.000Z","size":296,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-15T00:23:19.259Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sazardev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-14T14:53:26.000Z","updated_at":"2025-06-14T23:12:38.000Z","dependencies_parsed_at":"2025-06-15T00:33:30.280Z","dependency_job_id":null,"html_url":"https://github.com/sazardev/django-restful-template","commit_stats":null,"previous_names":["sazardev/django-restful-template"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sazardev/django-restful-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazardev%2Fdjango-restful-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazardev%2Fdjango-restful-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazardev%2Fdjango-restful-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazardev%2Fdjango-restful-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sazardev","download_url":"https://codeload.github.com/sazardev/django-restful-template/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sazardev%2Fdjango-restful-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260310620,"owners_count":22989841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-17T07:06:30.283Z","updated_at":"2025-06-17T07:06:34.354Z","avatar_url":"https://github.com/sazardev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Django RESTful API Template\n\n[![Django](https://img.shields.io/badge/Django-4.2+-092E20?style=for-the-badge\u0026logo=django\u0026logoColor=white)](https://www.djangoproject.com/)\n[![DRF](https://img.shields.io/badge/DRF-3.14+-ff1709?style=for-the-badge\u0026logo=django\u0026logoColor=white)](https://www.django-rest-framework.org/)\n[![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white)](https://www.python.org/)\n[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)](https://www.docker.com/)\n\n\u003e **Plantilla profesional de Django** enfocada en enseñar y ejemplificar una **RESTful API avanzada** usando Django y Django REST Framework (DRF), con **arquitectura de código limpio**, inyección de dependencias, mejores estándares y documentación completa.\n\n## ⚡ Quick Start - Un Solo Comando\n\n### 🐳 Docker \"Todo en Uno\" (Recomendado)\n\n```bash\n# 1. Clona el repositorio\ngit clone \u003crepository-url\u003e\ncd django-restful-template\n\n# 2. Inicia con datos de prueba (recomendado para testing)\n./start.sh --with-test-data\n\n# O inicia con base de datos limpia\n./start.sh --clean\n\n# En Windows\nstart.bat --with-test-data\n```\n\n**¡Eso es todo!** 🎉 En pocos minutos tendrás:\n\n- 🌐 **API completa**: http://localhost\n- 📊 **Monitoreo Celery**: http://localhost:5555 (admin/flower123)\n- 🐘 **PostgreSQL**: localhost:5432\n- 🔴 **Redis**: localhost:6379\n- 📚 **Swagger Docs**: http://localhost/api/docs/\n\n### 🏗️ Servicios Incluidos\n\n| Servicio       | Puerto | Descripción                   |\n| -------------- | ------ | ----------------------------- |\n| **Nginx**      | 80/443 | Reverse proxy + Static files  |\n| **Django**     | 8000   | API REST principal            |\n| **WebSocket**  | 8001   | Notificaciones en tiempo real |\n| **PostgreSQL** | 5432   | Base de datos principal       |\n| **Redis**      | 6379   | Cache + Message broker        |\n| **Celery**     | -      | Tareas asíncronas             |\n| **Flower**     | 5555   | Monitoreo de Celery           |\n\n## 🎯 Características Principales\n\n### ✅ **Arquitectura Limpia Implementada**\n\n- **Domain Layer**: Entidades de negocio y reglas de dominio\n- **Application Layer**: Casos de uso y servicios de aplicación\n- **Infrastructure Layer**: Implementaciones de bases de datos y servicios externos\n- **Presentation Layer**: APIs REST, serializers y views\n- **Shared Layer**: Código compartido y utilidades\n\n### 🔔 **Sistema de Notificaciones en Tiempo Real**\n\n- **WebSocket** con Django Channels\n- **Celery** para tareas asíncronas\n- **Redis** como message broker\n- Notificaciones push y por email\n- Dashboard de administración\n\n### 🔐 **Sistema de Autenticación Avanzado**\n\n- Modelo de usuario personalizado con UUID\n- Autenticación JWT con refresh tokens\n- Múltiples roles de usuario (Admin, Carrier, Logistics, Customer)\n- 2FA (preparado para implementar)\n- Password reset y verificación de email\n- Gestión de sesiones y seguridad\n\n### 🚛 **Sistema Logístico Completo**\n\n- **Vehículos**: CRUD completo con especificaciones técnicas\n- **Subastas**: Sistema de pujas en tiempo real\n- **Mantenimiento**: Historial y programación\n- **Tracking**: Ubicaciones GPS y rutas\n- **Documentos**: Gestión de archivos y certificados\n\n### 🌐 **API RESTful Profesional**\n\n- Endpoints completamente documentados\n- Paginación y filtros avanzados\n- Rate limiting y throttling\n- Versionado de API\n- Validación robusta de datos\n- Error handling consistente\n\n### 📚 **Documentación Automática**\n\n- **Swagger UI** interactivo (`/api/docs/`)\n- **ReDoc** elegante (`/api/redoc/`)\n- **OpenAPI 3.0** Schema (`/api/schema/`)\n- Ejemplos de código y testing\n\n### 🏥 **Monitoring y Health Checks**\n\n- Multiple endpoints de salud\n- Logging estructurado\n- Error tracking con UUIDs\n- Métricas de performance\n\n## 🚀 Opciones de Instalación\n\n### Opción 1: Docker (Recomendado) 🐳\n\nEl método más fácil es usar Docker. Todo está preconfigurado:\n\n```bash\n# Clonar repositorio\ngit clone \u003crepository-url\u003e\ncd django-restful-template\n\n# Iniciar con datos de prueba\n./start.sh --with-test-data     # Linux/Mac\nstart.bat --with-test-data      # Windows\n\n# O iniciar con BD limpia\n./start.sh --clean\n```\n\n### Opción 2: Desarrollo Local 💻\n\nSi prefieres desarrollo local sin Docker:\n\n```bash\n# 1. Clonar y configurar entorno\ngit clone \u003crepository-url\u003e\ncd django-restful-template\npython -m venv venv\nsource venv/bin/activate  # Linux/Mac\n# venv\\Scripts\\activate   # Windows\npip install -r requirements.txt\n\n# 2. Configurar variables de entorno\ncp .env.example .env\n# Editar .env con tu configuración\n\n# 3. Configurar servicios externos\n# Instalar PostgreSQL y Redis localmente\n# O usar Docker solo para estos servicios:\ndocker run -d --name postgres -p 5432:5432 -e POSTGRES_DB=logistics_db postgres:15\ndocker run -d --name redis -p 6379:6379 redis:7-alpine\n\n# 4. Inicializar BD\npython manage.py wait_for_db\npython manage.py migrate\npython manage.py setup_initial_data  # Datos de prueba\n\n# 5. Ejecutar servicios\n# Terminal 1: Django\npython manage.py runserver\n\n# Terminal 2: Celery Worker\ncelery -A config worker -l info\n\n# Terminal 3: Celery Beat\ncelery -A config beat -l info\n\n# Terminal 4: WebSocket (opcional)\ndaphne -p 8001 config.asgi:application\n```\n\n## 🔧 Comandos de Gestión\n\n### Scripts de Inicio Rápido\n\n```bash\n# Datos de prueba vs limpio\n./start.sh --with-test-data    # Con usuarios, vehículos, subastas de ejemplo\n./start.sh --clean             # Solo estructura de BD\n\n# Opciones adicionales\n./start.sh --build             # Rebuild containers\n./start.sh --stop              # Parar todos los servicios\n./start.sh --logs              # Ver logs en tiempo real\n```\n\n### Comandos Docker\n\n```bash\n# Ver estado de servicios\ndocker-compose ps\n\n# Ver logs específicos\ndocker-compose logs web\ndocker-compose logs celery\ndocker-compose logs flower\n\n# Ejecutar comandos Django\ndocker-compose exec web python manage.py shell\ndocker-compose exec web python manage.py migrate\ndocker-compose exec web python manage.py test\n\n# Acceder a contenedor\ndocker-compose exec web bash\n```\n\n### Desarrollo y Testing\n\n```bash\n# Ejecutar tests\ndocker-compose exec web python manage.py test\n\n# Linter y formato\ndocker-compose exec web flake8\ndocker-compose exec web black .\n\n# Crear nueva app\ndocker-compose exec web python manage.py startapp nueva_app\n```\n\n# Modo desarrollo\n\npython manage.py runserver\n\n# Verificar funcionamiento\n\npython demo_api.py\n\n````\n\n### 5. **Explorar la API**\n\n- 🏠 **Admin Panel**: http://127.0.0.1:8000/admin/\n- 📖 **Swagger UI**: http://127.0.0.1:8000/api/docs/\n- 📘 **ReDoc**: http://127.0.0.1:8000/api/redoc/\n- 🔍 **Health Check**: http://127.0.0.1:8000/health/\n- 🌐 **API Root**: http://127.0.0.1:8000/api/v1/\n\n## 🐳 Docker Setup\n\n```bash\n# Ejecutar con Docker Compose\ndocker-compose up --build\n\n# En background\ndocker-compose up -d\n\n# Ver logs\ndocker-compose logs -f\n````\n\n## 👤 Usuarios de Prueba\n\nEl comando `setup_initial_data` crea usuarios de ejemplo:\n\n| Email                     | Rol       | Password         |\n| ------------------------- | --------- | ---------------- |\n| admin@example.com         | Superuser | (auto-generated) |\n| transportista@example.com | Carrier   | transport123     |\n| operador@example.com      | Logistics | operator123      |\n| cliente@example.com       | Customer  | client123        |\n\n## 📁 Estructura del Proyecto\n\n```\ndjango-restful-template/\n├── 📱 apps/                    # Aplicaciones Django\n│   ├── authentication/        # Sistema de autenticación\n│   ├── users/                 # Gestión de usuarios\n│   ├── vehicles/              # CRUD de vehículos\n│   ├── auctions/              # Sistema de subastas\n│   └── notifications/         # Notificaciones\n├── ⚙️ config/                  # Configuración\n│   ├── settings/              # Settings por ambiente\n│   ├── urls.py               # URL routing principal\n│   └── celery.py             # Configuración Celery\n├── 🔧 shared/                  # Código compartido\n│   ├── domain/               # Excepciones de dominio\n│   └── infrastructure/       # Infraestructura común\n├── 📚 docs/                    # Documentación\n├── 🐳 docker-compose.yml       # Docker Compose\n├── 📋 requirements.txt         # Dependencias Python\n└── 🚀 demo_api.py             # Script de demostración\n```\n\n## 🔧 Comandos Útiles\n\n```bash\n# 🔍 Verificar el proyecto\npython manage.py check\n\n# 📊 Ver todas las URLs\npython manage.py show_urls\n\n# 🧪 Ejecutar tests\npython manage.py test\n\n# 📝 Crear migraciones\npython manage.py makemigrations\n\n# 🔄 Aplicar migraciones\npython manage.py migrate\n\n# 📁 Colectar archivos estáticos\npython manage.py collectstatic\n\n# 💬 Shell interactivo\npython manage.py shell\n```\n\n## 🌟 Casos de Uso\n\nEste template es ideal para:\n\n- 🚛 **Sistemas Logísticos**: Gestión de flotas y transporte\n- 🏪 **Marketplaces**: Plataformas de compra/venta\n- 🔄 **Sistemas de Subastas**: Pujas en tiempo real\n- 📱 **APIs Backend**: Para aplicaciones móviles/web\n- 🏢 **ERPs**: Sistemas de gestión empresarial\n- 🎓 **Proyectos Educativos**: Aprender Django + DRF\n\n## 🛠️ Tecnologías\n\n### Backend\n\n- **Django 4.2+**: Framework web principal\n- **Django REST Framework**: API REST\n- **Simple JWT**: Autenticación JWT\n- **drf-spectacular**: Documentación OpenAPI\n\n### Base de Datos\n\n- **SQLite**: Desarrollo (incluido)\n- **PostgreSQL**: Producción (recomendado)\n- **MySQL**: Alternativa soportada\n\n### DevOps\n\n- **Docker \u0026 Docker Compose**: Containerización\n- **WhiteNoise**: Servir archivos estáticos\n- **python-decouple**: Variables de entorno\n\n### Desarrollo\n\n- **django-debug-toolbar**: Debug en desarrollo\n- **django-extensions**: Comandos útiles\n- **django-cors-headers**: CORS para frontend\n\n## 📈 Roadmap\n\n### ✅ Completado (v1.0)\n\n- [x] Arquitectura limpia implementada\n- [x] Sistema de usuarios y autenticación\n- [x] CRUD de vehículos completo\n- [x] Sistema de subastas básico\n- [x] API REST documentada\n- [x] Panel administrativo\n- [x] Health checks y monitoring\n- [x] Docker setup\n\n### 🔄 En Progreso (v1.1)\n\n- [ ] WebSocket con Django Channels\n- [ ] Notificaciones en tiempo real\n- [ ] Tests de cobertura completa\n- [ ] CI/CD pipeline\n\n### 🎯 Futuro (v2.0)\n\n- [ ] Cache con Redis\n- [ ] Celery para tareas asíncronas\n- [ ] Elasticsearch para búsqueda\n- [ ] GraphQL endpoint\n- [ ] Métricas con Prometheus\n\n## 🤝 Contribuir\n\n¡Las contribuciones son bienvenidas! Por favor:\n\n1. Fork el proyecto\n2. Crea una rama para tu feature (`git checkout -b feature/AmazingFeature`)\n3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`)\n4. Push a la rama (`git push origin feature/AmazingFeature`)\n5. Abre un Pull Request\n\n## 📄 Licencia\n\nEste proyecto está bajo la Licencia MIT. Ver [LICENSE](LICENSE) para más detalles.\n\n## 🆘 Soporte\n\n- 📧 **Email**: support@example.com\n- 🐛 **Issues**: [GitHub Issues](https://github.com/tu-usuario/django-restful-template/issues)\n- 📖 **Docs**: [Documentation](./docs/)\n- 💬 **Discussions**: [GitHub Discussions](https://github.com/tu-usuario/django-restful-template/discussions)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**¡Template listo para producción!** 🎉\n\n[![GitHub stars](https://img.shields.io/github/stars/tu-usuario/django-restful-template?style=social)](https://github.com/tu-usuario/django-restful-template)\n[![GitHub forks](https://img.shields.io/github/forks/tu-usuario/django-restful-template?style=social)](https://github.com/tu-usuario/django-restful-template/fork)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsazardev%2Fdjango-restful-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsazardev%2Fdjango-restful-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsazardev%2Fdjango-restful-template/lists"}