mejoras en el diseño

This commit is contained in:
Alain Vasquez Ramirez 2025-06-04 10:08:55 -06:00
parent 4dce58a00f
commit 871e0261a6
10 changed files with 576 additions and 15 deletions

View File

@ -0,0 +1,26 @@
{
"type": "Compass Connections",
"version": {
"$numberInt": "1"
},
"connections": [
{
"id": "d6f2a873-53e0-4c22-8bc6-f27cfa621213",
"lastUsed": {
"$date": {
"$numberLong": "1748869986703"
}
},
"favorite": {
"name": "swimartdb"
},
"savedConnectionType": "recent",
"connectionOptions": {
"connectionString": "mongodb://localhost:27017/",
"oidc": {
"serializedState": "eyJvaWRjUGx1Z2luU3RhdGVWZXJzaW9uIjowLCJzdGF0ZSI6W119"
}
}
}
]
}

View File

@ -1 +1,485 @@
[] [{
"_id": {
"$oid": "6810e0937ee3745ef40bf1d4"
},
"title": "Prueba",
"createdBy": "coach-id-ejemplo",
"language": "es",
"duration": 1800,
"musicUrl": "",
"nombreCompetencia": "Prueba",
"tipoCompetencia": "técnica",
"modalidad": "duo",
"participantes": [
{
"atletaId": {
"$oid": "67f46c76d9ee5d7eec7ee52e"
},
"rol": "Volador",
"idPersonalizado": "1",
"_id": {
"$oid": "6810e0937ee3745ef40bf1d5"
}
},
{
"atletaId": {
"$oid": "6808f76c8694516d48b49d48"
},
"rol": "Pilares",
"idPersonalizado": "2",
"_id": {
"$oid": "6810e0937ee3745ef40bf1d6"
}
}
],
"elements": [],
"createdAt": {
"$date": "2025-04-29T14:22:11.389Z"
},
"__v": 0
},
{
"_id": {
"$oid": "6811982a08c865cdf77148b3"
},
"title": "Prueba 2",
"createdBy": "coach-id-ejemplo",
"language": "es",
"duration": 1800,
"musicUrl": "",
"nombreCompetencia": "Prueba 2",
"tipoCompetencia": "técnica",
"modalidad": "duo",
"participantes": [
{
"atletaId": {
"$oid": "67f46c76d9ee5d7eec7ee52e"
},
"rol": "Pilar",
"idPersonalizado": "a",
"_id": {
"$oid": "6811982a08c865cdf77148b4"
}
},
{
"atletaId": {
"$oid": "6808f76c8694516d48b49d48"
},
"rol": "Volador",
"idPersonalizado": "b",
"_id": {
"$oid": "6811982a08c865cdf77148b5"
}
}
],
"elements": [],
"createdAt": {
"$date": "2025-04-30T03:25:30.244Z"
},
"__v": 4,
"formaciones": [
{
"nombreColoquial": "formacion 1",
"notasTacticas": "",
"atletas": [
{
"idPersonalizado": "a",
"x": 264.515625,
"y": 77.609375,
"rol": "pilar",
"grupo": "a",
"direccion": "",
"_id": {
"$oid": "681c01aaef497a70464000b4"
}
},
{
"idPersonalizado": "b",
"x": 73.515625,
"y": 220.609375,
"rol": "voaldor",
"grupo": "a",
"direccion": "",
"_id": {
"$oid": "681c01aaef497a70464000b5"
}
}
],
"_id": {
"$oid": "681c01aaef497a70464000b3"
}
},
{
"nombreColoquial": "formacion 2",
"notasTacticas": "",
"atletas": [
{
"idPersonalizado": "c",
"x": 189.515625,
"y": 189.609375,
"rol": "volador",
"grupo": "a",
"direccion": "",
"_id": {
"$oid": "681c01fbef497a70464000c5"
}
}
],
"_id": {
"$oid": "681c01fbef497a70464000c4"
}
},
{
"nombreColoquial": "formacion 3",
"notasTacticas": "",
"atletas": [
{
"idPersonalizado": "a",
"x": 235.515625,
"y": 77.609375,
"rol": "volador",
"grupo": "b",
"direccion": "",
"_id": {
"$oid": "681c0300ef497a70464000f5"
}
},
{
"idPersonalizado": "b",
"x": 102.515625,
"y": 220.609375,
"rol": "pilar",
"grupo": "a",
"direccion": "",
"_id": {
"$oid": "681c0300ef497a70464000f6"
}
}
],
"_id": {
"$oid": "681c0300ef497a70464000f4"
}
},
{
"nombreColoquial": "formacion 4",
"notasTacticas": "",
"atletas": [
{
"idPersonalizado": "1",
"x": 183.515625,
"y": 151.609375,
"rol": "volador",
"grupo": "a",
"direccion": "",
"_id": {
"$oid": "681c2b94191e54eff4c6b145"
}
},
{
"idPersonalizado": "2",
"x": 325.515625,
"y": 159.609375,
"rol": "pilar",
"grupo": "b",
"direccion": "",
"_id": {
"$oid": "681c2b94191e54eff4c6b146"
}
}
],
"_id": {
"$oid": "681c2b94191e54eff4c6b144"
}
}
]
},
{
"_id": {
"$oid": "682b39d1369e4542a08e14e4"
},
"title": "Prueba 3",
"createdBy": "coach-id-ejemplo",
"language": "es",
"duration": 180,
"musicUrl": "",
"nombreCompetencia": "Prueba 3",
"tipoCompetencia": "técnica",
"modalidad": "duo",
"participantes": [],
"elements": [],
"formaciones": [
{
"nombreColoquial": "formacion 1",
"notasTacticas": "ssss",
"atletas": [
{
"atletaId": {
"$oid": "67f46c76d9ee5d7eec7ee52e"
},
"idPersonalizado": "1",
"x": 87.8194580078125,
"y": 89.98611450195312,
"rol": "pilar",
"grupo": "",
"direccion": {
"x1": 126.8194580078125,
"y1": 73.875,
"x2": 264.8194580078125,
"y2": 51.875
},
"figura": "Pez Volador",
"_id": {
"$oid": "682b3a65369e4542a08e1507"
}
}
],
"_id": {
"$oid": "682b3a65369e4542a08e1506"
}
},
{
"nombreColoquial": "formacion 1",
"notasTacticas": "ssss",
"atletas": [
{
"atletaId": {
"$oid": "67f46c76d9ee5d7eec7ee52e"
},
"idPersonalizado": "1",
"x": 87.8194580078125,
"y": 89.98611450195312,
"rol": "pilar",
"grupo": "",
"direccion": {
"x1": 126.8194580078125,
"y1": 73.875,
"x2": 264.8194580078125,
"y2": 51.875
},
"figura": "Pez Volador",
"_id": {
"$oid": "682b3a9f369e4542a08e1515"
}
},
{
"atletaId": {
"$oid": "6808f76c8694516d48b49d48"
},
"idPersonalizado": "2",
"x": 264.8194580078125,
"y": 220.43055725097656,
"rol": "pilar",
"grupo": "",
"direccion": {
"x1": 300.8194580078125,
"y1": 207.875,
"x2": 471.8194580078125,
"y2": 150.875
},
"figura": "Pez Volador",
"_id": {
"$oid": "682b3a9f369e4542a08e1516"
}
}
],
"_id": {
"$oid": "682b3a9f369e4542a08e1514"
}
}
],
"createdAt": {
"$date": "2025-05-19T14:01:53.588Z"
},
"__v": 2
},
{
"_id": {
"$oid": "68307f6e414b3f466e529063"
},
"title": "Prueba 5",
"createdBy": "coach-id-ejemplo",
"language": "es",
"duration": 80,
"musicUrl": "/uploads/music/1748008814394-215265240.mp3",
"nombreCompetencia": "5",
"tipoCompetencia": "técnica",
"modalidad": "equipo",
"participantes": [
{
"$oid": "67f46c76d9ee5d7eec7ee52e"
}
],
"elements": [],
"formaciones": [
{
"nombreColoquial": "formacion 1",
"notasTacticas": "HOLAA",
"duracion": 5,
"atletas": [
{
"atletaId": {
"$oid": "67f46c76d9ee5d7eec7ee52e"
},
"idPersonalizado": "a",
"x": 154.8194580078125,
"y": 75.98611450195312,
"rol": "pilar",
"grupo": "",
"direccion": {
"x1": 188.8194580078125,
"y1": 57.986114501953125,
"x2": 356.8194580078125,
"y2": 28.986114501953125
},
"figura": "Mariposa",
"tipoElemento": "transición",
"codigoElemento": "TRE",
"_id": {
"$oid": "68307fb4414b3f466e529091"
}
}
],
"_id": {
"$oid": "68307fb4414b3f466e529090"
}
}
],
"createdAt": {
"$date": "2025-05-23T14:00:14.508Z"
},
"__v": 1
},
{
"_id": {
"$oid": "68308205414b3f466e5290b9"
},
"title": "Prueba 6",
"createdBy": "coach-id-ejemplo",
"language": "es",
"duration": 5000,
"musicUrl": "/uploads/music/1748009477489-613290902.mp3",
"nombreCompetencia": "Prueba 6",
"tipoCompetencia": "técnica",
"modalidad": "equipo",
"participantes": [
{
"$oid": "67f46c76d9ee5d7eec7ee52e"
},
{
"$oid": "6808f76c8694516d48b49d48"
}
],
"elements": [],
"formaciones": [
{
"nombreColoquial": "formacion 1",
"notasTacticas": "",
"duracion": 0,
"atletas": [
{
"atletaId": {
"$oid": "67f46c76d9ee5d7eec7ee52e"
},
"idPersonalizado": "1",
"x": 194.18327463068167,
"y": 103.13332343037995,
"rol": "volador",
"grupo": "",
"direccion": {
"x1": 261.18326981967556,
"y1": 109.13332297261634,
"x2": 407.18325933599067,
"y2": 63.13332648213756
},
"figura": "Mariposa",
"tipoElemento": "TRE",
"codigoElemento": "BP8-BP16-BP6-BP14D",
"_id": {
"$oid": "68308639414b3f466e529101"
}
},
{
"atletaId": {
"$oid": "6808f76c8694516d48b49d48"
},
"idPersonalizado": "2",
"x": 157.18327845273825,
"y": 234.466632185198,
"rol": "pilar",
"grupo": "",
"direccion": null,
"figura": "Pez Volador",
"tipoElemento": "TRE",
"codigoElemento": "1A",
"_id": {
"$oid": "68308639414b3f466e529102"
}
}
],
"_id": {
"$oid": "68308639414b3f466e529100"
}
}
],
"createdAt": {
"$date": "2025-05-23T14:11:17.538Z"
},
"__v": 1
},
{
"_id": {
"$oid": "683470b68a0ed15f17f682f0"
},
"title": "Prueba 10",
"createdBy": "coach-id-ejemplo",
"language": "es",
"duration": 3600,
"musicUrl": "/uploads/music/1748267189898-94113564.mp3",
"nombreCompetencia": "Prueba 10",
"tipoCompetencia": "técnica",
"modalidad": "equipo",
"participantes": [
{
"$oid": "6808f76c8694516d48b49d48"
}
],
"elements": [],
"formaciones": [
{
"nombreColoquial": "formacion 1",
"notasTacticas": "",
"duracion": 20,
"atletas": [
{
"atletaId": {
"$oid": "6808f76c8694516d48b49d48"
},
"idPersonalizado": "1",
"x": 251.13751220703125,
"y": 231.39999389648438,
"rol": "volador",
"grupo": "",
"direccion": {
"x1": 163.13751220703125,
"y1": 75.39999389648438,
"x2": 262.13751220703125,
"y2": 41.399993896484375
},
"figura": "Mariposa",
"tipoElemento": "TRE",
"codigoElemento": "A1",
"_id": {
"$oid": "683471e48a0ed15f17f6832d"
}
}
],
"_id": {
"$oid": "683471e48a0ed15f17f6832c"
}
}
],
"createdAt": {
"$date": "2025-05-26T13:46:30.053Z"
},
"__v": 1
}]

