Adicion del readme
This commit is contained in:
parent
5f00014ecd
commit
9fba0cd5cf
|
@ -0,0 +1,41 @@
|
|||
Requerimientos de Despliegue – SwimingArt
|
||||
Lenguaje
|
||||
JavaScript (Node.js) >= 16.0.0
|
||||
|
||||
Librerías / Frameworks
|
||||
Node.js y npm (gestor de paquetes)
|
||||
Dependencias clave instaladas con npm install:
|
||||
Express (servidor web)
|
||||
Mongoose (ODM para MongoDB)
|
||||
|
||||
Manejador de Base de Datos
|
||||
MongoDB >= 6.0 (Community Edition)
|
||||
|
||||
Otros Requerimientos Específicos
|
||||
Servidor compatible: Node.js ejecutando el backend con npm start
|
||||
MongoDB debe estar ejecutándose en local o en un clúster remoto (Atlas)
|
||||
Variables de entorno necesarias (.env):
|
||||
PORT=3000
|
||||
MONGODB_URI=mongodb://localhost:27017/swimingArtDB
|
||||
|
||||
Pasos Básicos para Ejecución Local
|
||||
# 1. Clonar el repositorio
|
||||
git clone https://github.com/tu-usuario/swimingart.git
|
||||
cd swimingart
|
||||
|
||||
# 2. Instalar dependencias
|
||||
npm install
|
||||
|
||||
# 3. Crear archivo de entorno
|
||||
cp .env.example .env
|
||||
# (o crear uno manualmente con MONGODB_URI y PORT)
|
||||
MONGODB_URI=mongodb://127.0.0.1:27017/swimartdb
|
||||
MONGO_URI=mongodb://localhost:27017/swimartdb
|
||||
|
||||
|
||||
# 4. Asegurar que MongoDB esté corriendo
|
||||
# (por ejemplo, con `mongod` en terminal)
|
||||
|
||||
# 5. Ejecutar el servidor
|
||||
npm start
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand fw-bold text-white" href="#">SwimArt</a>
|
||||
<a class="navbar-brand fw-bold text-white" href="#">SwimmingArt</a>
|
||||
<div class="ms-auto d-flex gap-4">
|
||||
<a href="coach.html" class="nav-link text-white">Inicializar Rutina</a>
|
||||
<a href="equipoDisponibles.html" class="nav-link text-white">Equipos Disponibles</a>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<!-- NAV -->
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand fw-bold text-white" href="#">SwimArt</a>
|
||||
<a class="navbar-brand fw-bold text-white" href="#">SwimmingArt</a>
|
||||
<div class="ms-auto d-flex gap-4">
|
||||
<a href="coach.html" class="nav-link text-white">Inicializar Rutina</a>
|
||||
<a href="equipoDisponibles.html" class="nav-link text-white">Equipos Disponibles</a>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Iniciar Sesión - SwimArt</title>
|
||||
<title>Iniciar Sesión - SwimmingArt</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- Bootstrap CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
|
|
@ -3,127 +3,80 @@
|
|||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>Editor de Formación – SwimArt</title>
|
||||
<title>Editor de Formación - SwimmingArt</title>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/editorPiscina.css">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
|
||||
<script src="https://cdn.jsdelivr.net/npm/konva@9.2.0/konva.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- NAV -->
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand fw-bold text-white" href="#">SwimArt</a>
|
||||
<div class="ms-auto d-flex gap-4">
|
||||
<a href="coach.html" class="nav-link text-white">Inicializar Rutina</a>
|
||||
<a href="equipoDisponibles.html" class="nav-link text-white">Equipos Disponibles</a>
|
||||
<a href="piscina.html" class="nav-link text-white">Piscina</a>
|
||||
</div>
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-primary px-4">
|
||||
<a class="navbar-brand fw-bold text-white" href="#">SwimmingArt</a>
|
||||
<div class="ms-auto">
|
||||
<a href="coach.html" class="nav-link d-inline text-white">Inicializar Rutina</a>
|
||||
<a href="equipoDisponibles.html" class="nav-link d-inline text-white">Equipos Disponibles</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- MAIN -->
|
||||
<main class="px-5 my-4" style="max-width: 90%; margin: 0 auto;">
|
||||
<!-- RUTINA -->
|
||||
<section class="mb-4">
|
||||
<h2 id="tituloRutina" class="fw-bold fs-3">Nombre de la Rutina</h2>
|
||||
<p><strong>Tipo:</strong> <span id="tipoRutina" class="text-secondary">Cargando...</span></p>
|
||||
<p><strong>Modalidad:</strong> <span id="modalidadRutina" class="text-secondary">Cargando...</span></p>
|
||||
</section>
|
||||
<div class="container my-5">
|
||||
<h2 id="tituloRutina" class="mb-3">Nombre de la Rutina</h2>
|
||||
<p><strong>Tipo:</strong> <span id="tipoRutina">Cargando...</span></p>
|
||||
<p><strong>Modalidad:</strong> <span id="modalidadRutina">Cargando...</span></p>
|
||||
|
||||
<!-- FORMULARIOS Y CANVAS -->
|
||||
<div class="row gx-4 gy-4 mb-5">
|
||||
<!-- Formulario -->
|
||||
<div class="col-lg-4">
|
||||
<div class="card shadow-sm p-4">
|
||||
<h5 class="fw-semibold mb-3">🎯 Agregar atleta</h5>
|
||||
<div class="row my-4">
|
||||
<div class="col-md-4">
|
||||
<label for="selectAtleta" class="form-label">Seleccionar atleta:</label>
|
||||
<select id="selectAtleta" class="form-select mb-2"></select>
|
||||
|
||||
<label for="selectAtleta" class="form-label">Seleccionar atleta:</label>
|
||||
<select id="selectAtleta" class="form-select mb-3"></select>
|
||||
<label for="rolAtleta" class="form-label">Rol:</label>
|
||||
<input type="text" id="rolAtleta" class="form-control mb-2" placeholder="volador / pilar / otro">
|
||||
|
||||
<label for="rolAtleta" class="form-label">Rol:</label>
|
||||
<select id="rolAtleta" class="form-select mb-3">
|
||||
<option value="">Seleccionar rol</option>
|
||||
<option value="volador">Volador</option>
|
||||
<option value="pilar">Pilar</option>
|
||||
<option value="otro">Otro</option>
|
||||
</select>
|
||||
<label for="idPersonalizado" class="form-label">ID personalizado:</label>
|
||||
<input type="text" id="idPersonalizado" class="form-control mb-3" placeholder="Ej: A, 1, V2">
|
||||
|
||||
<label for="idPersonalizado" class="form-label">ID personalizado:</label>
|
||||
<input type="text" id="idPersonalizado" class="form-control mb-3" placeholder="Ej: A, 1, V2">
|
||||
|
||||
<label for="figura" class="form-label">Figura técnica:</label>
|
||||
<input type="text" id="figura" class="form-control mb-2" placeholder="Ej: Barracuda, Flamingo..." autocomplete="off">
|
||||
|
||||
<div id="sugerenciasFigura" class="list-group position-relative"></div>
|
||||
<div id="previewFigura" class="text-center mt-3"></div>
|
||||
|
||||
<button id="btnAgregarAtleta" class="btn btn-success w-100 mt-3">➕ Añadir atleta</button>
|
||||
</div>
|
||||
<button id="btnAgregarAtleta" class="btn btn-success w-100">Añadir atleta a la formación</button>
|
||||
</div>
|
||||
|
||||
<!-- Piscina -->
|
||||
<div class="col-lg-8">
|
||||
<div class="card shadow-sm p-4">
|
||||
<h5 class="fw-semibold mb-3">🏊 Vista de la Piscina</h5>
|
||||
|
||||
<!-- Tamaño editable -->
|
||||
<div class="card shadow-sm p-3 mb-3 bg-light">
|
||||
<h6 class="fw-semibold mb-2">🛠 Ajustar tamaño de la piscina</h6>
|
||||
<div class="row g-2 align-items-center">
|
||||
<div class="col-md-4">
|
||||
<input type="number" id="inputWidth" class="form-control" placeholder="Ancho (px)" min="300">
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<input type="number" id="inputHeight" class="form-control" placeholder="Alto (px)" min="200">
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<button id="btnActualizarPiscina" class="btn btn-outline-primary w-100">Actualizar</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Canvas -->
|
||||
<div id="piscinaContainer" class="border rounded p-2 mb-3">
|
||||
<div id="piscina"></div>
|
||||
</div>
|
||||
|
||||
<div class="text-end">
|
||||
<button id="btnEditarFormacion" class="btn btn-outline-secondary btn-sm d-inline-flex align-items-center gap-2" disabled>
|
||||
✏ Editar formación
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div id="piscinaContainer" class="border rounded shadow p-2" style="height: auto;">
|
||||
<div id="piscina" style="height: 400px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Formaciones -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="nombreFormacion" class="form-label">Nombre de la formación:</label>
|
||||
<input type="text" id="nombreFormacion" class="form-control" />
|
||||
<div class="col-md-6">
|
||||
<label for="nombreFormacion" class="form-label">Nombre coloquial de la formación:</label>
|
||||
<input type="text" id="nombreFormacion" class="form-control" placeholder="Ej: miniportés" />
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<div class="col-md-6">
|
||||
<label for="notasFormacion" class="form-label">Notas tácticas:</label>
|
||||
<textarea id="notasFormacion" class="form-control" rows="3"></textarea>
|
||||
<textarea id="notasFormacion" class="form-control" rows="3" placeholder="Ej: mirar izquierda, separarse a los 3s"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center mb-4">
|
||||
<button id="btnGuardarFormacion" class="btn btn-primary btn-lg px-5">💾 Guardar Formación</button>
|
||||
<button id="btnGuardarFormacion" class="btn btn-primary btn-lg px-5">Guardar Formación</button>
|
||||
</div>
|
||||
|
||||
<hr class="my-5" />
|
||||
<hr>
|
||||
|
||||
<!-- Línea de tiempo -->
|
||||
<section>
|
||||
<h4 class="mb-3 fw-semibold">🕒 Línea de tiempo</h4>
|
||||
<div id="lineaTiempo" class="timeline-placeholder d-flex flex-wrap gap-2"></div>
|
||||
</section>
|
||||
</main>
|
||||
<div id="simbologia" class="my-4">
|
||||
<h4>Simbología</h4>
|
||||
<ul>
|
||||
<li><span class="dot volador"></span> Volador (morado)</li>
|
||||
<li><span class="dot pilar"></span> Pilar (azul)</li>
|
||||
<li><span class="dot otro"></span> Otro (rojo)</li>
|
||||
<li><span class="borde borde-verde"></span> Grupo A / <span class="borde borde-amarillo"></span> Grupo B</li>
|
||||
<li><span>🧿</span> Dirección de mirada (se activa con <kbd>Ctrl + Clic</kbd>)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="historial">
|
||||
<h4>Historial de Formaciones</h4>
|
||||
<div id="formacionesPrevias" class="row"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Script de interacción -->
|
||||
<script src="js/piscina.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Registro - SwimArt</title>
|
||||
<title>Registro - SwimmingArt</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- Bootstrap CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
|
Loading…
Reference in New Issue