A local shared resource library for students
Browse and download notes, ebooks, videos, music, software, and more β all from peers on your LAN.
CampusLibrary is a peer-to-peer network application built for closed networks (hostels, dorms, campus residences).
Students can share study materials, ebooks, media, software, and any other digital resources they legally possess. The system catalogs these resources, enriches them with metadata (e.g. cover art, description), and presents a clean web interface for discovery, search, and download.
Everything stays local β no external hosting required.
- π Peer discovery & indexing via DβLAN, DC++ or similar
- ποΈ Support for all file types β notes, ebooks, videos, music, code, software, etc.
- π·οΈ Categories & tags (Books, Notes, Media, Software, Others)
- πΌοΈ Metadata enrichment (cover art, descriptions for books/media)
- β‘ Web UI: responsive interface for browsing, searching, filtering
- π₯ Direct download / streaming from peers (HTTP / SMB / DβLAN)
- π Optional caching / seeding by the server for popular resources
- π οΈ Moderation tools: hide or remove unsuitable content
Studentsβ Devices (peers)
βββ share folders: Books, Notes, Videos, etc.
β
β (Peer discovery + file listings)
βΌ
[CampusLibrary Server]
βββ crawler / indexer β scans peer listings
βββ metadata module β fetches cover art / book info
βββ database (SQLite or Postgres) β stores catalog
βββ API (FastAPI) β serves metadata & peer info
βββ Web UI (React) β user interface
β
βΌ
End users β browser on LAN β browse β download / stream
- A server on the same LAN (Raspberry Pi, PC, mini server)
- Docker & Docker Compose (or Python + Node.js environment)
- API keys (optional) for book metadata sources (Open Library, Google Books, etc.)
- On peer devices: DβLAN or DC++ installed
git clone https://github.com/yourusername/CampusLibrary.git
cd CampusLibrary
cp .env.example .env
# Insert API keys in `.env` if needed
docker compose up --build- Backend API:
http://<server-ip>:8080 - Frontend UI:
http://<server-ip>:5173 - If mDNS / Avahi is enabled:
http://campuslibrary.local
- Install DβLAN / DC++
- Add shared folders (e.g. βBooksβ, βNotesβ, βMediaβ)
- (Optional) For easier download, run a simple HTTP server in each shared folder:
cd ~/Books && python3 -m http.server 9000
cd ~/Media && python3 -m http.server 9001The server will detect these shares and index them automatically.
cd server
pip install -r requirements.txt
uvicorn api:app --reload --host 0.0.0.0 --port 8080python3 crawl.pycd web
npm install
npm run dev- Cover art / thumbnail support for ebooks and media
- In-browser preview: PDF viewer, audio player, video stream
- Duplicate detection across peers
- Caching hot resources on server
- Peer reliability / availability metrics
- Admin dashboard for moderation (hide/remove)
- Optional authentication / access control
CampusLibrary is intended for educational, local network use only.
Users must ensure all shared content is legal and abide by copyright and institutional policies.
This project does not condone sharing of infringing material.
Contributions, pull requests, and issue suggestions are welcome!
Licensed under the MIT License Β© 2025 CampusLibrary contributors.
Letβs put all useful resources in reach β powered by students, for students.