View File

@ -42,4 +42,19 @@
"$date": "2025-04-23T13:35:14.797Z" "$date": "2025-04-23T13:35:14.797Z"
}, },
"__v": 0 "__v": 0
},
{
"_id": {
"$oid": "6808f76c8694516d48b49d48"
},
"name": "Alex Alducin Diaz",
"username": "stivman",
"email": "alex@gmail.com",
"passwordHash": "$2b$10$a4SS948wFeQ39QVxVhfasOT9O1HA8bBNwd7FVu.XU0HEF6V457EiC",
"role": "athlete",
"language": "fr",
"createdAt": {
"$date": "2025-04-23T14:21:32.469Z"
},
"__v": 0
}] }]

View File

@ -2,18 +2,47 @@
<html lang="es"> <html lang="es">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<title>Athlete Dashboard</title> <title>Atletas</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head> </head>
<body class="bg-light text-center"> <body class="bg-light text-center">
<nav class="navbar navbar-expand-lg navbar-dark sticky-top shadow-sm px-4 py-3" style="background-color: #5ca68a;">
<div class="container-fluid">
<a class="navbar-brand fw-bold text-white" href="#">SwimmingArt</a>
<div class="ms-auto d-flex gap-4 align-items-center">
<div class="dropdown">
<button class="btn btn-outline-light dropdown-toggle d-flex align-items-center gap-2 px-3 py-1" type="button" id="userDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-person-circle" viewBox="0 0 16 16">
<path d="M11 10a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/>
<path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-4.546 12.174c.03-.256.071-.512.124-.767C4.28 10.798 5.94 10 8 10s3.72.798 4.422 2.407c.053.255.094.511.124.767A7 7 0 0 0 8 1z"/>
</svg>
<span id="nombreUsuarioHeader" class="fw-semibold">Usuario</span>
</button>
<ul class="dropdown-menu dropdown-menu-end text-center p-3" aria-labelledby="userDropdown" style="background-color: #0d6efd; color: white; border-radius: 0 0 8px 8px; min-width: 100%; max-width: 250px;">
<li>
<select id="langSelector" class="form-select form-select-sm mb-3" style="border: none; border-radius: 6px; background-color: white; color: black; padding: 0.4rem 0.5rem;">
<option value="es">Español</option>
<option value="en">English</option>
<option value="fr">Français</option>
</select>
</li>
<li>
<button class="btn btn-danger btn-sm w-100" onclick="logout()">Salir</button>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container mt-5"> <div class="container mt-5">
<h1 class="text-success">Bienvenido Atleta 🏊‍♂️</h1> <h1 class="text-success">Bienvenido Atleta</h1>
<p>Esta es tu zona para consultar tus rutinas y progreso.</p> <p>Esta es tu zona para consultar tus rutinas y progreso.</p>
<div id="contenedor-rutinas" class="row mt-4 justify-content-center"></div> <div id="contenedor-rutinas" class="row mt-4 justify-content-center"></div>
<a href="index.html" class="btn btn-outline-success mt-3">Cerrar sesión</a>
<div id="rutinas-list"></div>
</div> </div>
<script src="js/atleta.js"></script>
<script src="js/traduccionCoach.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="js/atletaDiseño.js"></script>
</body> </body>
</html> </html>

