Wróć do projektów
Mobile · React Native · AI
2025 Projekt indywidualny AI-powered

Smart Planner

Cross-platform aplikacja mobilna do planowania nauki, zadań i podróży z wbudowanym asystentem AI (LLaMA 3.1 via GROQ API). Real-time sync przez Firebase, animowane wykresy statystyk i pełny dark mode.

React Native
iOS + Android
LLaMA 3.1
GROQ API
Firebase
Auth + Firestore
5 ekranów
Tab Navigator
Zadania
📚Nauka
🏠Dashboard
✈️Podróże
📊Statystyki

Jeden hub do
wszystkiego co ważne

Smart Planner łączy w jednej aplikacji mobilnej trzy obszary organizacji życia — naukę, zadania i podróże — z wbudowanym asystentem AI, który generuje gotowe harmonogramy i plany wycieczek na życzenie.

Backend oparty w całości na Firebase (Authentication + Cloud Firestore) zapewnia real-time sync między urządzeniami, pełny cykl uwierzytelniania i działanie na iOS oraz Androidzie bez osobnego serwera.

🤖
Asystent AI (LLaMA 3.1)
GROQ API z modelem llama-3.1-8b-instant — generuje plan nauki dzień po dniu lub itinerary wycieczki, temperatura 0.6
🔥
Firebase real-time
onSnapshot na każdym ekranie — dane aktualizują się bez przeładowania, cleanup w useEffect zapobiega wyciekom pamięci
📚
Planer nauki
Kursy z paskami postępu, harmonogram w akordeonach DZIEŃ 1/2/..., licznik godzin nauki, odhaczanie tematów
✈️
Planer podróży
Karty z dynamicznymi zdjęciami Unsplash CDN, odliczanie dni, lista pakowania z paskiem postępu, checkpointy AI
📊
Statystyki z wykresami
Animowany wykres liniowy trendu (buildSmoothPath), wykresy słupkowe z gradientami, zakres Dzień/Tydzień/Miesiąc
🌙
Dark mode + powiadomienia
Globalny przełącznik motywu przekazywany jako prop do wszystkich ekranów, kontekstowe alerty o zaległościach

Szczegóły funkcjonalności

01
Dashboard

Centrum dowodzenia — statystyki zadań, kursów i wypraw, lista zadań na dziś, postęp planów nauki, najbliższa podróż z odliczaniem dni. TopBar z powiadomieniami i przełącznikiem dark mode.

calcDaysLeft(startDate)
avgStudyProgress(plans)
overallScore(tasks, plans)
02
Zadania (TaskScreen)

Lista to-do z filtrami (Wszystkie / Do zrobienia / Zrobione), wyszukiwarką live, statystykami aktywne/ukończone/postęp % i szybkim dodawaniem z pola na dole ekranu.

subscribeToTasks(uid, cb)
toggleTask(uid, taskId)
deleteTask(uid, taskId)
03
Planer nauki

Karty kursów z AnimatedProgressBar, widok szczegółowy z harmonogramem tematów w akordeonach (DZIEŃ 1, DZIEŃ 2...), licznik godzin nauki, odhaczanie tematów z auto-przeliczeniem postępu.

users/{uid}/studyPlans
topicsList: [{name, completed,
              isHeader?}]
04
Planer podróży

Karty wyjazdów z deterministycznym doborem zdjęć Unsplash (resolveTripImageUri na podstawie trip.id), odliczanie dni, lista pakowania z checkboxami i checkpointy generowane przez AI.

users/{uid}/trips
packingList: [{name, packed}]
checkpoints: [{name, completed}]
05
Asystent AI

Chat z LLaMA 3.1 via GROQ API — tryb study generuje harmonogram DZIEŃ X + lista tematów, tryb travel generuje DZIEŃ X + atrakcje. Odpowiedź parsowana i zapisywana do Firestore przez modal.

api.groq.com/openai/v1/
  chat/completions
model: llama-3.1-8b-instant
temperature: 0.6
06
Statystyki

Koło postępu z ogólnym wynikiem %, wskaźnik trendu (+X% vs poprzedni okres), animowany wykres liniowy, wykresy słupkowe planów i priorytetów, filtr Dzień / Tydzień / Miesiąc.

buildSmoothPath(dataPoints)
filterPlansByRange(plans, range)
useMemo(() => rangeInsights)

Firestore — struktura danych

📁 users/{uid}/tasks
textstring
completedboolean
prioritylow / medium / high
createdAtTimestamp
📁 users/{uid}/studyPlans
namestring
progressnumber (0–100)
topicsListarray [{name, completed}]
hoursnumber
datestring (egzamin)
📁 users/{uid}/trips
destinationstring
startDate / endDatestring DD.MM.YYYY
packingListarray [{name, packed}]
checkpointsarray [{name, completed}]
statusNadchodząca / Zakończona

Stack technologiczny

📱
React Native 0.73
Cross-platform iOS + Android. Hooks: useState, useEffect, useCallback, useMemo. Komponenty funkcyjne.
🔷
TypeScript 5.x
Typowanie statyczne, interfejsy Task, DashboardProps, TripItem, StudyPlan — bezpieczeństwo typów w całym projekcie.
🔥
Firebase
Authentication (login, rejestracja, reset hasła), Cloud Firestore z real-time listenerami onSnapshot.
🤖
GROQ API
LLaMA 3.1 8B Instant — generowanie harmonogramów nauki i planów podróży. Klucz API przez env variable.
🗺️
React Navigation
Tab Navigator (5 ekranów) + Stack Navigator dla auth. Nawigacja przez route.params.mode (study / travel).
🖼️
Unsplash CDN
15 rotujących zdjęć podróży — deterministyczny wybór przez resolveTripImageUri(), fallback chain przez handleImageError.

Co zostało dostarczone

🔐
Auth flow
Rejestracja, logowanie, reset hasła przez Firebase — obsługa błędów auth/email-already-in-use
🧠
AI Planner
Chat z LLaMA 3.1, parsowanie odpowiedzi i zapis gotowego planu do Firestore przez modal
📈
Wykresy animowane
AnimatedLineChart, GradientBarChart, CircleProgress, RangeTabs, TrendIndicator
🌙
Dark mode
Globalny isDarkMode przekazywany jako prop do wszystkich ekranów — spójny motyw wizualny
🔔
Powiadomienia
Kontekstowe alerty o zaległościach i postępach — dynamicznie wyliczane na podstawie danych z Firestore
Real-time sync
onSnapshot na wszystkich ekranach, cleanup useEffect — zero wycieków pamięci przy odmontowaniu

Projekt indywidualny

AT
Andrii Torianyk
UI · React Native · Firebase · GROQ AI · Wykresy · Nawigacja
github.com/Andrii418
Wszystkie projekty