Profesjonalna platforma edukacyjna do nauki języka angielskiego, wykorzystująca zaawansowany algorytm powtórek (Spaced Repetition), poziomy CEFR (A1-C1) oraz elementy grywalizacji.
- Algorytm SM-2: Optymalizacja procesu zapamiętywania poprzez inteligentne planowanie powtórek (Spaced Repetition).
- Poziomy CEFR: Słówka podzielone na poziomy trudności od A1 do C1.
- Różnorodne Tryby Nauki:
- ✍️ Pisanie: Ćwiczenie pisowni (PL ↔ EN).
- 🧩 Skojarzenia: Nauka z wykorzystaniem obrazów (integracja z Pixabay).
- 🗣️ Wymowa: Ćwiczenie wymowy z wykorzystaniem Web Speech API.
- Statystyki: Szczegółowe wykresy postępów, czasu nauki i opanowanego materiału.
- Daily Streak: Motywujący system ciągłości nauki.
- Osiągnięcia: System odznak nagradzający regularność i wyniki.
- Autentykacja: Bezpieczne logowanie przez SSO (Centrum Logowania) z Google OAuth.
- Wydajność: Zoptymalizowana baza danych i caching po stronie serwera.
- Responsywność: Pełne wsparcie dla urządzeń mobilnych i desktopowych (PWA ready).
- Dostępność: Tryb jasny i ciemny (Dark Mode).
Projekt zbudowany w oparciu o nowoczesne standardy webowe:
- Frontend: Next.js 15 (App Router), React, TypeScript
- Styling: Tailwind CSS, shadcn/ui (Radix UI)
- Backend / API: Next.js Server Actions
- Baza Danych: PostgreSQL (Vercel Postgres), Drizzle ORM
- Autentykacja: SSO (Centrum Logowania)
- Inne: Recharts, Zod, React Hook Form
- Node.js 18+
- Baza danych PostgreSQL (lokalna lub w chmurze, np. Vercel/Neon)
git clone https://github.com/twoj-login/flashcards-app.git
cd flashcards-app
npm installUtwórz plik .env.local w głównym katalogu projektu i uzupełnij go według wzoru:
# Baza Danych
DATABASE_URL="postgres://uzytkownik:haslo@host:5432/nazwa_bazy"
# SSO (Centrum Logowania)
SSO_CENTER_URL="https://centrum-logowania.example.com"
SSO_CLIENT_ID="flashcards"
SSO_API_KEY="twoj_klucz_api"
# Integracje (Opcjonalne)
PIXABAY_API_KEY="twoj_klucz_pixabay"Wykonaj migracje, aby utworzyć schemat bazy danych:
npm run db:pushnpm run devAplikacja będzie dostępna pod adresem: http://localhost:3000
/app- Główny katalog aplikacji (Next.js App Router).(auth)- Strona logowania (przekierowanie do SSO).(dashboard)- Część chroniona aplikacji (nauka, statystyki, panel admina).
/lib- Biblioteki pomocnicze (konfiguracja DB, Auth, algorytmy).db/schema.ts- Definicja schematu bazy danych.spaced-repetition.ts- Implementacja algorytmu SM-2.
/components- Komponenty interfejsu (UI)./data- Pliki seedujące i dane statyczne.
Aplikacja jest gotowa do łatwej rozbudowy. Główne obszary do dalszego rozwoju to:
- Dodawanie nowych zestawów słówek (poprzez Panel Admina lub pliki seed).
- Rozbudowa modułu statystyk.
- Implementacja trybu multiplayer/wyzwań.
Projekt udostępniony na licencji MIT.