Project Title (French): Conception et réalisation d’une application mobile pour la gestion d’une bibliothèque universitaire Project Title (English): Design and implementation of a mobile application for managing a university library
This repository contains the source code for both the front-end Android application and the back-end PHP server for a University Library Management system. This project was developed as a final year project for a Bachelor's degree in Computer Science at Mohamed Khider University of Biskra (Algeria) by Sofiane Alloui.
- Project Overview
- Problem Statement
- Objectives
- Key Features
- Technology Stack
- Architecture
- Diagrams
- Setup and Installation
- Usage
- Future Work
- Author
- License
The university library is a crucial resource for students and professors. Traditional library management systems can often be inefficient, leading to delays and difficulties in accessing resources. This project, developed as a final requirement for a Bachelor's in Computer Science at Mohamed Khider University of Biskra, aims to modernize the university library system by providing a dedicated Android mobile application (developed in Java). The app facilitates easier book searching, reservations, and management for both library users (students, professors) and administrators, communicating with a PHP & MySQL backend using the Volley library for network requests.
Based on observations of traditional library workflows, several challenges were identified:
L’un des problèmes qui surviennent à la bibliothèque et qui constituent un obstacle, que ce soit pour les étudiants ou pour les administrateurs de la bibliothèque, est l’accumulation de demandes, la perturbation du système de gestion et l’attente prolongée de l’étudiant pour recevoir le livre.
Translation & Summary: One of the significant problems faced in libraries, hindering both students and administrators, includes:
- Accumulation of Requests: Backlogs in processing book requests.
- Management System Disruptions: Potential inefficiencies or interruptions in the existing management process.
- Prolonged Waiting Times: Students experiencing significant delays in receiving requested books.
The primary goal of this project is to develop a mobile application that addresses the identified problems by:
- Enhancing Efficiency: Streamlining the process of borrowing, returning, and managing library resources.
- Improving Accessibility: Allowing students and staff to interact with the library system remotely via the mobile app.
- Reducing Wait Times: Providing real-time information and potentially faster processing of requests.
- Simplifying Management: Offering administrators tools for easier management of inventory, users, and requests.
- Providing Real-time Updates: Keeping users informed about book availability, due dates, and request statuses.
- Authentication: Secure login/signup process.
- Book Browsing & Searching: Search for books by title, author, ID, tags, etc.
- Book Details: View detailed information about books (description, availability, location).
- Book Reservation: Request/reserve available books.
- Borrowing Management: View currently borrowed books and their due dates (potentially renewal functionality).
- Notifications: Receive alerts for due dates, available reservations, etc. (Implementation dependent).
- Authentication: Secure login with admin privileges.
- Resource Management: Add, update, or remove books and their details in the catalogue.
- User Management: View and manage user accounts (potentially).
- Request Handling: Manage book reservation requests from users.
- Inventory Tracking: Monitor book availability and borrowing status.
- IDE: Android Studio
- Language: Java
- SDK: Android SDK
- Libraries:
- AndroidX Libraries
- Glide: For efficient image loading and display.
- Volley: For handling network requests (communication with the PHP backend).
- SQLite: (Potentially used for local caching or offline data storage within the app).
- Language: PHP
- Web Server: Apache (via XAMPP)
- Database: MySQL / MariaDB (Managed via phpMyAdmin in XAMPP)
- Environment: XAMPP
The system follows a typical Client-Server architecture:
- Client: The native Android application (Java) serves as the front-end, providing the user interface and handling user interactions.
- Server: A PHP-based backend hosted on an Apache server handles business logic, processes requests from the Android app, and interacts with the database.
- Database: A MySQL/MariaDB database stores all persistent data, including user information, book catalogue, borrowing records, etc.
- Communication: The Android app communicates with the PHP backend via RESTful APIs (likely), using HTTP requests handled by the Volley library, possibly exchanging data in JSON format.
This project includes several design diagrams to illustrate its structure and functionality:
- Use Case Diagram: Shows interactions between users (Utilisateur, Etudiant, Prof) and the system functionalities (Connecter, Chercher un livre, Demander un nouveau livre, Authentification).
- Class Diagrams: Detail the structure of the Android application classes (e.g.,
LoginActivity,SignUpAdditionalPersonalInfoActivity,UserMainAppBooksSearchActivity,AdminBooksBookItem,User) and their relationships. - Database Schema Diagram: Outlines the structure of the database tables (
users,admins,books,bookshelves,bookplace,demands,borrowings,invitation) and their columns and relationships.
You can find the visual diagrams used during development in the /diagrams folder (or link to your presentation if available).

Follow these steps to set up and run the project locally.
- Prerequisites: Install XAMPP (includes Apache, MySQL, PHP, phpMyAdmin).
- Clone Repository:
git clone https://github.com/your-username/your-repo-name.git - Place Backend Code: Copy the contents of the
backend-php-serverdirectory from the cloned repo into your XAMPPhtdocsfolder (e.g.,C:/xampp/htdocs/library_server). - Start XAMPP: Launch the XAMPP Control Panel and start the Apache and MySQL modules.
- Database Setup:
- Open phpMyAdmin (usually
http://localhost/phpmyadmin). - Create a new database (e.g.,
unibibappdatabase). - Import the provided SQL schema file (
database_schema.sql- Note: You need to create and include this file!) into the newly created database.
- Open phpMyAdmin (usually
- Configuration (if necessary): Check the PHP scripts within the backend code for any database connection configuration files (e.g.,
db_config.php,connect.php) and ensure the database name, username (usually 'root' for local XAMPP), and password (usually empty for local XAMPP) are correct.
- Prerequisites: Install Android Studio.
- Clone Repository: (If not already done)
git clone https://github.com/your-username/your-repo-name.git - Open Project: In Android Studio, select
File > Openand navigate to thefrontend-android-appdirectory within the cloned repository. - Gradle Sync: Allow Android Studio to sync the project and download any necessary dependencies (check Gradle version compatibility if needed).
- Configuration:
- API Endpoint: Locate the part of the Android code where the backend server URL is defined (often in a constants file, e.g.,
Constants.javaorApiConfig.java). - Update URL: Change the base URL to point to your local XAMPP server's IP address and the backend directory (e.g.,
http://192.168.1.100/library_server/- replace192.168.1.100with your computer's local IP address, notlocalhostor127.0.0.1if testing on a physical device).
- API Endpoint: Locate the part of the Android code where the backend server URL is defined (often in a constants file, e.g.,
- Build & Run: Build the project and run it on an Android emulator or a physical device connected via USB. Ensure the device/emulator can access your computer over the local network if using a physical device.
- Launch the Android application.
- Sign Up / Login: Create a new user account or log in using existing credentials.
- Browse/Search: Navigate the app to search for books using various criteria.
- Reserve: Select a book and use the reservation feature if available.
- Admin Functions (if logged in as Admin): Access administrative panels to manage books, users, or requests.
Potential improvements and future features for this application could include:
- Advanced Recommendation System: Suggest books based on user history.
- Integration: Connect with other campus services or e-learning platforms.
- Enhanced Notifications: More granular controls and types of notifications.
- Book Renewal Feature: Allow users to renew borrowed items directly through the app.
- Offline Support: Limited functionality when the user is offline.
- Sofiane Alloui - sofianealloui13@gmail.com
- Developed as the final year project for the Bachelor's Degree in Computer Science at Mohamed Khider University of Biskra, Algeria.
This project is licensed under the MIT License - see the LICENSE.md file for details.