Aplikacja internetowa zostala zaprojektowana dla środowiska akademickiego. Jej głównym celem jest usprawnienie wymiany materiałów edukacyjnych (notatek) oraz ułatwienie komunikacji między studentami w czasie rzeczywistym. System wyróżnia się na tle konkurencji autorskim mechanizmem weryfikacji i oceny jakości materiałów przez samych użytkowników, co pozwala na szybkie filtrowanie najbardziej wartościowych treści
Kluczowe funkcjonalności:
- Zarządzanie notatkami: Udostępnianie, pobieranie, filtrowanie według przedmiotów oraz zapisywanie wybranych materiałów na profilu.
- System ocen i komentarzy: Możliwość oceniania materiałów w skali 1-5 oraz dyskusji pod notatkami.
- Czat grupowy: Komunikacja w czasie rzeczywistym z możliwością edycji i usuwania wiadomości oraz przesyłania własnych notatek bezpośrednio w oknie rozmowy.
- Panel administracyjny: Zarządzanie kontami użytkowników, blokowanie uprawnień, dodawanie przedmiotów oraz wgląd w statystyki serwisu.
Stack Technologiczny Aplikacja została zbudowana w nowoczesnej architekturze klient-serwer.
Backend (Serwer):
- Język: Python.
- Framework: FastAPI (zapewniający wysoką wydajność i asynchroniczność).
- Baza danych: PostgreSQL (relacyjna baza danych).
- ORM: SQLAlchemy (mapowanie obiektowo-relacyjne).
- Migracje bazy: Alembic.
- Bezpieczeństwo: Algorytm haszujący Argon2 (hasła) oraz tokeny JWT (autoryzacja). Frontend (Klient):
- Język: TypeScript (statyczne typowanie).
- Biblioteka: React (podejście komponentowe).
- Stylizacja: Tailwind CSS.
- Zarządzanie stanem: Zustand.
- Obsługa formularzy: Formik + Yup (walidacja).
- Komunikacja API: Axios. Infrastruktura i narzędzia:
- Konteneryzacja: Docker & Docker Compose.
- Kontrola wersji: Git.
- Dokumentacja API: Swagger UI (automatycznie generowana przez FastAPI).