Plataforma full stack de suscripciones estilo fintech desarrollada como práctica profesional. Implementa un backend RESTful con Node.js + Express + MongoDB y un frontend con Next.js, siguiendo una arquitectura modular escalable. El proyecto incluye autenticación con JWT, integración simulada con Stripe, notificaciones por email y una UI estilizada con Tailwind CSS.
- Backend: Node.js, Express, MongoDB, Mongoose, JWT, Nodemailer
- Frontend: React 19 con Next.js (Pages Router), Tailwind CSS 4.1
- DevOps: Docker (Dockerfiles para frontend y backend)
- Simulaciones: Integración conceptual con Stripe (checkout y lógica de suscripciones)
- Registro de usuario con validación y almacenamiento seguro (bcrypt)
- Inicio de sesión y generación de token JWT
- Perfil con datos personales y estado de suscripción
- Visualización de planes disponibles (desde backend dinámico con MongoDB)
- Suscripción a plan (simulada o integrable con Stripe Checkout)
- Cancelación de suscripción desde el perfil
- Visualización de estado actual de la suscripción
- Envío automático de email de bienvenida tras suscripción (Nodemailer + Gmail/Mailtrap)
- TailwindCSS personalizado en tonos rosa pastel y estilo cute/romántico
- Experiencia mobile-friendly
- Mensajes de éxito y error visuales (sin
alert, con transiciones suaves y centrado)
git clone https://github.com/tuusuario/fintech-subscriptions.git
cd fintech-subscriptionscd backend
npm installcd ../frontend
npm installCrear los archivos .env y .env.local en backend/ y frontend/ respectivamente:
PORT=3001
MONGO_URI=mongodb://localhost:27017/fintechsubs
JWT_SECRET=supersecreto
STRIPE_SECRET_KEY=sk_test_simulado
GMAIL_USER=tuemail@gmail.com
GMAIL_PASS=tucontraseñaNEXT_PUBLIC_API_URL=http://localhost:3001cd backend
npm startcd frontend
npm run dev
Abrir [http://localhost:3000](http://localhost:3000)
Podés ejecutar todo el proyecto fácilmente usando Docker y Docker Compose, sin necesidad de instalar Node.js o MongoDB localmente.
- Docker
- Docker Compose
NEXT_PUBLIC_API_URL=http://localhost:3001 BACKEND_API_URL=http://backend:3001
⚠️ NEXT_PUBLIC_API_URLse usa en el navegador,BACKEND_API_URLse usa en SSR desde el servidor de Next.js dentro del contenedor.
docker-compose up --build
Esto levantará:
mongodben el puerto27017backenden el puerto3001frontend(Next.js) en el puerto3000
Accedé a la app desde: http://localhost:3000
- Reemplazar simulación de Stripe por integración real con Stripe Checkout Sessions
- Usar cookies HttpOnly para mayor seguridad del token JWT
- Implementar panel de administración para gestión de usuarios/planes
- Agregar protección SSR a páginas privadas
- Despliegue con Docker Compose + Vercel/Render
- Registro/Login: flujo completo con validación y persistencia
- Simulación de suscripción: actualiza DB y visualización en perfil
- Cancelación de suscripción: actualización inmediata de estado
- Manejo de errores y mensajes de éxito visuales
- Comunicación entre frontend y backend mediante
fetchautenticado
fintech-subscriptions/
├── backend/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── utils/
│ └── index.js
├── frontend/src
│ ├── pages/
│ ├── styles/
│ ├── context/
│ └── tailwind.config.js
└── docker-compose.yml (opcional)
Desarrollado por Yamila De Olivera, desarrolladora full stack con foco en proyectos fintech.
LinkedIn • GitHub • Argentina 🇦🇷
MIT License