Skip to content

Commit 197683a

Browse files
committed
readme
1 parent 66914dc commit 197683a

1 file changed

Lines changed: 205 additions & 0 deletions

File tree

README.md

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
# 🚀 Proyecto Django + PostgreSQL + Docker
2+
Modern Dev Edition
3+
4+
![Status](https://img.shields.io/badge/status-active-success)
5+
![Python](https://img.shields.io/badge/Python-3.11-blue)
6+
![Django](https://img.shields.io/badge/Django-4.2-green)
7+
![Docker](https://img.shields.io/badge/Docker-Ready-blue)
8+
![PostgreSQL](https://img.shields.io/badge/Postgres-15-lightblue)
9+
![License](https://img.shields.io/badge/license-MIT-yellow)
10+
11+
---
12+
13+
# 📚 Tabla de Contenido
14+
- [📦 Sobre el Proyecto](#-sobre-el-proyecto)
15+
- [⚙️ Stack Tecnológico](#️-stack-tecnológico)
16+
- [🧱 Arquitectura](#-arquitectura)
17+
- [🐳 Docker Compose Overview](#-docker-compose-overview)
18+
- [🚀 Instalación](#-instalación)
19+
- [🧪 Uso](#-uso)
20+
- [📡 Endpoints API](#-endpoints-api)
21+
- [🗂 Estructura del Proyecto](#-estructura-del-proyecto)
22+
- [🔧 Troubleshooting](#-troubleshooting)
23+
- [🗺 Roadmap](#-roadmap)
24+
- [📄 Licencia](#-licencia)
25+
26+
---
27+
28+
# 📦 Sobre el Proyecto
29+
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.
30+
31+
💡 Perfecto para **bootcamps**, **entrevistas técnicas**, **prototipos** y **proyectos base**.
32+
33+
---
34+
35+
# ⚙️ Stack Tecnológico
36+
- **Django 4.2**
37+
- **Python 3.11**
38+
- **Django REST Framework**
39+
- **PostgreSQL 15**
40+
- **Docker & Docker Compose**
41+
- **Mermaid Diagrams**
42+
- **Volúmenes persistentes**
43+
44+
---
45+
46+
# 🧱 Arquitectura
47+
48+
## 🔷 Arquitectura General
49+
```mermaid
50+
graph TD
51+
A[Cliente / Navegador] -->|HTTP| B(Django API)
52+
B -->|ORM| C[(PostgreSQL)]
53+
B --> D[Volumen del Código]
54+
C --> E[Volumen Persistente]
55+
```
56+
57+
## 🔷 Flujo de Autenticación
58+
```mermaid
59+
sequenceDiagram
60+
participant U as Usuario
61+
participant A as API Django
62+
participant DB as Base de Datos
63+
U->>A: POST /api/users/login/
64+
A->>DB: Validar credenciales
65+
DB-->>A: Usuario válido
66+
A-->>U: Respuesta con sesión
67+
```
68+
69+
---
70+
71+
# 🐳 Docker Compose Overview
72+
```yaml
73+
services:
74+
db:
75+
image: postgres:15-alpine
76+
environment:
77+
POSTGRES_DB: django_db
78+
POSTGRES_USER: django_user
79+
POSTGRES_PASSWORD: django_pass
80+
81+
web:
82+
build: .
83+
command: python manage.py runserver 0.0.0.0:8000
84+
volumes:
85+
- .:/app
86+
ports:
87+
- "8000:8000"
88+
depends_on:
89+
- db
90+
```
91+
92+
---
93+
94+
# 🚀 Instalación
95+
96+
### 1️⃣ Clonar el repositorio
97+
```bash
98+
git clone https://github.com/tuusuario/django-docker-postgres.git
99+
cd django-docker-postgres
100+
```
101+
102+
### 2️⃣ Construir contenedores
103+
```bash
104+
docker-compose build
105+
```
106+
107+
### 3️⃣ Inicializar proyecto (solo primera vez)
108+
```bash
109+
docker-compose run --rm web django-admin startproject myproject .
110+
docker-compose run --rm web python manage.py startapp users
111+
```
112+
113+
### 4️⃣ Migraciones
114+
```bash
115+
docker-compose run --rm web python manage.py migrate
116+
```
117+
118+
### 5️⃣ Crear superusuario
119+
```bash
120+
docker-compose run --rm web python manage.py createsuperuser
121+
```
122+
123+
---
124+
125+
# 🧪 Uso
126+
127+
### Ejecutar el proyecto:
128+
```bash
129+
docker-compose up
130+
```
131+
132+
### Acceder:
133+
- API → http://localhost:8000/api/users/
134+
- Admin → http://localhost:8000/admin/
135+
136+
---
137+
138+
# 📡 Endpoints API
139+
140+
| Método | Endpoint | Descripción |
141+
|--------|----------|-------------|
142+
| POST | `/api/users/` | Crear usuario |
143+
| GET | `/api/users/` | Listar usuarios |
144+
| POST | `/api/users/login/` | Autenticar |
145+
| GET | `/api/users/me/` | Perfil logueado |
146+
| POST | `/api/users/change_password/` | Cambiar contraseña |
147+
| POST | `/api/users/logout/` | Cerrar sesión |
148+
149+
---
150+
151+
# 🗂 Estructura del Proyecto
152+
```
153+
proyecto/
154+
├── docker-compose.yml
155+
├── Dockerfile
156+
├── requirements.txt
157+
├── myproject/
158+
│ ├── settings.py
159+
│ ├── urls.py
160+
│ └── wsgi.py
161+
└── users/
162+
├── models.py
163+
├── views.py
164+
├── serializers.py
165+
└── urls.py
166+
```
167+
168+
---
169+
170+
# 🔧 Troubleshooting
171+
172+
### ❗ Base de datos no disponible
173+
```bash
174+
docker-compose logs db
175+
```
176+
177+
### ❗ Cambios no aparecen en el servidor
178+
```bash
179+
docker-compose restart web
180+
```
181+
182+
### ❗ Limpiar entorno Docker
183+
```bash
184+
docker system prune -a
185+
docker volume prune
186+
```
187+
188+
---
189+
190+
# 🗺 Roadmap
191+
- [ ] Integrar JWT
192+
- [ ] Añadir Nginx + Gunicorn
193+
- [ ] Tests unitarios (pytest + DRF)
194+
- [ ] CI/CD con GitHub Actions
195+
- [ ] Documentación con Swagger/OpenAPI
196+
197+
---
198+
199+
# 📄 Licencia
200+
Este proyecto está bajo licencia **MIT**.
201+
202+
---
203+
204+
¡Gracias por revisar este proyecto!
205+
Si quieres que genere un *badge wall*, *GIF animado*, *diagrama adicional* o *versión en inglés*, solo dímelo. 😊

0 commit comments

Comments
 (0)