Week3

Week 3 #

Description of all implemented features #

User Management #

  • CRUD operations for users Full implementation of Create, Read, Update, and Delete functionalities for user accounts.

Book Management #

  • CRUD operations for books Complete functionality to add, view, edit, and delete books in the system.
  • Books quantity tracking
    Implemented the ability to monitor and manage book quantities.
  • Book assignment to libraries
    Added functionality to assign books to different libraries.

Booking System #

  • Adding book images(covers)
  • User booking retrieval
    Added the ability for users to view their own bookings.

Library Management #

  • CRUD operations for libraries Full implementation of Create, Read, Update, and Delete functionalities for libraries.
  • Manager assignment Added the ability to attach and detach managers to/from libraries.

Authentication & Security #

  • Registration and authentication
    Implemented user sign-up and login functionality.
  • Route protection with JWT

Additional Features #

  • Favorite books functionality
  • Book images
  • Booking date calculation

Changing the status of books: https://github.com/IU-Capstone-Project-2025/libnet/pull/32
Ability to unlike a book: https://github.com/IU-Capstone-Project-2025/libnet/pull/28
Ability to get specific liked book by user: https://github.com/IU-Capstone-Project-2025/libnet/pull/25
Cancelled status to a booking: https://github.com/IU-Capstone-Project-2025/libnet/pull/24
Favorite books interaction: https://github.com/IU-Capstone-Project-2025/libnet/pull/22
Implementation of filter with and_ for book lookup: https://github.com/IU-Capstone-Project-2025/libnet/pull/30
Ability to get all libraries that have the book: https://github.com/IU-Capstone-Project-2025/libnet/pull/21
Implementation of logins for different access, view library catalogue: https://github.com/IU-Capstone-Project-2025/libnet/pull/18

Functional User Journeys for LibNet System #

1. Admin User Journey #

Scenario: Admin manages libraries and access rights.

Authentication Flow #

StepUser ActionUI ElementsSystem ResponseErrors/Alternate Paths
1Clicks “Admin” in auth type selectorLogo dropdown (User/Manager/Admin)Redirects to Main Admin Auth Page-
2Enters email/passwordFields: Email, PasswordValidates credentials“Invalid credentials” toast
3Clicks “Войти”Button “Войти”Redirects to Main Admin Page-

Library Management #

StepUser ActionUI ElementsSystem Response
1Clicks “Добавить библиотеку”Button on Main Admin PageOpens Library Admin Page (empty)
2Fills library detailsFields: Name, Address, Hours, etc.Enables “Сохранить” button
3Assigns managersMulti-select dropdownSaves manager permissions
4Clicks “Сохранить”Button “Сохранить”Updates DB; shows success toast

Account Management #

StepUser ActionUI ElementsSystem Response
1Clicks username in headerProfile dropdownOpens Account Admin Page
2Edits profile infoFields: Name, Email, etc.Enables “Сохранить”
3Clicks “Выйти”Button “Выйти”Logs out; redirects to auth page

2. Manager User Journey #

Scenario: Manager processes book orders and updates library info.

Authentication Flow #

StepUser ActionUI ElementsSystem Response
1Clicks “Manager” in auth type selectorLogo dropdownRedirects to Main Manager Auth Page
2Enters email/passwordFields: Email, PasswordValidates credentials
3Clicks “Войти”Button “Войти”Redirects to Manager Main Page

Order Management #

StepUser ActionUI ElementsSystem Response
1Clicks “Бронирования”Navbar buttonOpens Orders Manager Page
2Searches ordersSearch barFilters orders in real-time
3Updates order statusDropdown: “Ожидает выдачи” → “Выдано”Saves to DB; updates UI

Book Management #

StepUser ActionUI ElementsSystem Response
1Clicks “Добавить книгу”Button on Manager Main PageOpens empty Book Manager Page
2Fills book detailsFields: Title, Author, AvailabilityEnables “Сохранить”
3Clicks “Сохранить”Button “Сохранить”Adds book to catalog; shows toast

3. User (Reader) Journey #

Scenario: User browses books, makes reservations, and manages favorites.

Authentication Flow #

StepUser ActionUI ElementsSystem Response
1Clicks “User” in auth type selectorLogo dropdownRedirects to Main User Auth Page
2Clicks “Создать аккаунт”Button under login formOpens registration form
3Fills details + clicks “Зарегистрироваться”Fields: Name, Email, PasswordCreates account; redirects to Main Page

Book Reservation #

StepUser ActionUI ElementsSystem Response
1Searches for a bookSearch bar on Main PageShows results in real-time
2Clicks “Забронировать”Button on Book PageOpens library selector modal
3Selects library + confirmsDropdown + “Подтвердить” buttonReserves book; shows status in Заказы

Favorites Management #

StepUser ActionUI ElementsSystem Response
1Click “Добавить в избранное”Heart icon on Book PageAdds to Избранное page
2Navigates to ИзбранноеNavbar buttonDisplays all favorited books
3Clicks “Удалить из избранного”Button next to bookRemoves from favorites

Demonstration of the working MVP: #

Internal demo #

Date: 2025-06-25

User (Reader) Flow: #

  1. Homepage
    • Book catalog display
  2. Book Details Page
    • Full book description
    • Availability across libraries
  3. Registration
    • New user sign-up process
  4. Profile Management
    • Personal information editing
    • Field updates (email, password etc.)
  5. Authentication
    • Login with credentials
    • Error handling for invalid inputs
  6. Favorites System
    • Add/remove books to favorites
    • Favorites list view
  7. Account Actions
    • Successful logout flow

Manager Flow: #

  1. Dashboard Access
    • Manager authentication
  2. Book Management
    • Edit book information
    • Catalog browsing
  3. Order Processing
    • View orders list
    • Change order statuses
  4. Library Administration
    • Edit library details
  5. Navigation
    • Access to: Catalog, Favorites, Orders sections
  • http://83.222.17.10:8000/docs

Weekly commitments #

Individual contribution of each participant #

Team MemberCompleted Work
Ivan MurzinHTML layout mastering on existing pages, layout re-structurizing and writing styles for components and pages. Fixing existing styles.
Aliya SagdievaUpdated the readme. Made the report documentation. Recorded a demo.
Alena AverinaMade uploading book covers in url or file format. Started doing logging on the loki + grafana stack.
Anna SerovaImplemented the frontend: Functionality and display of user orders. Functionality and display of user favorites. Changing the choice of city in registration and account to existing ones, choosing a library for ordering a book, duplicating books in several libraries. Manager panel: displaying books of a specific library, switching to user pages, loading and interacting with orders in the library for the manager, changing the library, part of the styles of the manager side, fixing part of the back endpoints.
Artem OstapenkoImplemented in backend development: get cities of existing libraries, add ability to assign book to different libraries, favorite books, protect endpoint via JWT tokens, books quantity functional, book images, calculate date_to when a creating book, refine the change of booking status.

Plan for Next Week #

Frontend Development Plan: #

  1. Add missing user and administrator functions.
  2. Make a FAQ page.
  3. Make an admin part and functionality for it.

Backend Development Plan: #

  1. Search & Filters – Find books by title, author, genre, etc.
  2. To identify missing backend functionality, we will analyze and implement necessary API endpoints for different user roles (admin, manager, regular user) based on current system requirements.

Confirmation of the code’s operability #

We confirm that the code in the main branch:

  • In working condition.
  • Run via docker-compose (or another alternative described in the README.md).