page stats fonctionelle et connectée a la bdd

This commit is contained in:
Quentin Roussel
2023-03-22 09:49:49 +01:00
parent 4b0f2f237f
commit cf6c4861cb
7 changed files with 169 additions and 77 deletions

View File

@@ -12,7 +12,7 @@ export default function Home() {
const [datasets, setDatasets] = useState(null);
const [averages, setAverages] = useState(null);
const [differences, setDifferences] = useState(null);
useEffect(() => {
if (datasets) {
let newAverages = []
@@ -20,25 +20,25 @@ export default function Home() {
for (let i = 0; i < datasets.length; i++) {
let currentEntriesCount = 0;
let previousEntriesCount = 0;
for(let x of datasets[i].current) {
if(x != null) {
for (let x of datasets[i].current) {
if (x != null) {
currentEntriesCount++;
}
}
for(let x of datasets[i].previous) {
if(x != null) {
for (let x of datasets[i].previous) {
if (x != null) {
previousEntriesCount++;
}
}
if(currentEntriesCount != 0) {
newAverages[i] = datasets[i].current.reduce((a, b) => a + b) / currentEntriesCount;
if(previousEntriesCount > 0) {
if (currentEntriesCount != 0) {
newAverages[i] = datasets[i].current.reduce((a, b) => a + b) / currentEntriesCount;
if (previousEntriesCount > 0) {
newDifferences[i] = newAverages[i] - datasets[i].previous.reduce((a, b) => a + b) / datasets[i].previous.length
}else {
} else {
newDifferences[i] = newAverages[i]
}
}else {
} else {
newDifferences[i] = 0;
newAverages[i] = 0;
}
@@ -47,31 +47,31 @@ export default function Home() {
setDifferences(newDifferences);
}
}, [datasets]);
const { stats, loading, error } = useStats(14, "jour");
useEffect(() => {
console.log(getDay(new Date("2023-03-20T14:00:00.000Z")))
})
useEffect(() => {
if(!error && !loading) {
let reviewCount = [null,null,null,null,null,null,null];
let reviewCountPrev = [null,null,null,null,null,null,null]
let reviewAvg = [null,null,null,null,null,null,null]
let reviewAvgPrev = [null,null,null,null,null,null,null]
for(let i = 0; i < stats.length; i++) {
if (!error && !loading) {
let reviewCount = [null, null, null, null, null, null, null];
let reviewCountPrev = [null, null, null, null, null, null, null]
let reviewAvg = [null, null, null, null, null, null, null]
let reviewAvgPrev = [null, null, null, null, null, null, null]
for (let i = 0; i < stats.length; i++) {
let date = new Date(Date.parse(stats[i].date))
let now = new Date();
let day = (date.getDay() - 1) % 7;
let week = getWeek(date, 1);
let thisWeek = getWeek(now, 1);
console.log({date,week,thisWeek,day})
if(week == thisWeek) {
console.log({ date, week, thisWeek, day })
if (week == thisWeek) {
reviewCount[day] = stats[i].nb_avis;
reviewAvg[day] = stats[i].moyenne_globale;
}else if(week = thisWeek - 1){
} else if (week = thisWeek - 1) {
reviewAvgPrev[day] = stats[i].moyenne_globale;
reviewCountPrev[day] = stats[i].nb_avis;
}
@@ -82,53 +82,52 @@ export default function Home() {
])
}
}, [stats]);
function dataVisualizer(title, current, previous, average, difference) {
return <div key={title}>
<h3>{title}</h3>
<Card className={styles.averageCard}>
<Card.Title>Moyenne</Card.Title>
<Card.Body className={styles.averageCardBody}>
<div
className={styles.averageMainValue}
>
{Math.round(average * 1e2) / 1e2}
</div>
<div
className={[styles.averageCardSecondaryValue, difference >= 0 ? styles.averagePositive : styles.averageNegative].join(' ')}
>
{(difference >= 0 ? "+" : "-") + Math.round(difference * 1e2) / 1e2}
</div>
</Card.Body>
</Card>
<ComparativeBarChart
xlabels={["lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"]}
label0="Cette semaine"
label1="La semaine dernière"
data0={current}
data1={previous}
/>
<hr />
<h3>{title}</h3>
<Card className={styles.averageCard}>
<Card.Title>Moyenne</Card.Title>
<Card.Body className={styles.averageCardBody}>
<div
className={styles.averageMainValue}
>
{Math.round(average * 1e2) / 1e2}
</div>
<div
className={[styles.averageCardSecondaryValue, difference >= 0 ? styles.averagePositive : styles.averageNegative].join(' ')}
>
{(difference >= 0 ? "+" : "-") + Math.round(difference * 1e2) / 1e2}
</div>
</Card.Body>
</Card>
<ComparativeBarChart
xlabels={["lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"]}
label0="Cette semaine"
label1="La semaine dernière"
data0={current}
data1={previous}
/>
<hr />
</div>
}
return (
<>
<Head>
<title>Create Next App</title>
<meta name="description" content="Page d'accueil" />
</Head>
<Container fluid>
<Card>
<Card.Header as="h2">Vos performances cette semaine</Card.Header>
<Card.Body>
{datasets && averages && differences && datasets.map((set, i) => dataVisualizer(set.title, set.current, set.previous, averages[i], differences[i]))}
</Card.Body>
<div className='col col-12 col-lg-8 mx-auto'>
</div>
</Card>
</Container>
<Head>
<title>Telereview</title>
<meta name="description" content="Page d'accueil" />
</Head>
<Container fluid>
<Card>
<Card.Header as="h2">Vos performances cette semaine</Card.Header>
<Card.Body>
{datasets && averages && differences && datasets.map((set, i) => dataVisualizer(set.title, set.current, set.previous, averages[i], differences[i]))}
</Card.Body>
<div className='col col-12 col-lg-8 mx-auto'>
</div>
</Card>
</Container>
</>
)
}
)
}