Sitio de Subastas es una aplicación web completa que permite a los usuarios participar en subastas en línea. Construida con Django, la plataforma ofrece una experiencia fluida para crear listas de subastas, realizar ofertas competitivas e interactuar con otros usuarios a través de comentarios y listas de seguimiento. La aplicación cuenta con un diseño responsivo que funciona en dispositivos de escritorio y móviles, con componentes de interfaz de usuario cuidadosamente diseñados y una experiencia de usuario moderna.
🔗 Ver Demo en Vivo (Reemplazar con la URL de despliegue real)
- Registro, inicio de sesión y cierre de sesión seguros.
- Navegación dinámica basada en el estado de autenticación.
- Gestión de perfiles de usuario.
- Protección de contraseñas y medidas de seguridad.
- Crea anuncios de subasta detallados con:
- Título y descripción.
- Monto de la oferta inicial.
- URL de imagen opcional.
- Selección de categoría opcional.
- Control del estado de los anuncios (activos/inactivos).
- Formularios intuitivos con validación.
- Navega por todas las subastas actualmente activas.
- Visualiza los detalles esenciales de los anuncios de un vistazo.
- Filtra los anuncios por categorías.
- Diseño de tarjetas responsivo para todos los tamaños de dispositivo.
- Visualización de información completa del anuncio.
- Oferta actual e historial de ofertas.
- Sección de comentarios de los usuarios.
- Botones de gestión de la lista de seguimiento.
- Funcionalidad de puja con validación.
- Mecanismo de cierre de subasta para los propietarios de los anuncios.
- Notificaciones al ganador.
- Colección personalizada de artículos de interés.
- Funcionalidad de añadir/eliminar con un solo clic.
- Acceso rápido a los artículos seguidos.
- Indicadores visuales para los artículos seguidos.
- Categorías de anuncios organizadas.
- Filtra los anuncios por categorías específicas.
- Navega por todas las categorías disponibles.
- Páginas específicas por categoría.
- Deja comentarios en cualquier anuncio.
- Visualiza todos los comentarios de los anuncios.
- Interacción con la comunidad.
- Información de autor y marca de tiempo.
- Panel de control de gestión integral.
- Control sobre todos los anuncios, ofertas y comentarios.
- Capacidades de gestión de usuarios.
- Funcionalidad de filtrado y búsqueda de datos.
- Backend: Django (Python) - Framework web robusto.
- Frontend: HTML, CSS, Bootstrap - Diseño responsivo.
- Base de Datos: SQLite (desarrollo), PostgreSQL (listo para producción).
- Autenticación: Sistema de autenticación incorporado de Django.
- Estilos: CSS personalizado con diseño responsivo, iconos de Font Awesome.
- Despliegue: Soporte para contenedores Docker.
- Control de Versiones: Git.
- Diseño Responsivo: Media queries y sistema de rejilla de Bootstrap.
- Componentes de UI: Tarjetas, navegación, formularios y alertas personalizadas.
- Python 3.10 o superior.
- Django 5.1.2 o superior.
- Paquetes de sistema requeridos (Ubuntu):
sudo apt update sudo apt install build-essential libpq-dev python3-dev
-
Clona el Repositorio
git clone https://github.com/sandovaldavid/project-02-auctions.git cd auction-site -
Instala las Dependencias
python -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate pip install -r requirements.txt
-
Aplica las Migraciones de la Base de Datos
python manage.py makemigrations python manage.py migrate
-
Crea un Superusuario
python manage.py createsuperuser
-
Ejecuta el Servidor de Desarrollo
python manage.py runserver
-
Accede a la Aplicación Abre http://localhost:8000 en tu navegador.
-
Construye y Ejecuta con Docker Compose
docker compose up --build
-
Accede a la Aplicación Abre http://localhost:8000 en tu navegador.
auctions/
├── migrations/ # Archivos de migración de la base de datos
├── templates/ # Plantillas HTML para la aplicación
│ ├── auctions/
│ │ ├── layout.html # Diseño base
│ │ ├── index.html # Página de anuncios activos
│ │ ├── create.html # Página para crear anuncios
│ │ ├── listing.html # Página de detalles del anuncio
│ │ ├── categories.html # Página de categorías
│ │ └── watchlist.html # Página de la lista de seguimiento
│ └── auctions/components/ # Componentes de UI reutilizables
│ ├── footer.html # Pie de página del sitio
│ └── ... # Otros componentes
├── static/ # Archivos CSS y JavaScript
│ ├── css/
│ │ ├── auctions/ # Estilos específicos de la página
│ │ ├── components/ # Estilos de los componentes
│ │ └── styles.css # Estilos base
│ └── js/ # Archivos JavaScript
├── models.py # Modelos de datos para la aplicación
├── views.py # Lógica de la aplicación y vistas
├── urls.py # Configuración de URLs
├── forms.py # Formularios de Django
├── context_processors.py # Procesadores de contexto personalizados
└── admin.py # Configuración de la interfaz de administración
-
Regístrate e Inicia Sesión
- Crea una nueva cuenta o inicia sesión para acceder a toda la funcionalidad.
- Navega a través de la interfaz responsiva.
-
Explora los Anuncios
- Explora la página de inicio para ver todas las subastas activas.
- Usa los filtros de categoría para encontrar artículos específicos.
-
Crea tu Propio Anuncio
- Haz clic en "Crear Anuncio" en el menú de navegación.
- Completa el formulario con los detalles de tu artículo.
- Publica tu subasta.
-
Realiza una Oferta
- Realiza ofertas en los anuncios activos.
- Monitorea tus ofertas activas.
- Recibe notificaciones si ganas una subasta.
-
Gestiona tu Lista de Seguimiento
- Añade artículos interesantes a tu lista de seguimiento.
- Elimina artículos según sea necesario.
- Accede rápidamente a tus artículos seguidos.
-
Interactúa con la Comunidad
- Deja comentarios en los anuncios.
- Interactúa con vendedores y otros postores.
- Diseño Responsivo: Optimizado para todos los tamaños de pantalla, desde móviles hasta ordenadores de escritorio.
- Modo Oscuro/Claro: Soporte para las preferencias de tema del sistema.
- Accesibilidad: Estados de foco y HTML semántico.
- Interfaz Moderna: Diseño limpio con espaciado y tipografía consistentes.
- Navegación Intuitiva: Rutas de usuario claras a través de la aplicación.
- Microinteracciones: Retroalimentación visual para las acciones del usuario.
Actualmente, la aplicación no expone APIs públicas, pero utiliza el enrutamiento de URLs de Django para toda la funcionalidad.
- Protección CSRF para todos los formularios.
- Hashing de contraseñas y autenticación segura.
- Validación de formularios para prevenir entradas maliciosas.
- Configuración del middleware de seguridad de Django.
- Actualizaciones en tiempo real con WebSockets para experiencias de puja en vivo.
- Opciones avanzadas de filtrado de anuncios (rango de precios, fecha de publicación).
- Sistema de notificaciones por correo electrónico para actualizaciones de ofertas y cierres de subastas.
- Mejoras en la responsividad móvil y UI/UX.
- Integración de pasarelas de pago para subastas finalizadas.
- Sistema de calificaciones y reseñas de usuarios.
- Funcionalidad de búsqueda mejorada con autocompletado.
- Integración para compartir en redes sociales.
¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.
- Haz un Fork del repositorio.
- Crea tu rama de características (
git checkout -b feature/amazing-feature). - Haz Commit de tus cambios (
git commit -m 'Añade una característica increíble'). - Haz Push a la rama (
git push origin feature/amazing-feature). - Abre un Pull Request.
Ejecuta la suite de pruebas para asegurarte de que todo funciona correctamente:
python manage.py testEste proyecto está bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
David Sandoval - @sandovaldavid
Enlace del Proyecto: https://github.com/sandovaldavid/project-02-auctions.git