Sobre este proyecto
it-programming / web-development
Abierto
Contexto general del proyecto
Funcionalidades Principales a Desarrollar (Backend): Autenticación y Gestión de Usuarios (Base iniciada, requiere completar y refinar): Registro/Login con JWT (Comprador, Vendedor Individual, Agente, Admin Empresa). Perfil de usuario (/me), recuperación de contraseña (opcional). Middlewares protect (autenticación) y authorize (roles). CRUD de usuarios para el Administrador del Sitio. Gestión de Datos Maestros (Marcas, Modelos, Versiones, Ubicaciones): Modelos: Definir schemas Mongoose para Make, Model, Version, Country, Region, City (con sus respectivos códigos y nombres). Endpoints API (para Admin y selectores del frontend): get /api/makes, get /api/models?makeid=:makeid, get /api/versions?modelid=:modelid&year=:year get /api/countries, get /api/regions?countrycode=:countrycode, get /api/cities?regioncode=:regioncode crud completo para admin del sitio: para gestionar todos estos datos maestros. Scripts de Seed: Para poblar inicialmente estas colecciones (ej. Países, marcas comunes). Gestión de Autos (CRUD Completo y Avanzado): Modelo Car (Actualizado): Referencias a makeId, modelId, versionId. Location con countryCode, regionCode, cityCode, addressLine1, zipCode, coordinates (opcional). Campos estándar: año, precio, kilometraje, VIN, descripción, customFeatures, imágenes, estado, listedBy, companyId, contactInfo, views, isFeatured. Endpoints api: post /api/cars: crear auto (payload con ids/códigos de datos maestros). Manejo de subida de múltiples imágenes (Cloudinary/S3). GET /api/cars: Listar autos con: Paginación robusta. Filtros múltiples y combinables: makeId, modelId, versionId, rango de year, rango de price, countryCode, regionCode, cityCode, tipo de vehículo (ej. Sedán, SUV - podría derivarse de Version.bodyStyle o ser un campo aparte), tipo de vendedor (individual, empresa), combustible, transmisión, etc. (Similar a los filtros de Chileautos). Ordenamiento por diversos criterios. Populamiento/agregación de nombres de marca, modelo, ubicación para eficiencia del frontend. GET /api/cars/:id: Detalle del auto (incrementar vistas). PUT /api/cars/:id: Actualizar auto. DELETE /api/cars/:id: Eliminar auto. GET /api/cars/user/:userId y GET /api/cars/company/:companyId. Endpoint para categorías en Homepage: GET /api/cars/categorized?category=SUVs&limit=10 o similar para obtener autos para las "filas tipo Netflix" (ej. "Recién Agregados", "SUVs Populares", "Sedanes Económicos"). La lógica de qué define una categoría puede ser por bodyStyle, isFeatured, o criterios combinados. Gestión de Empresas de Ventas (CRUD Completo): Modelo Company: Campos estándar, lista de agents (IDs de usuario). Endpoints para CRUD de empresas, y gestión de agentes por parte del admin_empresa. Panel de Administración del Sitio (Backend Support): Endpoints para que el admin_sitio gestione usuarios, autos, empresas y todos los datos maestros. Stack Tecnológico Requerido: Node.js, Express.js, MongoDB con Mongoose JWT, bcryptjs, Multer, (Cloudinary sdk o aws sdk) habilidad para diseñar esquemas eficientes y consultas optimizadas en mongodb (uso de índices, agregaciones). Entregables Esperados: Código fuente backend completo, bien estructurado, comentado y versionado en Git. Colección Postman/Insomnia exhaustiva. Documentación de API clara. Scripts de seed para datos maestros y datos de prueba. Consideraciones Adicionales: Se trabajará sobre una base de código con autenticación iniciada. Prioridad en la seguridad, rendimiento y escalabilidad de la API. Presupuesto y Plazo: Indicar tarifa/presupuesto y estimación de tiempo. ¡Esperamos tu propuesta para este emocionante proyecto!
Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Cambio mediano
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo No aplica
Disponibilidad requerida Según se necesite
Integraciones de API Social media (Facebook, Twitter, etc.)
Roles necesarios Programador
Plazo de Entrega: No definido
Habilidades necesarias