View File

@ -10,7 +10,7 @@
<body> <body>
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3"> <nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
<div class="container-fluid"> <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 align-items-center"> <div class="ms-auto d-flex gap-4 align-items-center">
<a href="coach.html" class="nav-link text-white" data-i18n="nav.init">Inicializar Rutina</a> <a href="coach.html" class="nav-link text-white" data-i18n="nav.init">Inicializar Rutina</a>
<a href="equipoDisponibles.html" class="nav-link text-white" data-i18n="nav.equip">Equipos Disponibles</a> <a href="equipoDisponibles.html" class="nav-link text-white" data-i18n="nav.equip">Equipos Disponibles</a>

View File

@ -83,7 +83,7 @@ a:hover {
/* Fondo verde solo para inputs del formulario de registro */ /* Fondo verde solo para inputs del formulario de registro */
.green-input { .green-input {
background-color: #e0f6e9; /* verde claro */ background-color: #d0e9fb; /* verde claro */
border: none; border: none;
border-radius: 999px; border-radius: 999px;
padding: 12px 20px; padding: 12px 20px;
@ -91,6 +91,6 @@ a:hover {
} }
.green-input:focus { .green-input:focus {
background-color: #c4ecd7; background-color: #d0e9fb;
box-shadow: none; box-shadow: none;
} }

View File

@ -11,7 +11,7 @@
<!-- NAV --> <!-- NAV -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3"> <nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
<div class="container-fluid"> <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"> <div class="ms-auto d-flex gap-4">
<a href="coach.html" class="nav-link text-white">Inicializar Rutina</a> <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="equipoDisponibles.html" class="nav-link text-white">Equipos Disponibles</a>

View File

@ -0,0 +1,7 @@
document.addEventListener('DOMContentLoaded', function() {
const header = document.querySelector('h1.text-success');
const navbarColor = '#5ca68a'; // El color del navbar
// Cambiar el color de texto
header.style.color = navbarColor;
});

View File

@ -100,7 +100,7 @@ function getRegisterHTML(lang) {
const t = translations[lang]; const t = translations[lang];
return ` return `
<div class="text-center mb-4"> <div class="text-center mb-4">
<h2 class="fw-bold mb-3 text-success">${t.create_account}</h2> <h2 class="fw-bold mb-3 text-primary-strong display-3">${t.create_account}</h2>
</div> </div>
<form id="registerForm" class="w-100" style="max-width: 500px;"> <form id="registerForm" class="w-100" style="max-width: 500px;">
<div class="mb-3"> <div class="mb-3">
@ -134,7 +134,7 @@ function getRegisterHTML(lang) {
<option value="fr">Francés</option> <option value="fr">Francés</option>
</select> </select>
</div> </div>
<button type="submit" class="btn btn-success w-100">${t.register_button}</button> <button type="submit" class="btn btn-primary w-100">${t.register_button}</button>
</form> </form>
<p class="mt-4 text-center">${t.has_account} <a href="#" onclick="showLogin()">${t.login}</a></p> <p class="mt-4 text-center">${t.has_account} <a href="#" onclick="showLogin()">${t.login}</a></p>
<div class="mt-3 d-flex align-items-center fs-6"> <div class="mt-3 d-flex align-items-center fs-6">

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <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="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="css/editorPiscina.css"> <link rel="stylesheet" href="css/editorPiscina.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
@ -15,7 +15,7 @@
<!-- NAV --> <!-- NAV -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3"> <nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
<div class="container-fluid"> <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"> <div class="ms-auto d-flex gap-4">
<a href="coach.html" class="nav-link text-white">Inicializar Rutina</a> <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="equipoDisponibles.html" class="nav-link text-white">Equipos Disponibles</a>