Skip to main content
The Admin Dashboard provides comprehensive control over the CS Library Kiosk system, allowing administrators to manage books, users, and monitor library activity.

Admin Access

Administrators access the system using email and password authentication, separate from the student ID card scanning system.

Login Credentials

Admins log in through the web interface at the / route using:
  • Email address (stored in lowercase)
  • Password (hashed with bcrypt)
Test admin account: [email protected] / Password as configured in your database

Authentication Flow

1

Navigate to Login

Open the kiosk web interface in your browser
2

Enter Credentials

Enter your admin email and password in the login form (mainwebsite.py:204-221)
3

Authenticate

The system validates your credentials using bcrypt password verification:
  • Email is normalized to lowercase
  • Password is checked against the hashed password in the database
  • Active status is verified (active = 1)
4

Access Dashboard

Upon successful authentication, you’ll be redirected to the main dashboard interface
Failed login attempts should be monitored. The SRS specifies a 5-attempt lockout policy (though not yet implemented in current codebase).

Admin Capabilities

As an administrator, you have access to:

Book Management

  • Add new books via manual entry or ISBN API lookup
  • Update book status (Available, Checked Out)
  • Manage book metadata (title, author, cover image, shelf location)
  • View complete catalog with real-time availability

User Management

  • View all registered users
  • Monitor user borrowing activity
  • Manage user active status
  • View user checkout history and current loans

Reports & Analytics

  • Generate usage statistics
  • View checkout history across all users
  • Identify popular books and usage patterns
  • Export data for analysis

System Monitoring

  • Real-time inventory status
  • Transaction logs
  • Overdue book tracking

Security Features

password_hash
string
Admin passwords are stored using bcrypt hashing (database.py:80, 112)
active
boolean
Active status controls admin access - inactive admins cannot log in
email
string
Email addresses are case-insensitive and stored in lowercase (database.py:88, 109)
From the admin dashboard, you can navigate to:

Session Management

The current implementation uses NiceGUI’s session management. The SRS specifies:
  • Session timeout after 15 minutes of inactivity
  • Automatic logout for security

Admin vs Student Access

Key differences between admin and student access:
FeatureStudentsAdministrators
AuthenticationStudent ID card scanEmail/Password
Book CheckoutSelf-serviceFull access
Catalog ManagementView onlyFull CRUD
User ManagementOwn account onlyAll users
ReportsPersonal historySystem-wide
System SettingsNo accessFull access

Next Steps

Manage Books

Add new books and maintain the catalog

Manage Users

View and manage user accounts

View Reports

Generate usage statistics and analytics

System Config

Configure system settings

Build docs developers (and LLMs) love