- Visión General del Proyecto
- Características Principales
- Tecnologías Utilizadas
- Guía de Instalación Completa
- Configuración de la Base de Datos
- Puesta en Marcha
- Estructura del Proyecto
- Documentación de la API
- Pruebas
- Contribuciones
- Licencia
CoinDunk es una plataforma avanzada para predicción de criptomonedas que ofrece:
🔹 Predicciones en tiempo real con algoritmos avanzados. Pronósticos precisos en 24h, 1 semana y 1 mes
🔹 Sistema de suscripción por niveles (Básico, Pro, Premium)
🔹 Visualización interactiva de datos
🔹 Temas claro/oscuro
- Autenticación segura con JWT
- Planes de suscripción escalables
- Gestión completa de perfiles
- Selección personalizada de criptomonedas
- Pronósticos para 1día, 1semana y 1mes
- Múltiples modelos predictivos
- Mecanismos de respaldo cuando fallan las APIs
- Gráficos interactivos con Chart.js
- Diseño responsive
- Tema claro/oscuro adaptable
- React 18
- React Router 6
- Chart.js
- Material-UI
- Context API (Gestión de estado)
- Axios (Cliente HTTP)
- Node.js
- Express
- MySQL 8
- JWT (Autenticación)
- CORS (Seguridad)
- npm
- Git
- Prettier (Formateo de código)
- ESLint (Linteo de código)
-
Node.js (versión 16+ recomendada)
# Verificar instalación node -v npm -v -
MySQL (versión 8.0+ recomendada)
# Verificar instalación mysql --version
-
Clonar el repositorio:
git clone https://github.com/turepositorio/coindunk.git cd coindunk -
Instalar dependencias principales:
npm install
-
Instalar dependencias adicionales del cliente:
npm install react-scripts@latest npm install @mui/material @mui/icons-material @emotion/react @emotion/styled npm install chart.js react-chartjs-2 npm install axios
-
Instalar dependencias del servidor:
npm install express mysql2 cors body-parser dotenv jsonwebtoken npm install bcrypt bcryptjs chalk concurrently
-
Abrir MySQL Workbench o tu cliente MySQL preferido
-
Ejecutar el archivo
coindunk_db_schema.sql:- Abrir el archivo en el cliente MySQL
- Hacer clic en el icono de "rayo" para ejecutar el script completo
- Verificar que se crearon las tablas correctamente
-
Los datos iniciales incluyen:
- 3 planes de suscripción
- 22 criptomonedas populares
- 3 usuarios de ejemplo (user, user2, user3)
-
Iniciar el servidor backend:
npm run server
Alternativamente:
node server.js
-
Iniciar el frontend (en otra terminal):
npm start
-
Acceder a la aplicación:
http://localhost:3000
📂 coindunk/
├── 📂 public/
├── 📂 src/
│ ├── 📂 components/
│ │ ├── CryptoButton.js
│ │ ├── CryptoSelection.css
│ │ ├── CryptoSelection.js
│ │ ├── Navbar.js
│ │ ├── NotificationPopup.js
│ │ ├── predictions.js
│ │ └── coindunk_db_schema.sql
│ ├── 📂 context/
│ │ └── Theme.js
│ ├── 📂 pages/
│ │ ├── About.css
│ │ ├── About.js
│ │ ├── ActualizarPlan.js
│ │ ├── Contacto.css
│ │ ├── Contacto.js
│ │ ├── Home.css
│ │ ├── Home.js
│ │ ├── LoginPage.css
│ │ ├── LoginPage.js
│ │ ├── Perfil.js
│ │ ├── Planes.css
│ │ ├── Planes.js
│ │ ├── RegisterPage.css
│ │ └── RegisterPage.js
│ ├── App.css
│ ├── App.js
│ ├── index.css
│ ├── index.js
│ └── reportWebVitals.js
├── .gitignore
├── package.json
├── README.md
├── server.js
└── test-login.js
🔹 POST /api/auth/login
- Login de usuario existente
- Body: { email, password }
- Retorna: token JWT y datos de usuario
🔹 POST /api/auth/register
- Registro de nuevo usuario
- Body: { name, email, password, plan }
- Retorna: usuario creado y token
🔹 GET /api/user/:userId/cryptos
- Obtiene criptomonedas del usuario
- Retorna: array de criptomonedas y datos del plan
🔹 POST /api/user/:userId/cryptos
- Actualiza criptomonedas seleccionadas
- Body: { cryptos: [array de IDs] }
🔹 PUT /api/user/:userId/plan
- Cambia el plan de suscripción
- Body: { plan: 'basic'|'pro'|'premium' }
🔹 GET /api/cryptos
- Lista todas las criptomonedas disponibles
- Retorna: array con id, nombre y símbolo
Para ejecutar las pruebas automatizadas:
node test-login.jsLas pruebas cubren:
- Flujo completo de autenticación
- Funcionamiento básico del servidor
- Autenticación de usuarios (básico, pro y premium)
- Manejo de credenciales inválidas (contraseña incorrecta y usuario inexistente)
- Haz fork del repositorio
- Crea una rama para tu feature (
git checkout -b feature/NuevaFuncionalidad) - Haz commit de tus cambios (
git commit -m 'Añadir NuevaFuncionalidad') - Haz push a la rama (
git push origin feature/NuevaFuncionalidad) - Abre un Pull Request
Distribuido bajo la licencia MIT. Consulta el archivo LICENSE para más información.
CoinDunk © 2025 - Plataforma de predicción de criptomonedas con inteligencia artificial.







