Skip to content

edomcode/Library-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

College Library Management System

A comprehensive digital library management solution featuring a Telegram bot for students and a web dashboard for library officials, powered by Firebase Firestore for real-time data management.

πŸš€ Features

For Students (Telegram Bot)

  • Book Search: Search library catalog by title, author, or ISBN
  • Request Submission: Submit book borrowing requests with automatic validation
  • Status Tracking: Real-time updates on request status (pending, approved, rejected)
  • Due Date Notifications: Automated reminders for book returns
  • Fine Calculation: Automatic calculation of overdue fines
  • Personal Dashboard: View borrowing history and current loans
  • Profile Management: Update personal information and preferences

For Library Officials (Web Dashboard)

  • Request Management: Approve/reject student book requests with notes
  • Book Inventory: Complete catalog management with CRUD operations
  • User Management: Manage student and staff accounts with role assignments
  • Analytics Dashboard: Borrowing statistics, popular books, overdue reports
  • Fine Management: Track and manage student fines and payments
  • Notification System: Send announcements to students via bot
  • Report Generation: Generate detailed reports for administration

System Features

  • Real-time Synchronization: Instant updates across all platforms
  • Role-based Access Control: Admin, Librarian, and Student roles
  • Automated Workflows: Timer-based notifications and fine calculations
  • Data Security: Firebase Authentication and security rules
  • Simple Architecture: Easy to deploy and maintain

πŸ—οΈ Technology Stack

Frontend (Web Dashboard)

  • HTML5: Semantic markup for accessibility
  • CSS3: Modern styling with Flexbox and Grid
  • JavaScript (ES6+): Vanilla JavaScript for interactivity
  • Charts: Chart.js for analytics visualization
  • Responsive Design: Mobile-first approach

Backend

  • Python 3.8+: Core programming language
  • Flask: Lightweight web framework for API
  • Firebase Firestore: NoSQL database for data storage
  • Firebase Auth: User authentication and authorization

Bot Development

  • Python: Same language as backend for consistency
  • python-telegram-bot: Official Telegram Bot API wrapper
  • Simple Hosting: Basic VPS or shared hosting

Integration

  • Telegram Bot API: For bot interactions
  • Firebase Admin SDK: Server-side database operations
  • RESTful APIs: Simple HTTP endpoints for data exchange

πŸ“ Project Structure

college-library-management/
β”œβ”€β”€ README.md                       # This file - project overview
└── docs/                          # Complete documentation
    β”œβ”€β”€ project-proposal.md         # Detailed project requirements
    β”œβ”€β”€ technical-architecture.md   # System design and architecture
    β”œβ”€β”€ development-milestones.md   # Original development plan
    β”œβ”€β”€ milestones.md              # Simplified project milestones
    β”œβ”€β”€ todo-list.md               # Comprehensive task breakdown
    β”œβ”€β”€ api-documentation.md        # Database schema and API specs
    β”œβ”€β”€ user-manual-students.md     # Telegram bot user guide
    β”œβ”€β”€ user-manual-officials.md    # Web dashboard user guide
    └── installation-guide.md       # Setup and deployment guide

Implementation Structure (To Be Created)

When implementing this system, the following structure is recommended:

