EBMS Lab Manual
EBMS Lab Manual
#### Overview
In this lab, students will design and develop a minimum viable product (MVP)
for an E-Book Management System (EBMS). The EBMS aims to facilitate the
management of e-books, including adding, categorizing, searching, and lending
e-books. This project will help students understand the software development
lifecycle, including requirements analysis, system design, implementation,
testing, and documentation.
#### Objectives
1. **Requirements Analysis**: Identify and document functional and non-
functional requirements.
2. **System Design**: Create a system architecture that includes a database
schema, user interface, and application logic.
3. **Implementation**: Develop the EBMS using Django (or another suitable
framework) for the backend and a modern frontend framework.
4. **Testing**: Perform unit testing, integration testing, and user acceptance
testing.
5. **Documentation**: Prepare detailed documentation covering all phases of
the project.
#### Requirements
##### Functional Requirements
1. **User Registration and Login**: Users (readers and administrators) should
be able to register and log in to the system.
2. **E-Book Management**: Admins can add, update, and delete e-books.
3. **Categorization**: E-books can be categorized by genre, author, and other
metadata.
4. **Search Functionality**: Users can search for e-books by title, author, genre,
and keywords.
5. **E-Book Lending**: Users can borrow and return e-books.
6. **User Profile Management**: Users can view and update their profiles.
7. **Admin Dashboard**: Admins can view and manage all e-book data and user
activities.
##### Modules
1. **User Module**: Handles user registration, login, and profile management.
2. **E-Book Management Module**: Manages e-book data, including adding,
updating, and deleting e-books.
3. **Categorization Module**: Manages the categorization of e-books.
4. **Search Module**: Provides search functionality for e-books.
5. **Lending Module**: Manages the borrowing and returning of e-books.
6. **Admin Module**: Allows admins to manage e-books and user activities.
##### Database Schema
1. **Users Table**: Stores user information (username, password, email, etc.).
2. **E-Books Table**: Stores e-book information (title, author, genre, file path,
etc.).
3. **Categories Table**: Stores categorization data.
4. **Lending Table**: Stores lending data.
5. **Notifications Table**: Stores notification messages sent to users.
#### Implementation
1. **Setup Environment**: Install and configure necessary software (Django,
database, etc.).
2. **Develop Features**: Implement user registration, e-book management,
categorization, search functionality, and lending.
3. **Integrate Modules**: Ensure seamless interaction between frontend and
backend components.
4. **Testing**: Write and run tests for each module to ensure functionality.
#### Testing
1. **Unit Testing**: Test individual components and functions.
2. **Integration Testing**: Test the interaction between different modules.
3. **User Acceptance Testing**: Ensure the system meets the end-users'
requirements and expectations.
#### Documentation
1. **Requirements Document**: Detail all functional and non-functional
requirements.
2. **Design Document**: Describe the system architecture and design decisions.
3. **User Manual**: Guide for end-users on how to use the system.
4. **Technical Documentation**: Explain the code structure, database schema,
and development process.
#### Deliverables
1. **Source Code**: Fully functional codebase of the E-Book Management
System.
2. **Documentation**: Comprehensive documentation covering all aspects of
the project.
3. **Test Reports**: Results from unit, integration, and user acceptance tests.
By the end of this lab, students will have gained practical experience in
developing a real-world software application, applying software engineering
principles, and working through the entire software development lifecycle.