-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
118 lines (82 loc) · 3.58 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
const express = require("express");
const cool = require("cool-ascii-faces");
const app = express();
const PORT = process.env.PORT || 16078;
app.use(express.static("public"));
app.get("/", (req, res) => {
res.send(`
<h1>Bienvenido a la API del Grupo 13</h1>
`);
});
app.get("/about", (req, res) => {
res.sendFile(__dirname + "/public/about.html");
});
app.get("/cool", (req, res) => {
res.send(`<h1>${cool()}</h1>`);
});
//PARTE BLANCA GARCÍA ALONSO
const datosB = require("./index-BGA.js");
app.get("/samples/BGA", (req, res) => {
let resultado = "<h2> MEDIA DE PROYECTOS POR COMUNIDAD</h2>";
const comunidades = ["andalucia", "aragon", "asturias", "baleares", "canarias", "cantabria", "castilla y leon", "castilla-La mancha", "catalunia", "valencia", "extremadura", "galicia", "madrid", "murcia", "pais vasco"];
comunidades.forEach(comunidad => {
resultado += `<p> <h4>Media de project_count en ${comunidad}:</h4> ${calcularMediaProyectos(comunidad)} </p>`;
});
res.send(resultado);
});
function calcularMediaProyectos(comunidad) {
let datosFiltrados = datosB.filter(d => d.comunidad === comunidad);
let totalAmount = datosFiltrados.reduce((acc, d) => acc + d.project_count, 0);
let media = totalAmount / datosFiltrados.length;
return media.toFixed(2);
}
//PARTE DARÍO
const datosD = require("./index-DLV.js");
//Algoritmo usado y replicado:
function mediaParquesPorComunidad (){
let mapDeComunidades = {};
datosD.forEach(d => {
if (!mapDeComunidades[d.autonomous_community]) {
mapDeComunidades[d.autonomous_community] = { total: 0, count: 0 };
}
mapDeComunidades[d.autonomous_community].total += d.current_area;
mapDeComunidades[d.autonomous_community].count += 1;
});
let mediaPorComunidad = Object.keys(mapDeComunidades).map(comunidad => ({
comunidad: comunidad,
media_current_area: (mapDeComunidades[comunidad].total / mapDeComunidades[comunidad].count).toFixed(2)
}));
return mediaPorComunidad;
}
app.get("/samples/DLV", (req, res) => {
let medias = mediaParquesPorComunidad();
let resultado = ("<h2>MEDIA DE TODAS LAS ÁREAS DE LOS PARQUES NATURALES POR COMUNIDAD AUTÓNOMA </h2>");
medias.forEach(m => {
resultado += (`<p> <h4>Media de todas las áreas de todos los parques naturales en ${m.comunidad}:</h2> ${m.media_current_area}</p>`);
});
res.send(resultado);
});
// PARTE ALVARO MORILLO
const datosAlvaro = require("./index-AMN.js");
function calcularMediaNumeroDeIncendios(comunidad) {
const datosFiltrados = datosAlvaro.filter(d => d.comunidad === comunidad);
if (datosFiltrados.length === 0) return "No hay datos disponibles";
const totalAccidentes = datosFiltrados.map(d => d.number_of_accidents).reduce((acc, num) => acc + num, 0);
return (totalAccidentes / datosFiltrados.length).toFixed(2);
}
app.get("/samples/AMN", (req, res) => {
const comunidades = [
"Andalucía", "Aragón", "Asturias", "Canarias", "Cantabria", "Castilla y León", "Castilla-La Mancha", "Cataluña", "Comunidad Valenciana", "Ceuta", "Comunidad de Madrid"
];
const resultado = `
<h2>MEDIA DE ACCIDENTES FORESTALES POR COMUNIDAD</h2>
${comunidades.map(comunidad => `
<p><strong>Media de número de accidentes forestales en ${comunidad}:</strong> ${calcularMediaNumeroDeIncendios(comunidad)}</p>
`).join("")}
`;
res.send(resultado);
});
// Iniciar el servidor
app.listen(PORT, () => {
console.log(`Servidor corriendo en el puerto :${PORT}`);
});