https://github.com/jaolmos/redimensiona-django
Aplicación web en Django para redimensionar imágenes | Django 5 · Redis · Celery · MySQL · Pillow | Procesamiento asíncrono y vista previa en tiempo real
https://github.com/jaolmos/redimensiona-django
backend celery django python
Last synced: about 2 months ago
JSON representation
Aplicación web en Django para redimensionar imágenes | Django 5 · Redis · Celery · MySQL · Pillow | Procesamiento asíncrono y vista previa en tiempo real
- Host: GitHub
- URL: https://github.com/jaolmos/redimensiona-django
- Owner: Jaolmos
- Created: 2025-03-15T18:37:04.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-16T12:19:45.000Z (over 1 year ago)
- Last Synced: 2026-01-29T23:59:47.696Z (5 months ago)
- Topics: backend, celery, django, python
- Language: Python
- Homepage:
- Size: 63.7 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Redimensiona 🖼️
Redimensiona es una aplicación web desarrollada con Django que permite a los usuarios redimensionar imágenes de forma inteligente, manteniendo la calidad y las proporciones originales. Ideal para optimizar imágenes para web, redes sociales o cualquier uso específico.
## ✨ Características Principales
- **Procesamiento Inteligente**
- Redimensionamiento manteniendo proporciones
- Vista previa en tiempo real
- Cálculo automático de dimensiones
- Procesamiento asíncrono
- Múltiples formatos soportados
- **Sistema de Usuarios**
- Registro de usuarios
- Autenticación segura
- Perfiles personalizados
- Historial de procesamiento
- Gestión de sesiones
- **Planes Gratuitos**
- Plan sin registro:
• 3 imágenes gratuitas
• Hasta 2MB por imagen
• Proceso instantáneo
• Sin necesidad de cuenta
- Plan con registro:
• Imágenes ilimitadas
• Hasta 20MB por imagen
• Acceso permanente
• Historial de imágenes
## 📸 Capturas de Pantalla
### Vista Previa de la Aplicación
#### Página Principal

*Página de inicio donde los usuarios pueden subir y redimensionar imágenes*
#### Panel de Control

*Dashboard donde los usuarios pueden gestionar sus imágenes procesadas*
#### Resultados

*Vista de resultados mostrando la imagen procesada y sus miniaturas*
## 🛠️ Tecnologías
### Backend
- Django 5
- Celery (procesamiento asíncrono)
- Redis (message broker)
- MySQL
- Pillow (procesamiento de imágenes)
### Frontend
- HTML5
- CSS3 (diseño personalizado)
- JavaScript vanilla
- Diseño responsive
- Animaciones y transiciones
### Características Técnicas
- Procesamiento asíncrono con Celery
- Sistema de colas con Redis
- Base de datos MySQL
- Almacenamiento optimizado de imágenes
## 📂 Estructura del Proyecto
```
redimensiona/
├── apps/
│ ├── core/ # Funcionalidad principal
│ ├── images/ # Procesamiento de imágenes
│ └── users/ # Gestión de usuarios
├── config/ # Configuración del proyecto
├── static/
│ ├── css/ # Estilos
│ ├── img/ # Imágenes estáticas
│ └── js/ # Scripts
│ ├── preview.js # Vista previa de imágenes
│ └── lightbox.js # Visualización de imágenes
├── media/ # Archivos subidos (no versionado)
├── .env # Variables de entorno (no versionado)
├── .env.example # Ejemplo de variables de entorno
├── .gitignore # Configuración de Git
├── manage.py # Script de gestión de Django
├── README.md # Documentación del proyecto
└── requirements.txt # Dependencias del proyecto
```
> **Nota**: El directorio `media/` no se incluye en el control de versiones ya que contiene archivos subidos por los usuarios.
## ⚙️ Instalación
### 1. Clonar el repositorio
```bash
git clone https://github.com/Jaolmos/redimensiona-django.git
cd redimensiona
```
### 2. Crear y activar entorno virtual
```bash
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
pip install -r requirements.txt
```
### 3. Configurar variables de entorno
```bash
cp .env.example .env
```
Editar `.env` con tus configuraciones:
```
# Configuración de Django
DEBUG=True
SECRET_KEY=tu_clave_secreta
# Configuración de la base de datos
DB_NAME=redimensiona_db
DB_USER=tu_usuario
DB_PASSWORD=tu_contraseña
# Configuración de Redis y Celery
REDIS_USERNAME=tu_usuario_redis
REDIS_PASSWORD=tu_contraseña_redis
```
### 4. Configurar la base de datos
```bash
python manage.py migrate
```
### 5. Iniciar servicios
```bash
# Terminal 1: Django
python manage.py runserver
# Terminal 2: Celery
# En Linux/Mac:
celery -A redimensiona worker -l info
# En Windows:
celery -A config worker --pool=solo -l INFO
```
## 🚀 Planes Futuros
- Más opciones de procesamiento
- Filtros y efectos
- API REST
- Integración con servicios cloud
- Sistema de pagos para planes premium
## 🎨 Características de Diseño
- Interfaz moderna y minimalista
- Tema claro con acentos de color
- Animaciones suaves
- Feedback visual inmediato
- Diseño totalmente responsive
## 🛠️ Requisitos del Sistema
- Python 3.8+
- MySQL 5.7+
- Redis
- Navegador moderno (Chrome, Firefox, Safari, Edge)
## 🔐 Características de Seguridad
- Validación de tipos de archivo
- Límites de tamaño configurables
- Protección CSRF
- Autenticación segura
- Procesamiento aislado de archivos
## 📋 Buenas Prácticas y Patrones de Diseño
### Arquitectura y Organización
- Separación clara de responsabilidades (patrón MVT de Django)
- Estructura modular por aplicaciones Django
- Configuración separada por entornos
- Sistema de plantillas heredables
### Código Limpio
- Nomenclatura clara y consistente
- Documentación de funciones y clases
- Código DRY (Don't Repeat Yourself)
- Tipado de datos consistente
### Optimización y Rendimiento
- Procesamiento asíncrono de tareas pesadas
- Caché de resultados frecuentes
- Optimización de consultas a base de datos
- Carga diferida de recursos
### Control de Versiones
- Commits semánticos
- Ramas separadas por funcionalidad
- Documentación de cambios
- Archivos de configuración versionados