Všetky projekty

FitUp

Fitness aplikácia na zaznamenávanie stravy, tréningov a sledovanie mesačného pokroku. Spája mobilné rozhranie v React Native a Expo s backendovým API v Laraveli.

FituUp Banner

Pre koho je projekt

Ľudia, ktorí si chcú zaznamenávať stravu a tréningy a sledovať svoj pokrok po mesiacoch.

Výsledky a prínos

  • Jedna fitness aplikácia zahŕňa záznamy stravy, tréningov a prehľad mesačného pokroku.

Každodenné záznamy a mesačný prehľad

FitUp spája tri súvisiace oblasti: stravu, tréningy a sledovanie pokroku. Namiesto samostatného predstavenia technológií projekt ukazuje mobilné riešenie pre pravidelné zaznamenávanie aktivít a ich následný prehľad.

Výzva

Spojiť evidenciu stravy, tréningov a mesačného pokroku v jednej mobilnej aplikácii.

Riešenie

Mobilná časť využíva React Native a Expo a komunikuje s API v Laraveli. Technologický základ dopĺňajú React Navigation, Axios, React Hook Form, Victory Native a NativeWind.

Mobilná aplikácia a samostatné API

React Native a Expo tvoria mobilnú časť, Laravel poskytuje backendové API. Stack zahŕňa aj React Navigation, Axios, React Hook Form, Victory Native a NativeWind. Presné dátové modely a osobný rozsah práce doplním z reálneho repozitára.

Mesačná sumarizácia tréningov

Ukážka sčíta počet tréningov a ich trvanie v zvolenom mesiaci. Pracuje s modelovými záznamami a predpokladá dátum vo formáte YYYY-MM-DD. Nejde o implementáciu výživových odporúčaní ani o reálnu analytiku FitUp.

illustrative-monthly-summary.ts
type Workout = { date: string; minutes: number };

function monthlySummary(workouts: Workout[], month: string) {
  if (!/^\d{4}-(0[1-9]|1[0-2])$/.test(month)) {
    throw new Error("Expected YYYY-MM");
  }
  const entries = workouts.filter(
    (workout) => workout.date.startsWith(`${month}-`),
  );
  return {
    workouts: entries.length,
    minutes: entries.reduce((sum, workout) => sum + workout.minutes, 0),
  };
}