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.
- Manage library manager permissions
- Add/remove libraries to the system
- Oversee platform-wide operations
- View and update book reservation statuses
- Manage library information (hours, location, policies)
- Add/edit/remove books in their assigned library
- 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
- π Unified book search across all partner libraries
- π Online reservation system with status tracking
- β€οΈ Favorites list for saved books
- π± Responsive design for devices
- π Manager dashboard for reservations
- π Book inventory management
- π’ Multi-library support
- β‘ FastAPI backend with JWT authentication
- π¨ React frontend with Vite optimization
- π Grafana/Loki monitoring stack
- π Automated database migration (Ollama)
- π‘οΈ Role-based access control
- Fast book discovery for users
- Centralized management for library networks
The live demo is publicly available with standard user access:
π libnet.site
For testing privileged access:
- Manager panel
- Admin dashboard
π© Contact via Telegram: @alliumpro to request credentials
Access is restricted to prevent unauthorized system changes.
- 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-permissionsThen do:
docker compose up --build -d.env file configuration.
To access the Grafana monitoring dashboard:
-
Open in your browser:
http://<your-server-ip>:3000 -
Authentication:
Credentials are restricted to team members only -
Request access:
Contact project maintainers:- Telegram: @alliumpro (Ivan Murzin)
- Email: i.murzin@innopolis.university
-
Clone the repository
git clone https://github.com/IU-Capstone-Project-2025/libnet.git cd libnet -
Configure environment
cd backend nano .env # Create environment file
-
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
-
Edit
.envfile: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
-
Remove lines 12-20 inclusive from
/libnet/frontend/nginx.confand changelibnet.sitetolocalhostin line 11. -
Launch services
docker-compose up -d --build
The project has been launched!
- Finalize team members
- Assign initial roles (Dev, PM, UX, etc.)
- Pick 1 idea from brainstorm (with problem validation)
- Define:
- Target users
- Problem statement
- Writing user stories
- Setup Git repo:
- Basic structure (
/frontend,/backend,.gitignore) - Runnable proof-of-concept
- Basic structure (
- Docker support:
Dockerfileper componentdocker-compose.ymlfor local orchestration
- Design development started
- Expand MVP user stories with detailed acceptance criteria
- Create prioritized backlog (e.g., GitHub Projects/Jira)
- Development of the main part of the Design
- User Flow Diagrams
- Setup project structure (components, pages, assets)
- Implement static versions of:
- Main page
- Book search page
- User profile skeleton
- Define API spec (OpenAPI/Swagger) for MVP endpoints
- Implementation of part of MVP
- Implement endpoints
- Implement the highest priority features from the backlog
- Book covers upload (file/URL)
- Favorites functionality
- Multi-library support
- Booking date calculation
- Connect key pages to backend APIs
- User orders & favorites
- Library selection
- Manager panel
- Implement high-priority features
- City/library switching
- Component styling
- Layout restructuring
- Complete essential API endpoints
- Book quantity management
- Implement high-priority features
- JWT token protection
- Image handling
- Implement search & filtering system
- Book search functionality
- Deduplication endpoint
- Finalize admin controls
- Library editing flows
- Manager assignment system
- Connect admin interfaces to backend
- Admin login/dashboard
- Library management UI
- Implement responsive design
- Adaptive breakpoints
- Admin panel styling
- Cross-page style refinement
- Complete testing suite
- Enhance book operations
- Search/filter endpoints
- Duplicate prevention
- Deployment preparation
- Domain configuration
- CI/CD pipeline setup
- Observability
- Logging system
- Monitoring integration
- Security enhancements
- Token-based endpoint protection
- Role-based access control
- User management
- Password update functionality
- Unauthorized user flows
- UI/UX improvements
- Mobile responsiveness (width < 450px)
- Search/filter styling
- Scrollbar fixes
- Navbar/book centering
- Book management
- Add/delete books interface
- Image loading fixes
- Data operations
- Cross-database migration tool
- City-based book retrieval
- Testing updates
- Password update tests
- Token validation tests
- Security
- HTTPS configuration
- Monitoring
- Grafana/Loki access setup
- User workflow improvements
- FAQ implementation
- Booking cancellation flow
- Email verification system
- Library contact information
-
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
-
Booking management
- Booking sorting
- Quantity adjustment
- Optimized booking retrieval
- Manager booking search
-
Security
- DDOS protection
- Admin self-deletion prevention
- Verification code endpoints
- System updates
- Roadmap maintenance
- Demo recordings
- Report documentation
- Telegram: @ostxxp
- Email: a.ostapenko@innopolis.university
- Telegram: @aliushka_sgdv
- Email: a.sagdieva@innopolis.university
- Telegram: @kbvsp
- Email: a.serova@innopolis.university
- Telegram: @flowelx
- Email: a.averina@innopolis.university
- Telegram: @alliumpro
- Email: i.murzin@innopolis.university