college-library-system/
β”œβ”€β”€ web-dashboard/                  # HTML/CSS/JS web application
β”‚   β”œβ”€β”€ index.html                 # Main dashboard page
β”‚   β”œβ”€β”€ login.html                 # Authentication page
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   β”œβ”€β”€ main.css              # Main stylesheet
β”‚   β”‚   └── responsive.css        # Mobile responsiveness
β”‚   β”œβ”€β”€ js/
β”‚   β”‚   β”œβ”€β”€ main.js               # Core functionality
β”‚   β”‚   β”œβ”€β”€ api.js                # API communication
β”‚   β”‚   └── charts.js             # Analytics charts
β”‚   └── assets/                    # Images and icons
β”œβ”€β”€ backend/                        # Python Flask application
β”‚   β”œβ”€β”€ app.py                     # Main Flask application
β”‚   β”œβ”€β”€ routes/                    # API route handlers
β”‚   β”œβ”€β”€ models/                    # Data models
β”‚   β”œβ”€β”€ utils/                     # Utility functions
β”‚   └── requirements.txt           # Python dependencies
β”œβ”€β”€ telegram-bot/                   # Python Telegram bot
β”‚   β”œβ”€β”€ bot.py                     # Main bot application
β”‚   β”œβ”€β”€ handlers/                  # Command handlers
β”‚   β”œβ”€β”€ services/                  # Business logic
β”‚   └── requirements.txt           # Bot dependencies
└── config/                        # Configuration files
    β”œβ”€β”€ firebase-config.json       # Firebase credentials
    └── settings.py                # Application settings

πŸš€ Quick Start

Prerequisites

  • Python 3.8+ and pip
  • Firebase account and project
  • Telegram Bot Token (from @BotFather)
  • Basic web server (Apache/Nginx) or hosting service
  • Git for version control

Development Setup

  1. Clone the repository

    git clone https://github.com/your-org/college-library-management.git
    cd college-library-management
  2. Firebase Setup

    # Create Firebase project at https://console.firebase.google.com
    # Enable Firestore Database
    # Enable Authentication
    # Download service account key as firebase-config.json
  3. Backend Setup

    # Create virtual environment
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
    # Install Flask and dependencies
    pip install flask firebase-admin python-telegram-bot
    
    # Create app.py with Flask application
    # Configure Firebase Admin SDK
  4. Telegram Bot Setup

    # Create bot with @BotFather on Telegram
    # Get bot token
    # Create bot.py with python-telegram-bot
    # Configure webhook or polling
  5. Web Dashboard Setup

    # Create HTML files (index.html, login.html)
    # Add CSS styling (css/main.css)
    # Add JavaScript functionality (js/main.js)
    # Configure API calls to Flask backend
  6. Run the Application

    # Terminal 1: Flask Backend
    python app.py
    
    # Terminal 2: Telegram Bot
    python bot.py
    
    # Terminal 3: Web Server (or open HTML files directly)
    python -m http.server 8080

πŸ“š Documentation

πŸ”§ Development

Running Tests

# Web dashboard tests
cd web-dashboard
npm test

# Bot tests
cd telegram-bot
python -m pytest tests/

# Firebase functions tests
cd firebase/functions
npm test

Code Style

  • JavaScript/TypeScript: ESLint + Prettier
  • Python: Black + Flake8
  • Commit Messages: Conventional Commits

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸš€ Deployment

Production Deployment

# Build and deploy web dashboard
cd web-dashboard
npm run build
firebase deploy --only hosting

# Deploy Firebase functions
cd firebase/functions
firebase deploy --only functions

# Deploy Telegram bot
cd telegram-bot
docker build -t library-bot .
# Deploy to your preferred cloud platform

πŸ“Š System Requirements

Minimum Requirements

  • Students: Telegram account, smartphone/computer
  • Officials: Modern web browser, stable internet connection
  • System: Firebase project, Telegram bot token

Recommended Specifications

  • Database: Firestore with appropriate indexes
  • Hosting: Firebase Hosting or Vercel for web dashboard
  • Bot Hosting: Google Cloud Run or Railway
  • Monitoring: Firebase Analytics, Sentry for error tracking

🀝 Support

  • Documentation: Check the /docs folder for detailed guides
  • Issues: Report bugs via GitHub Issues
  • Discussions: Use GitHub Discussions for questions
  • Email: support@library-system.com

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Firebase team for the excellent backend infrastructure
  • Telegram Bot API for seamless bot integration
  • React community for the robust frontend framework
  • Open source contributors and maintainers

Built with ❀️ for educational institutions

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors