MyLibrary – Nowoczesny System Zarządzania Biblioteką z Integracją AI

MyLibrary to zaawansowana aplikacja typu Full-stack zaprojektowana do kompleksowej obsługi bibliotek. Projekt wykracza poza standardowy system CRUD, integrując zewnętrzne API Google Books oraz sztuczną inteligencję (Google Gemini AI), aby dostarczyć użytkownikom spersonalizowane rekomendacje czytelnicze.

🚀 Kluczowe Funkcjonalności

  • Inteligentny Asystent AI (Gemini Pro): Wbudowany chatbot, który na podstawie dostępnych w bazie książek doradza użytkownikom, co warto przeczytać, analizując ich preferencje w czasie rzeczywistym.
  • Integracja z Google Books API: Możliwość błyskawicznego importowania danych o książkach (tytuł, autor, opis, ISBN) bezpośrednio z globalnej bazy Google do lokalnych zasobów biblioteki.
  • Pełny Cykl Wypożyczeń i Rezerwacji: Zaawansowany system statusów umożliwiający rezerwację książek przez czytelników, zatwierdzanie ich przez administratora oraz monitorowanie terminów zwrotów.
  • Zarządzanie Użytkownikami i Rolami: Bezpieczna autoryzacja oparta na JWT (JSON Web Tokens) z podziałem na role (Reader/Admin) i szyfrowaniem haseł przy użyciu bcrypt.
  • Analityka i Statystyki: Moduł raportowania najpopularniejszych pozycji oraz monitorowania wypożyczeń przeterminowanych.

🛠️ Stos Technologiczny (Tech Stack)

Aplikacja została zbudowana w architekturze klient-serwer z naciskiem na wydajność i skalowalność.

WarstwaTechnologiaZastosowanie
BackendNode.js / Express.jsWydajny serwer API w architekturze REST.
Baza DanychMySQL (Pool Connection)Relacyjne przechowywanie danych z obsługą transakcji i SSL.
AI / LLMGoogle Gemini APIObsługa inteligentnych rekomendacji i czatu.
IntegracjeGoogle Books APIAutomatyzacja zasilania bazy danych o metadane książek.
BezpieczeństwoJWT & bcryptOchrona danych użytkowników i autoryzacja żądań HTTP.
DevOpsDotenv / NodemonZarządzanie konfiguracją i środowiskiem deweloperskim.

🏗️ Architektura Systemu

Jako backend developer postawiłem na czystą strukturę kodu i separację logiki (Separation of Concerns):

  • Controllers: Obsługa logiki biznesowej i przepływu danych.
  • Models: Abstrakcja bazy danych i zapewnienie integralności rekordów.
  • Routes: Przejrzyste i wersjonowane punkty końcowe API.
  • Services: Wydzielona komunikacja z zewnętrznymi dostawcami AI i Google.

💡 Wyzwania Techniczne i Rozwiązania

  • Obsługa SSL w Chmurze: Skonfigurowałem dynamiczne połączenia z bazą danych (MySQL2), które automatycznie wykrywają wymóg szyfrowania TLS (np. przy wdrożeniach na TiDB lub Aiven).
  • Optymalizacja Zapytań: Implementacja connectionLimit i queueLimit w puli połączeń bazy danych, co zapewnia stabilność aplikacji pod większym obciążeniem.
  • Context-aware AI: Chatbot nie tylko „rozmawia”, ale ma dostęp do rzeczywistego stanu magazynowego biblioteki, dzięki czemu poleca tylko te książki, które są aktualnie dostępne do wypożyczenia.

Repozytorium GitHub: https://github.com/DamianMolter/MyLibrary

Status Projektu: Portfolio