Smart Library Docs

Student Portal

Documentation for the Student self-service portal — loans, reservations, fines, catalogue browsing, and personalized dashboard.

Student Portal

Route prefix: /student/* Layout: frontend/src/app/student/layout.tsx Required role: ROLE_STUDENT

The Student portal is a self-service dashboard that empowers students to manage their library activity independently — viewing active loans, checking fines, browsing the catalogue, and managing reservations.

Menu ItemRouteIcon
Overview/student/overviewLayoutDashboard
My Loans/student/loansBookCopy
Reservations/student/reservationsBookmark
Fines/student/finesCircleDollarSign
Catalogue/student/booksSearch
Notifications/student/notificationsBell
Profile/student/profileUser

Pages

1. Overview (/student/overview)

File: student/overview/page.tsx

A personalized dashboard with a greeting, status cards, recommendations, and activity feed.

Features:

  • Welcome Header: Personalized greeting using user.firstName from AuthContext

  • Status Cards (3 columns):

    • Active Loans (blue accent) — count of unreturned transactions
    • Pending Reservations (purple accent) — hold queue status
    • Outstanding Fines (green accent) — total unpaid fine amount
  • Recommended For You: Book suggestions grid based on browsing history

    • Each card shows title, author, and availability status (Available/Waitlist)
    • Hover effects with border highlighting
  • Semester Goal: Reading challenge tracker

    • Progress bar showing books read vs. goal (e.g., 12/20 = 60%)
    • Motivational message
  • Recent Activity: Timeline of recent library interactions

API Integration:

  • Loans: GET /api/v1/circulation/history (filtered for returnedAt === null)
  • Fines: GET /api/v1/fines (filtered for status === 'UNPAID')

2. My Loans (/student/loans)

File: student/loans/page.tsx

Table view of all currently borrowed items with renewal capabilities.

Features:

  • Data Table with columns: Book Title, Author, Due Date, Status, Actions
  • Status badges:
    • Active — blue badge
    • Overdue — orange badge
  • Renew button per loan (outline style)
  • Currently uses mock data as a UI demonstration

3. Reservations (/student/reservations)

File: student/reservations/page.tsx

View and manage book hold requests.

Features:

  • List of active reservation holds
  • Reservation status tracking (PENDING, FULFILLED, CANCELLED, EXPIRED)
  • Queue position information

4. Fines (/student/fines)

File: student/fines/page.tsx

View outstanding and historical fines.

Features:

  • Fine list with amount, reason, and status
  • Students see only their own fines (server-side filtering by userId)
  • Visual distinction between UNPAID, PAID, and WAIVED statuses

API Integration: GET /api/v1/fines


5. Catalogue (/student/books)

File: student/books/page.tsx

Browse and search the complete library catalogue.

Features:

  • Searchable list of all books
  • Category filtering
  • Availability indicators per book copy
  • Book detail view with copy status

API Integration: GET /api/v1/books


6. Notifications (/student/notifications)

File: student/notifications/page.tsx

In-app notification feed for:

  • Reservation availability alerts
  • Due date reminders
  • Fine notifications
  • System announcements

7. Profile (/student/profile)

File: student/profile/page.tsx

Personal profile view and account settings.

Key Limitations (vs. Admin)

  • ❌ Cannot create, edit, or delete books
  • ❌ Cannot issue or return books (must visit desk)
  • ❌ Cannot manage other users
  • ❌ Cannot pay/waive fines (must be done by librarian)
  • ✅ Full self-service read access to own data

On this page