Skip to content

shift-jesus/SeaVector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌊 SeaVector – Simulación 3D de Erosión Costera

GitHub license Java Spring Boot React Three.js

SeaVector es una plataforma premium de simulación 3D que modela la erosión costera en Cartagena de Indias al año 2050. Utiliza una API completa en Java con Spring Boot y SQLite para resolver ecuaciones de cálculo multivariable y derivadas parciales en tiempo real. Su interfaz futurista en React permite visualizar el avance del mar y vectores de gradiente.

🧠 Proyecto académico para la asignatura Matemáticas III – Corporación Universitaria Rafael Núñez (CURN).
Grupo 4: Jesús Campo – Tema: Erosión costera y proyecto Defensa Costera 2050.


✨ Características

  • Modelo matemático \( E(x,y,t) = A \cos(Bx) e^{-Cy} - Dt \)
  • Derivadas parciales \(\frac{\partial E}{\partial x}, \frac{\partial E}{\partial y}, \frac{\partial E}{\partial t}\)
  • Vector gradiente \(\nabla E\) y dirección de máxima erosión
  • Diferencial total y plano tangente
  • Base de datos SQLite con coeficientes por sector (Bocagrande, Castillogrande, etc.)
  • Visualización 3D interactiva (Three.js) con curvas de nivel
  • Modo claro/oscuro y chatbot integrado con preguntas frecuentes
  • Página de fundamentación científica con scroll animado (Framer Motion)

🖥️ Tecnologías utilizadas

Capa Tecnologías
Backend Java 25, Spring Boot 3.4.4, Hibernate, SQLite, Maven
Frontend React 18, Three.js, Framer Motion, Tailwind CSS, Lucide Icons, React Router
Base datos SQLite
Build Maven (backend), Create React App (frontend)

📁 Estructura del proyecto

SeaVector/
├── seavector-backend/ # Backend Spring Boot
│ ├── src/main/java/com/seavector/
│ │ ├── controller/ # Endpoints REST
│ │ ├── service/ # Lógica matemática (derivadas, gradiente)
│ │ ├── repository/ # Acceso a SQLite
│ │ ├── model/ # Entidad Sector
│ │ └── dto/ # DataPoint
│ ├── src/main/resources/
│ │ ├── application.properties # Configuración SQLite
│ │ └── erosion.db # Base de datos (creada con init_db.py)
│ └── pom.xml
├── seavector-frontend/ # Frontend React
│ ├── src/
│ │ ├── pages/ # Home.jsx, Documentation.jsx
│ │ ├── components/ # Simulation3D, Navbar, Chatbot
│ │ ├── styles/ # tailwind.css
│ │ └── App.js
│ ├── public/
│ └── package.json
├── .gitignore
└── README.md

🚀 Instalación y ejecución

Requisitos previos

  • Java 17 o superior (recomendado Java 17 o 25)
  • Node.js 18+ y npm
  • Maven (opcional, se puede usar el wrapper mvnw)
  • Python 3 (solo para inicializar la base de datos)

1. Clonar el repositorio

git clone https://github.com/shift-jesus/SeaVector.git
cd SeaVector

2. Inicializar la base de datos SQLite

cd seavector-backend
python init_db.py

Esto creará erosion.db con la tabla SECTORES y los 5 barrios de Cartagena.

3. Ejecutar el backend

Desde IntelliJ IDEA (recomendado) o con Maven:

cd seavector-backend
./mvnw spring-boot:run   # Linux/macOS
mvnw.cmd spring-boot:run # Windows

El backend quedará disponible en http://localhost:8080.

4. Ejecutar el frontend

cd seavector-frontend
npm install
npm start

La aplicación se abrirá en http://localhost:3000.


🧪 Endpoints de la API REST

Método Endpoint Descripción
POST /api/simulation/grid Devuelve grilla 50×50 de puntos (x,y,z,grad)
GET /api/simulation/gradiente Gradiente en un punto (Ex, Ey, Et)
GET /api/simulation/tangente Ecuación del plano tangente en un punto
GET /api/simulation/diferencial Diferencial total dE para dx, dy, dt
GET /api/simulation/sensibilidad Derivadas parciales ∂E/∂x, ∂E/∂y, ∂E/∂t

Ejemplo de uso (POST):

curl -X POST http://localhost:8080/api/simulation/grid \
  -H "Content-Type: application/json" \
  -d '{"year":2030, "sector":"Bocagrande"}'

📸 Capturas de pantalla

Puedes agregar aquí imágenes de la simulación 3D y la página de teoría.


📚 Documentación científica

La página /documentacion incluye:

  • Modelo matemático justificado
  • Interpretación del gradiente con ilustración interactiva
  • Derivada temporal y proyección a 2050
  • Tecnología utilizada (Java, SQLite, React, Three.js)

Se recomienda revisar el miniproyecto completo en Overleaf (enlace interno).


🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor, abre un issue o un pull request en GitHub.


📄 Licencia

Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.


📧 Contacto

Desarrollador: Jesús Campo – jcampoy21@campusuninunez.edu.co

Repositorio: https://github.com/shift-jesus/SeaVector


⚓ SeaVector – Simulación avanzada para la defensa costera de Cartagena 2050.

About

SeaVector es una plataforma premium de simulación 3D que modela la erosión costera en Cartagena al 2050. Usa una Full API con Java y SQLite para resolver ecuaciones de cálculo multivariable y derivadas parciales en tiempo real. Su interfaz futurista en React permite visualizar el avance del mar y vectores de gradiente.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors