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ść.
| Warstwa | Technologia | Zastosowanie |
| Backend | Node.js / Express.js | Wydajny serwer API w architekturze REST. |
| Baza Danych | MySQL (Pool Connection) | Relacyjne przechowywanie danych z obsługą transakcji i SSL. |
| AI / LLM | Google Gemini API | Obsługa inteligentnych rekomendacji i czatu. |
| Integracje | Google Books API | Automatyzacja zasilania bazy danych o metadane książek. |
| Bezpieczeństwo | JWT & bcrypt | Ochrona danych użytkowników i autoryzacja żądań HTTP. |
| DevOps | Dotenv / Nodemon | Zarzą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
connectionLimitiqueueLimitw 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

