Skip to content

Latest commit

 

History

History
202 lines (161 loc) · 4.26 KB

File metadata and controls

202 lines (161 loc) · 4.26 KB

🚀 Proyecto Django + PostgreSQL + Docker

Modern Dev Edition

Status Python Django Docker PostgreSQL License


📚 Tabla de Contenido


📦 Sobre el Proyecto

Este proyecto demuestra cómo crear un entorno Django + PostgreSQL completamente dockerizado, listo para desarrollo, con una API de usuarios basada en Django REST Framework.

💡 Perfecto para bootcamps, entrevistas técnicas, prototipos y proyectos base.


⚙️ Stack Tecnológico

  • Django 4.2
  • Python 3.11
  • Django REST Framework
  • PostgreSQL 15
  • Docker & Docker Compose
  • Mermaid Diagrams
  • Volúmenes persistentes

🧱 Arquitectura

🔷 Arquitectura General

graph TD
    A[Cliente / Navegador] -->|HTTP| B(Django API)
    B -->|ORM| C[(PostgreSQL)]
    B --> D[Volumen del Código]
    C --> E[Volumen Persistente]
Loading

🔷 Flujo de Autenticación

sequenceDiagram
    participant U as Usuario
    participant A as API Django
    participant DB as Base de Datos
    U->>A: POST /api/users/login/
    A->>DB: Validar credenciales
    DB-->>A: Usuario válido
    A-->>U: Respuesta con sesión
Loading

🐳 Docker Compose Overview

services:
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: django_db
      POSTGRES_USER: django_user
      POSTGRES_PASSWORD: django_pass

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/app
    ports:
      - "8000:8000"
    depends_on:
      - db

🚀 Instalación

1️⃣ Clonar el repositorio

git clone https://github.com/tuusuario/django-docker-postgres.git
cd django-docker-postgres

2️⃣ Construir contenedores

docker-compose build

3️⃣ Inicializar proyecto (solo primera vez)

docker-compose run --rm web django-admin startproject myproject .
docker-compose run --rm web python manage.py startapp users

4️⃣ Migraciones

docker-compose run --rm web python manage.py migrate

5️⃣ Crear superusuario

docker-compose run --rm web python manage.py createsuperuser

🧪 Uso

Ejecutar el proyecto:

docker-compose up

Acceder:


📡 Endpoints API

Método Endpoint Descripción
POST /api/users/ Crear usuario
GET /api/users/ Listar usuarios
POST /api/users/login/ Autenticar
GET /api/users/me/ Perfil logueado
POST /api/users/change_password/ Cambiar contraseña
POST /api/users/logout/ Cerrar sesión

🗂 Estructura del Proyecto

proyecto/
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── myproject/
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── users/
    ├── models.py
    ├── views.py
    ├── serializers.py
    └── urls.py

🔧 Troubleshooting

❗ Base de datos no disponible

docker-compose logs db

❗ Cambios no aparecen en el servidor

docker-compose restart web

❗ Limpiar entorno Docker

docker system prune -a
docker volume prune

🗺 Roadmap

  • Integrar JWT
  • Añadir Nginx + Gunicorn
  • Tests unitarios (pytest + DRF)
  • CI/CD con GitHub Actions
  • Documentación con Swagger/OpenAPI

📄 Licencia

Este proyecto está bajo licencia MIT.