Shopfinity
Bienvenido a Shopfinity , una aplicación de comercio electrónico avanzada creada con las últimas tecnologías. Shopfinity ofrece una solución integral para compras en línea, que incluye autenticación de usuarios, gestión de productos, procesamiento de pagos y un panel de administración intuitivo.
Características
- Next.js 14 : utiliza el enrutador de aplicaciones más reciente y las funciones de Next.js para aplicaciones web rápidas, compatibles con SEO y renderizadas en el lado del servidor.
- MongoDB : una base de datos NoSQL para almacenamiento y recuperación de datos eficiente.
- Auth.js (Next-Auth) : Soluciones de autenticación seguras y escalables.
- Stripe : Pasarela de pago integrada para gestionar transacciones.
- Panel de administración : administre productos, pedidos y usuarios sin problemas.
- Diseño responsivo : garantiza una excelente experiencia de usuario en todos los dispositivos.
- Recopilación de direcciones de envío : recopile y administre los detalles de envío con facilidad.
- Tailwind CSS : para un estilo eficiente y personalizable.
Empezando
Requisitos previos
- Node.js (v14.x o posterior)
- npm (v6.x o posterior) o hilo (v1.x o posterior)
- Instancia de MongoDB
- Cuenta de Stripe y claves API
Instalación
Clonar el repositorio
git clone https://github.com/yourusername/shopfinity.git
cd shopfinity
Instalar dependencias
npm install
# or
yarn install
Variables de entorno
Cree un archivo .env.local
en el directorio raíz y agregue las siguientes variables de entorno:
MONGODB_URI=your_mongodb_connection_string
AUTH_SECRET=your_auth_secret
AUTH_GITHUB_ID=your_github_client_id
AUTH_GITHUB_SECRET=your_github_client_secret
AUTH_GOOGLE_ID=your_google_client_id
AUTH_GOOGLE_SECRET=your_google_client_secret
NEXT_STRIPE_SECRET_KEY=your_stripe_secret_key
NEXT_STRIPE_PUBLIC_KEY=your_stripe_public_key
STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret
RESEND_API_KEY=your_resend_api_key
NEXT_ADMIN_EMAIL=your_admin_email
AUTH_TRUST_HOST=true
Ejecute el servidor de desarrollo
npm run dev
# or
yarn dev
Abra http://localhost:3000 con su navegador para ver el resultado.
Estructura del proyecto
- /app : Contiene todas las rutas.
- /components : componentes reutilizables de React.
- /lib : Configuración para MongoDB, Stripe y autenticación.
- /lib/models : Modelos de mangosta para MongoDB.
- /utils : Funciones de utilidad.
Uso
Autenticación
- Los usuarios pueden registrarse e iniciar sesión utilizando su correo electrónico o proveedores externos (Google, GitHub, etc.).
- Los usuarios autenticados pueden acceder a sus perfiles, historial de pedidos y más.
Panel de administración
- Accesible solo para usuarios con privilegios de administrador.
- Administrar productos: agregue, edite o elimine productos.
- Administrar pedidos: ver los detalles del pedido, actualizar el estado del pedido.
- Administrar usuarios: vea información de usuarios, asigne roles de administrador.
Pagos
- Integrado con Stripe para procesamiento de pagos seguro.
- Los usuarios pueden agregar artículos al carrito y proceder al pago.
- Recogida de la dirección de envío durante el pago.
CSS de viento de cola
- Tailwind CSS se utiliza para diseñar. Puede personalizar los estilos editando el archivo
tailwind.config.js
y agregando sus clases CSS personalizadas en el archivo styles/globals.css
.
Contribuyendo
¡Agradecemos las contribuciones! Siga estos pasos para contribuir:
- Bifurca el repositorio.
- Crea una nueva rama (
git checkout -b feature/your-feature
). - Haz tus cambios.
- Confirme sus cambios (
git commit -am 'Add new feature'
). - Empuje a la rama (
git push origin feature/your-feature
). - Crea una nueva solicitud de extracción.
Licencia
Este proyecto está bajo la licencia MIT. Consulte el archivo de LICENCIA para obtener más detalles.
Expresiones de gratitud
- Siguiente.js
- MongoDB
- Auth.js (siguiente autenticación)
- Raya
- CSS de viento de cola
Demostración en vivo
Vea la demostración en vivo de Shopfinity aquí.
No dude en personalizar este archivo README.md
según los requisitos específicos de su proyecto. ¡Disfruta construyendo con Shopfinity!