Skip to content

IU-Capstone-Project-2025/libnet

Repository files navigation

LibNet

LibNet is a service that unifies the search of the books for a user, making it more simple. Libraries can plug into our system to keep track of available books and let users reserve them easily. The aggregator is built to work with many libraries at once, so everything stays organized and simple to reach.

🎯 Planned Functionality

πŸ‘₯ User Roles

πŸ›‘οΈ Admin

  • Manage library manager permissions
  • Add/remove libraries to the system
  • Oversee platform-wide operations

πŸ“š Library Manager

  • View and update book reservation statuses
  • Manage library information (hours, location, policies)
  • Add/edit/remove books in their assigned library

πŸ‘©πŸ’» Reader (User)

  • Book Discovery:
    • Search across all libraries
    • Filter by genre, availability, or location
    • Save favorites for quick access
  • Reservations:
    • Book items at preferred libraries
    • Track reservation status
  • Self-Service:
    • FAQ knowledge base
    • Account management

Key Implemented Features

For Readers

  • πŸ” Unified book search across all partner libraries
  • πŸ“… Online reservation system with status tracking
  • ❀️ Favorites list for saved books
  • πŸ“± Responsive design for devices

For Library Staff

  • πŸ“Š Manager dashboard for reservations
  • πŸ“š Book inventory management
  • 🏒 Multi-library support

Technical Highlights

  • ⚑ FastAPI backend with JWT authentication
  • 🎨 React frontend with Vite optimization
  • πŸ“Š Grafana/Loki monitoring stack
  • πŸ”„ Automated database migration (Ollama)
  • πŸ›‘οΈ Role-based access control

Impact

  • Fast book discovery for users
  • Centralized management for library networks

πŸ” Demo Access

User Account

The live demo is publicly available with standard user access:
🌐 libnet.site

Admin/Manager Accounts

For testing privileged access:

  • Manager panel
  • Admin dashboard
    πŸ“© Contact via Telegram: @alliumpro to request credentials

Access is restricted to prevent unauthorized system changes.

Monitoring Setup

Loki Logs Configuration

  1. Install the Docker logging plugin: To launch our service. First download the plugin.:
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions

Then do:

docker compose up --build -d

⚠️ Note: The system won't launch without the required .env file configuration.

Accessing Grafana

To access the Grafana monitoring dashboard:

  1. Open in your browser:
    http://<your-server-ip>:3000

  2. Authentication:
    Credentials are restricted to team members only

  3. Request access:
    Contact project maintainers:

⚠️ Note: Some dashboard features require environment variables and may not be fully accessible without proper configuration.

Deployment Steps

  1. Clone the repository

    git clone https://github.com/IU-Capstone-Project-2025/libnet.git
    cd libnet
  2. Configure environment

    cd backend
    nano  .env  # Create environment file
  3. Google SMTP Setup:

    • Enable 2FA on your Google account
    • Get a key for the application via Google
    • Enter the key in SMTP_PASS, SMTP_USER as email
  4. Edit .env file:

    Create a database, make a secret key, create a database user.

    DATABASE_URL=database-url 
    SECRET_KEY=your-secret-key 
    POSTGRES_USER=your_db_user
    POSTGRES_PASSWORD=your_db_password
    POSTGRES_DB=your_db_name
    SMTP_USER=your-email@gmail.com
    SMTP_PASS=your-google-app-password
  5. Remove lines 12-20 inclusive from /libnet/frontend/nginx.conf and change libnet.site to localhost in line 11.

  6. Launch services

    docker-compose up -d --build

The project has been launched!

Roadmap

πŸš€ Week 1 Foundation & Planning

Team Setup

  • Finalize team members
  • Assign initial roles (Dev, PM, UX, etc.)

Project Definition

  • Pick 1 idea from brainstorm (with problem validation)
  • Define:
    • Target users
    • Problem statement
    • Writing user stories

Tech Foundation

  • Setup Git repo:
    • Basic structure (/frontend, /backend, .gitignore)
    • Runnable proof-of-concept
  • Docker support:
    • Dockerfile per component
    • docker-compose.yml for local orchestration
  • Design development started

πŸš€ Week 2 Initial Design & Elaboration

Requirements & Planning

  • Expand MVP user stories with detailed acceptance criteria
  • Create prioritized backlog (e.g., GitHub Projects/Jira)

Design

  • Development of the main part of the Design
  • User Flow Diagrams

Frontend

  • Setup project structure (components, pages, assets)
  • Implement static versions of:
    • Main page
    • Book search page
    • User profile skeleton

Backend

  • Define API spec (OpenAPI/Swagger) for MVP endpoints
  • Implementation of part of MVP
  • Implement endpoints

πŸš€ Week 3 MVP Development

Core Features

  • Implement the highest priority features from the backlog
    • Book covers upload (file/URL)
    • Favorites functionality
    • Multi-library support
    • Booking date calculation

Frontend

  • Connect key pages to backend APIs
    • User orders & favorites
    • Library selection
    • Manager panel
  • Implement high-priority features
    • City/library switching
    • Component styling
    • Layout restructuring

Backend

  • Complete essential API endpoints
    • Book quantity management
  • Implement high-priority features
    • JWT token protection
    • Image handling

πŸš€ Week 4 Priorities: Testing & Deployment

Core Features

  • Implement search & filtering system
    • Book search functionality
    • Deduplication endpoint
  • Finalize admin controls
    • Library editing flows
    • Manager assignment system

Frontend

  • Connect admin interfaces to backend
    • Admin login/dashboard
    • Library management UI
  • Implement responsive design
    • Adaptive breakpoints
    • Admin panel styling
    • Cross-page style refinement

Backend

  • Complete testing suite
  • Enhance book operations
    • Search/filter endpoints
    • Duplicate prevention

Infrastructure

  • Deployment preparation
    • Domain configuration
    • CI/CD pipeline setup
  • Observability
    • Logging system
    • Monitoring integration

πŸš€ Week 5 Priorities: Refinement & Polish

Core Features

  • Security enhancements
    • Token-based endpoint protection
    • Role-based access control
  • User management
    • Password update functionality
    • Unauthorized user flows

Frontend

  • UI/UX improvements
    • Mobile responsiveness (width < 450px)
    • Search/filter styling
    • Scrollbar fixes
    • Navbar/book centering
  • Book management
    • Add/delete books interface
    • Image loading fixes

Backend

  • Data operations
    • Cross-database migration tool
    • City-based book retrieval
  • Testing updates
    • Password update tests
    • Token validation tests

Infrastructure

  • Security
    • HTTPS configuration
  • Monitoring
    • Grafana/Loki access setup

πŸš€ Week 6 Priorities: User Experience & System Refinement

Core Features

  • User workflow improvements
    • FAQ implementation
    • Booking cancellation flow
    • Email verification system
    • Library contact information

Frontend

  • UI enhancements

    • Library info pages redesign
    • Manager/Admin page styling fixes
    • Button and list-item styling
    • Login popup slider fix
    • Back button for Book pages
    • Cursor pointers for select lists
  • Filter system

    • City/library filters implementation
    • Author/genre search filters
    • Responsive filter behavior

Backend

  • Booking management

    • Booking sorting
    • Quantity adjustment
    • Optimized booking retrieval
    • Manager booking search
  • Security

    • DDOS protection
    • Admin self-deletion prevention
    • Verification code endpoints

Documentation

  • System updates
    • Roadmap maintenance
    • Demo recordings
    • Report documentation

Contacts

Artem Ostapenko

Aliya Sagdieva

Anna Serova

Alena Averina

Ivan Murzin

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors