Chapter five 5.0 SYSTEM STUDY ANALYSIS AND DESIGN 5.1 INTRODUCTION The evolution of technology and COVID19 that struct around the world has led to the automation of business management with different online platforms. This which has not left out the provision for education as all learning students have had the need for student material thus including having to learn on their own with little access to libraries. Therefore, to cope up to this dynamic technological evolution and the effects of the pandemic. We have decided to launch a web application named Soma that will ease access to reading material to pupils in both KCCA and Bat Valley KCCA schools and make work easier for librarians and teachers to share information inform of books for both schools The system is to ease shareability of information resources among the schools.it will also solve the issue of small library space since library materials can be digitalized and stored online. With the system in place it will solve the issue of Covid spreading and help people follow the sops since they don’t have to move. 5.2 SYSTEM STUDY 5.2.1 WEAKNESSES OF THE EXISTING SYSTEMS The existing manual system that is in use involves a plethora of risks involving infections through manually handing books over to students. Some of the books returned could be damaged. There is a risk of a student not returning the book or misplacing the book. Limitations on the number of books per students. Inadequate social distancing that could lead to more infections in the libraries. Last but not least involves restrictions on hours for accessing the reading materials. 5.2.2 THE PROPOSED SYSTEM PROJECT CATEGORY: RDBMS HTML Laravel (PHP) JAVASCRIPT JQUERY AJAX BOOTSTRAP PROJECT DESCRIPTION: The Library Management System is a web based online system that will handle day to day book keeping, management as well as distribution of reading materials across the students of the schools under KCCA. The system will be user based with different roles ranging from an administrator with the access to every module of the system, a librarian whose role will be to enter or register books in the system, approve books that have been uploaded by the teachers, adding teachers to the system, to mention but a few. The system will also have a teacher based role to monitor students activity and upload reading material to the students of the different schools and classes assigned to them. The system will also have the provision of allowing students to login and access the books/reading material. Future prospect will also be able to build it that assingments can also be uploaded for students to work on and follow up on their progress. Tools/Plaform: This project is developed using the tools, which are most suited for development of the Application Package. These tools are as follows: 1. HTM, Bootstrap, JQuery Ajax, JavaScript (For front end) 2. Personal Home Page(PHP) Programming Language (For the back end script) 3. MySQL (RDMS server) 4. Apache (Web Server) 5. Visual Studio Code (Text editor) 6. Git (Version Controller) Backend tool(S): MySQL MySQL is an open-source relational database management system (RDBMS) that uses Structured Query Language (SQL). SQL is the most popular language for adding, accessing and managing content in a database. MySQL will handle the backend operations of the farm management system. It will store all the data that has been entered in a database. Tables will be used to enter the different types of records for the farm. Frontend Tools: Laravel (PHP) Laravel is a PHP framework based on an MVC (Model View Controller) architecture. The models are used to communicate with the database, Controllers handle the logic and the views provide what the user see. This will make building such a big REST full application easy. This is in terms of CRUD operations. i.e. Create Read Update and Delete. HTML HTML is a Markup Language. And will be used to create the layout of the different web pages of the application. CSS Cascading Style Sheet will be used for designing the content of the farm management system. With the styling, bootstrap will also be used in the styling of the content for examples. Tables, buttons, navigation bar and many other components. JavaScript JavaScript will be used to add interactivity to the application. For examples from the animations to the Ajax calls. Apache This is a web server that will be used to run the PHP script files therefore the files that come with Laravel. VS Code. Visual Studio Code will be the text editor that I will use during the development. Git Git is a development tool used for version control. Therefore it will help me keep track of the changes and updates that have been made on the web application. 5.3 SYSTEM ANALYSIS 5.3.1 USER REQUIREMENTS Hardware Requirements Processor dual core and above or its equivalent Hard disk at least 20 GB or above Memory at least 2 GB RAM or above Software Requirements APACHE AND MYSQL Any operating system A web browser 5.3.2 FUNCTIONAL REQUIREMENTS To provide a multi level authentication for different user according to their roles. To keep an audit trail for all user functionalities and user ability. To keep book records in one centralized environment. Ability to monitor all books that are added by the different users including teacher and librarian. To differentiate all schools with reference to all available teacher, student and librarians. To allow unlimited access and to reading materials. To provide a cross platform system accessible on all laptops, desktop and mobile devices. To provide support for the system to work on all browers. Daily backups of the database and user information. 5.3.3 NON FUNCTIONAL REQUIREMENTS Response time of the applications should reflect the real time observations. There shouldn’t be any security concerns on the merged data. Each user’s activity should be separated from the other user’s activities Provision to send email alerts for librarians when a book has been uploaded by a teacher. Monitor how students often use the learn material. Scalability for the system to be used by more than two school. Robust and fast working system to prevent lag and waiting time for it load. Improvements in the user interface 5.4 SYSTEM DESIGN 5.4.1 ARCHITECTURAL DESIGN OF THE SYSTEM The system is based on MVC (Model View Controller) architecture with makes CRUD (Create Read Update Delete) a piece of cake. State query MODEL Change Notification Holds the data of the application e.g. databases. Reflects real-world things/ objects. Defines the essential components of your app. State change CONTROLLER VIEW Renders data retrieved from the models. Requests updates from models. Sends user requests to controller. Allows controller to select views. View selection User Request/ Action - Method Invocation - User Gestures/ Actions Contains the logic that talks to the database to retrieve requested data. Defines application behavior. Maps user actions to model updates. Selects view to return as response to user request. It controls how the application works. It is the brains of the application. 5.4.2 PROCESS MODELLING 5.4.2.1 CONTEXT DIAGRAM OF THE SHAREBILITY SYSTEM 5.4.2.2 LEVEL 1 DFD FOR THE SHAREBILITY SYSTEM 5.4.2.3 DATA DICTIONARY FOR THE DFD Request Type Description Form Input 1. Get 2. Store 3. Delete This is request is None made when the user(librarian wants to see teacher’s records, students and books in the system This is request Name the done when ISBN the Aurthor user(Librarian is Edition storing or BookTypeID adding a new ClassID book) This request is BookID made when a book is being deleted from the system 5.4.3 DATA MODELING Enitity/ Tables Database Books diss_db Students Teachers Books 5.4.3.1 MODELLING RELATIONSHIPS BETWEEN ENTITIES 5.4.3.1.1 RELATIONSHIP BETWEEN USER AND RESOURCES The relationship between a user and the resource is a one to many type of relationship. In this case, it means one user has many books belonging to them except the students. As shown in the figure below, AddedBy is the foreign key point to the UserID of the users table. 5.4.3.1.2 RELATIONSHIP BETWEEN USER AND COMMENT 5.4.3.1.3 RELATIONSHIP BETWEEN USER AND REPLY 5.4.3.1.4 RELATIONSHIP BETWEEN USER AND SECURITY QUESTION 5.4.3.1.5 RELATIONSHIP BETWEEN USER AND SCHOOLS The relationship between a user and school is a many to one type of relationship. In this case, many users including librarians, teachers and students fall under one school that is with the exception of super administrator. As shown in the figure below SchoolID is the foreign key pointing to the id of the schools table. 5.4.3.1.6 RELATIONSHIP BETWEEN USER, RATING AND RESOURCE 5.4.3.1.7 RELATIONSHIP BETWEEN RESOURCE AND COMMENT 5.4.3.1.8 RELATIONSHIP BETWEEN RESOURCE AND ISSUE 5.4.3.1.9 Relationship between Resource and Subject The relationship between a Resource and Subject in this case book_types table is a many to one type of relationship. In this case, many books fall under one subject. As shown in the figure below BookTypeID is the foreign key in books table pointing to the id of the book_types table. 5.4.3.1.10 Relationship between Reply and Comment 5.4.3.1.11 Relationship between Issue Response and Issue 5.4.3.1.12 Relationship between Subject and Level 5.4.3.1.13 Relationship between Level and Resource The relationship between a Level and the Resource is a one to many type of relationship. In this case, it means one Level (Class) has many books belonging to it. As shown in the figure below, ClassID is the foreign key pointing to the id of the classes table. 5.4.3.1.14 Relationship between Admin and Issue Response 5.4.3.2 The Enhanced Entity Relationship Diagram of the System 5.4.4 Database Design Tables audit_trail book_types books classes departments migrations other_user password_resets schools students teachers titles userroles users Books Table No Description 1 2 Primary Key Keeps the book name 3 Store the Internation Serial Number of the book Stores name of the author Store the edition of the book Foreign key that points to the Class Table Foreign key that points to the book category or subject of the book Foreign key that points to the user table with librarians timepstamp timestamp Store the location of the files/ books 4 5 6 7 8 9 10 11 Column Name id Name Data Type and Size bigint(20) varchar(191) Attributes ISBN varchar(191) utf8mb4_unicode_ci Aurthor Edition ClassID varchar(191) varchar(191) int(11) utf8mb4_unicode_ci utf8mb4_unicode_ci BookTypeID int(11) AddedBy int(11) created_at updated_at Location timestamp timestamp varchar(191) Null UNSIGNED utf8mb4_unicode_ci YES YES utf8mb4_unicode_ci Audit Trail No Description Column Name id Data Type and Size bigint(20) Attributes 1 Primary Key 2 action varchar(191) utf8mb4_unicode_ci user_id int(11) 4 Audit action that the user didi Foreign key that points to the user that did the action timestamp created_at timestamp 5 timestamp updated_at timestamp 3 Null UNSIGNED Departments/Titles/Userroles/Classes/BookTypes table structure No 1 2 3 4 5 Description Primary key Name of the tables function Description of what each of the functions do Timestamp Timestamp Column Name id Name Data Type and Size bigint(20) varchar(191) Attributes Null Default UNSIGNED utf8mb4_unicode_ci No No Description varchar(191) utf8mb4_unicode_ci Yes created_at updated_at timestamp timestamp Yes Yes Teachers Table Name Description Column Name 1 2 Primary key Records First Name Records SurName Repords Middle Name Foreign key that points to the Class Table Records Phone Numbers Records Email Addresses 3 4 5 6 7 Attributes id FirstName Data Type and Size bigint(20) varchar(191) Null Default UNSIGNED utf8mb4_unicode_ci No No SurName varchar(191) utf8mb4_unicode_ci No MiddleName varchar(191) utf8mb4_unicode_ci No ClassID varchar(191) utf8mb4_unicode_ci No PhoneNumber bigint(20) Email varchar(191) No utf8mb4_unicode_ci No 8 9 10 11 Foreign key for the school table Foreign key that points to the user table timestamp timestamp SchoolID int(11) No AddedBy int(11) No created_at updated_at timestamp timestamp Yes Yes User/Other_user table N o 1 2 3 4 5 6 7 Descriptio n Primary Key Keeps email address records Keeps the name of the users that can access the system Stored the time an email was verified. But can be left empty Stores the hashed password of the users Field that store a Boolean to show if user has been blocked or not Foreign key that points to the userroles Column Name Data Type and Size bigint(20) Collation email varchar(19 1) Name varchar(19 1) email_verified_ at timestamp password varchar(19 1) validity UserRole id Attribute s Nul l No Defau lt None utf8mb4_unicode_ ci No None utf8mb4_unicode_ ci No None Ye s NULL No None int(11) No None int(11) No None UNSIGNED utf8mb4_unicode_ ci 8 9 1 0 1 1 1 2 1 3 table to indicate what kind of user role the user has Stores a unique string for each user Stores a string token for users that have forgotten their password Timestam p Timestam p Foreign key that keeps the id to the titles table Stores the Gender of the users Obfuscator varchar(19 1) utf8mb4_unicode_ ci No None remember_tok en varchar(10 0) utf8mb4_unicode_ ci Ye s NULL created_at timestamp NULL updated_at timestamp title int(11) Ye s Ye s No gender varchar(19 1) Ye s NULL utf8mbS4_unicode _ci NULL None