Skip to content

MiguelRegueiro/CoinDunk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoinDunk - Plataforma de Predicción de Criptomonedas

Logo de CoinDunk

📌 Tabla de Contenidos

🌟 Visión General del Proyecto

🚀 CoinDunk - Tu Brújula en el Mundo Cripto

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

image image

🚀 Características Principales

Sistema de Usuarios

  • Autenticación segura con JWT
  • Planes de suscripción escalables
  • Gestión completa de perfiles
  • Selección personalizada de criptomonedas

Motor de Predicciones

  • Pronósticos para 1día, 1semana y 1mes
  • Múltiples modelos predictivos
  • Mecanismos de respaldo cuando fallan las APIs

Visualización

  • Gráficos interactivos con Chart.js
  • Diseño responsive
  • Tema claro/oscuro adaptable

💻 Tecnologías Utilizadas

Frontend

  • React 18
  • React Router 6
  • Chart.js
  • Material-UI
  • Context API (Gestión de estado)
  • Axios (Cliente HTTP)

Backend

  • Node.js
  • Express
  • MySQL 8
  • JWT (Autenticación)
  • CORS (Seguridad)

Herramientas de Desarrollo

  • npm
  • Git
  • Prettier (Formateo de código)
  • ESLint (Linteo de código)

🔧 Guía de Instalación Completa

Requisitos Previos

  1. Node.js (versión 16+ recomendada)

    # Verificar instalación
    node -v
    npm -v
  2. MySQL (versión 8.0+ recomendada)

    # Verificar instalación
    mysql --version

Pasos de Instalación Detallados

  1. Clonar el repositorio:

    git clone https://github.com/turepositorio/coindunk.git
    cd coindunk
  2. Instalar dependencias principales:

    npm install
  3. 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
  4. Instalar dependencias del servidor:

    npm install express mysql2 cors body-parser dotenv jsonwebtoken
    npm install bcrypt bcryptjs chalk concurrently

image

🗃 Configuración de la Base de Datos

  1. Abrir MySQL Workbench o tu cliente MySQL preferido

  2. 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
  3. Los datos iniciales incluyen:

    • 3 planes de suscripción
    • 22 criptomonedas populares
    • 3 usuarios de ejemplo (user, user2, user3)

image

🏃 Puesta en Marcha

  1. Iniciar el servidor backend:

    npm run server     

    Alternativamente:

    node server.js    
  2. Iniciar el frontend (en otra terminal):

    npm start
  3. Acceder a la aplicación:

    http://localhost:3000
    

image image

📂 Estructura del Proyecto


📂 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

📚 Documentación de la API

Autenticación

🔹 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

Gestión de Usuario

🔹 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' }

Datos de Criptomonedas

🔹 GET /api/cryptos

  • Lista todas las criptomonedas disponibles
  • Retorna: array con id, nombre y símbolo

🧪 Pruebas

Para ejecutar las pruebas automatizadas:

node test-login.js

Las 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)

image

🤝 Contribuciones

  1. Haz fork del repositorio
  2. Crea una rama para tu feature (git checkout -b feature/NuevaFuncionalidad)
  3. Haz commit de tus cambios (git commit -m 'Añadir NuevaFuncionalidad')
  4. Haz push a la rama (git push origin feature/NuevaFuncionalidad)
  5. Abre un Pull Request

📜 Licencia

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.

About

CoinDunk es una plataforma avanzada para predicción de criptomonedas

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors