feat: align docs with code, finish_place, registered status, UI filters, tests, CI
Some checks failed
CI / build-and-test (pull_request) Has been cancelled

- Add PLAN.md and sync backend docs, .env.example, API doc (404 details)
- Document mock DB and PORT/API_PORT in docs/backend.md; README monorepo + frontend/.env.example
- Migration 002: finish_place column, status registered; mapper and mock DB updated
- Frontend: registered status, finishPlace, calendar year/month filters, pace sparkline
- Extract createApp for tests; supertest + tsx; GitHub Actions CI

Made-with: Cursor
This commit is contained in:
Vaka.pro
2026-04-06 22:20:31 +03:00
parent 1ffc3a65eb
commit a2dcf67396
27 changed files with 1410 additions and 286 deletions

View File

@@ -144,6 +144,14 @@ a {
font-size: var(--font-size-h2);
}
.dashboard-section__intro {
margin: calc(var(--space-2) * -1) 0 var(--space-4);
max-width: 42rem;
color: var(--color-text-muted);
font-size: var(--font-size-caption);
line-height: 1.5;
}
.dashboard-grid--pr {
margin-top: 0;
}
@@ -258,6 +266,74 @@ a {
color: var(--color-success);
}
.race-card__status--registered {
background: #fff4e0;
color: #8a5a00;
}
.races-filter {
margin-top: var(--space-5);
display: flex;
flex-wrap: wrap;
gap: var(--space-4);
align-items: flex-end;
}
.races-filter__field {
display: flex;
flex-direction: column;
gap: var(--space-1);
min-width: 10rem;
}
.races-filter__label {
font-size: var(--font-size-caption);
font-weight: 600;
color: var(--color-text-muted);
}
.races-filter__select {
font: inherit;
padding: var(--space-2) var(--space-3);
border-radius: var(--radius-sm);
border: 1px solid var(--color-border);
background: var(--color-surface);
color: var(--color-text);
}
.pace-chart {
margin-top: var(--space-4);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
padding: var(--space-4);
background: #fcfdff;
}
.pace-chart__svg {
display: block;
width: 100%;
max-width: 560px;
height: auto;
}
.pace-chart__line {
stroke: var(--color-accent);
stroke-width: 1.5;
vector-effect: non-scaling-stroke;
}
.pace-chart__caption {
margin: var(--space-3) 0 0;
font-size: var(--font-size-caption);
color: var(--color-text-muted);
}
.pace-chart__empty {
margin: var(--space-2) 0 0;
color: var(--color-text-muted);
font-size: var(--font-size-body);
}
.page-link {
margin-top: var(--space-4);
display: inline-flex;