Project LMS Report
Project LMS Report
2-- 1 - | P a g e
Index
Table of Content.
Contents
1.5 Conclusion..................................................................................................................................2-- 12 -
3.5 Conclusion..................................................................................................................................3-- 16 -
-2-|Page
Index
4 TEAM MEMBERS AND THEIR ROLES. ....................................................................... 4-- 17 -
-3-|Page
Index
7.2.1 Included files ................................................................................................................................7-- 33 -
7.2.2 Variables .......................................................................................................................................7-- 34 -
7.2.3 Functions and Methods................................................................................................................7-- 34 -
7.2.4 Web page layout ..........................................................................................................................7-- 34 -
7.5 Sign-Up.......................................................................................................................................7-- 38 -
7.5.1 Included Files................................................................................................................................7-- 38 -
7.5.2 Variables .......................................................................................................................................7-- 39 -
7.5.3 Functions ......................................................................................................................................7-- 39 -
7.5.4 Web page layout ..........................................................................................................................7-- 39 -
-4-|Page
Chapter - 1
Introduction
There are several reasons why our university should consider using an LMS:
2-- 5 - | P a g e
Chapter - 1
❖ Login System.
Selective content based on the role of the account on which the user
signs-in through (i.e. Teacher, student, staff).
Log-In authentication through Database.
Restricted to Staff.
Accounts with separate roles (Staff, Teachers, Students).
Account Deletion.
Edit details/credentials of existing accounts.
❖ Courses.
2-- 6 - | P a g e
Chapter - 1
❖ Notifications.
Latest updates.
Class / Courses Updates.
Updates related to Exams.
Updates on the changing of Faculty/Staff.
❖ Complaint / Compliance.
The Modus Operandi or Mode of operation of our LMS is very simple and
straight forward. The LMS can be easily operated by using its easy-to-
understand interface as shown below.
In the first step the user will Sign-in/Log-in inserting the required
credentials into the Log-in form.
2-- 7 - | P a g e
Chapter - 1
The Side-Navbar will display different content based on the role of the
current signed-in user.
2-- 8 - | P a g e
Chapter - 1
The Course Cards will show the course name, icon and it’s progress.
They will be clickable and will act as a link for the Course page.
The Course page will be dynamic and will consist of multiple main
elements, some of them are the following.
In this section the Lecturers can Assign Assignments to the Students through
a form like below.
2-- 9 - | P a g e
Chapter - 1
Here the faculty can Upload/Share any Slides or Course Content that they
desire by using the following form.
2-- 10 - | P a g e
Chapter - 1
Here the Teachers and Students can communicate with each other in order to
solve any problems and issues that may appear.
For example.
They can also Create, Update or Delete any account/profile from the LMS
database
2-- 11 - | P a g e
Chapter - 1
1.5 Conclusion.
The design and development of a high-quality LMS platform are essential for
meeting the growing demand for e-learning. Our proposed LMS will provide
ease of access and maintainability of data and records, Our LMS will also
make management of Faculty, Student and courses easier. Overall we
believe that our LMS will help the university in providing high quality online.
This LMS will also greatly help students that are only able to study remotely.
2-- 12 - | P a g e
Chapter - 2
2.1 Comparison.
2-- 13 - | P a g e
Chapter - 2
Our Project will use core Languages and technologies in order to achieve
maximum amount of flexibility and also to ensure ease of maintainability in
the future.
FRONT-END BACK-END
▪ HTML. ▪ PHP.
▪ CSS. ▪ Ajax.
▪ Bootstrap. ▪ MySQL
▪ SCSS. ▪ APACHE
▪ JavaScript.
▪ jQuery.
2.3 Advantages.
2-- 14 - | P a g e
Chapter - 3
3-- 15 - | P a g e
Chapter - 3
3.5 Conclusion.
3-- 16 - | P a g e
Chapter - 4
➢ HTM.
➢ CSS.
➢ JavaScript.
➢ Error Detection & Quality Assurance.
➢ HTML
➢ CSS.
➢ JavaScript.
➢ UI/UX Design.
➢ HTML.
➢ CSS, SCSS.
➢ JavaScript.
➢ PHP.
➢ JavaScript
➢ PHP.
➢ MySQL.
➢ Ajax.
4-- 17 - | P a g e
Chapter - 5
5.1 Introduction.
This project utilizes a relational database model. Each table in the database
represents a specific element and is connected to other tables via Foreign and
Unique Keys.
5-- 18 - | P a g e
Chapter - 5
❖ Student’s Table.
Student Courses Table.
❖ Staff’s Table.
Staff Courses Table.
Courses Table.
Course Material.
Course Assignments.
Course Comments.
▪ Comment Mentions.
❖ Notifications.
The Student’s table encompasses all of the necessary student’s data into 11
separate columns.
5-- 19 - | P a g e
Chapter - 5
• Id.
This acts as the primary key for the table.
• Username.
Contains the Student’s name.
• User_email.
Contains the Student’s email.
• Userpass.
Contains the Student’s account password
• Userrole.
Contains the role of the student on the platform (i.e student).
• Userroll.
Contains the Student’s roll number.
• Userpno.
Contains the Student’s phone number.
• Usergender.
Specifies Student’s gender (i.e Male or Female).
• Usersem.
Contains Student’s Semester information (i.e Fall 2023).
• Userimg.
Contains the name of the Student’s profile image that is stored on the server.
The Student’s Courses table defines which student is enrolled in which course. It has
three columns
5-- 20 - | P a g e
Chapter - 5
❖ Id.
This acts as the primary key for the table.
❖ Userid.
Contains the primary key from the Student’s table that acts as a Foreign Key
here.
❖ Courseid.
Contains the primary key from the Courses table that acts as a Foreign Key
here.
The Staff’s table encompasses all of the necessary student’s data into 11 separate
columns.
• Id.
This acts as the primary key for the table.
• Username.
Contains the Staff’s name.
5-- 21 - | P a g e
Chapter - 5
• User_email.
Contains the Staff’s email.
• Userpass.
Contains the Staff’s account password
• Userrole.
Contains the role of the student on the platform (i.e Teacher, Staff or Admin).
• Userroll.
Contains the Staff’s ID.
• Userpno.
Contains the Staff’s phone number.
• Usergender.
Specifies Staff’s gender (i.e Male or Female).
• Usersem.
Contains Staff’s Semester information (i.e Fall 2023).
• Userimg.
Contains the name of the Staff’s profile image that is stored on the server.
The Staff’s Courses table defines which Faculty is in charge of which course. It has
three columns
❖ Id.
This acts as the primary key for the table.
❖ Userid.
Contains the primary key from the Staff’s table that acts as a Foreign Key
here.
5-- 22 - | P a g e
Chapter - 5
❖ Courseid.
Contains the primary key from the Courses table that acts as a Foreign Key here.
The Courses table contains all the data regarding each course in 11 separate
columns.
• Courseid.
This acts as the primary key for the table.
• Courseicon.
Contains the Icon/image of the course.
• CourseTitle.
Contains the title of the course.
• CourseDesc.
Contains the description of the course.
5-- 23 - | P a g e
Chapter - 5
The Course Assignments table contains all the data regarding any assignment that
the Faculty assigns in a course. It has 5 columns.
• id.
This acts as the primary key for the table.
• Courseid.
Contains the primary key from the courses table that acts as a foreign key
here.
• Title.
Contains the title of the assignment.
• Desc.
Contains the description of the Assignment
• Date.
Contains the due date of the Assignment
• id.
This acts as the primary key for the table.
• Material.
Contains the name of the file that is submitted by the student.
5-- 24 - | P a g e
Chapter - 5
• Courseid.
Contains the primary key from the courses table that acts as the foreign key
here.
• Userid.
Contains the primary key from the student’s table that acts as a foreign key
here.
• Date.
Contains the date on which the assignment was submitted on.
• Ca_id.
Contains the primary key from the course assignment table that acts a foreign
key here.
The course materials table is used to store data relevant to the content that is
shared by the Faculty. It has the following five columns.
• id.
This acts as the primary key for the table.
• userid.
Contains the primary key from the staffs table that acts as the foreign key
here and identifies the staff member that uploaded the material.
• Courseid.
Contains the primary key from the courses table that acts as the foreign key
here.
• CourseMat.
Contains the name of the uploaded file.
5-- 25 - | P a g e
Chapter - 5
• Date.
Contains the date on which the material was uploaded.
This table contains all the data relevant to the comments that are located in the
course page. It has the following six columns.
• id.
This acts as the primary key for the table.
• message.
This stores the user comments.
• courseid.
This is the primary key from the courses table and acts as a foreign key here.
• userid.
This is the primary key from the staffs/students table and acts as a foreign key
here, it is used to identify the commentor.
• date.
This stores the date on which the comment was posted on.
• userrole.
This stores the role of the poster and is used to identify the commentor.
5-- 26 - | P a g e
Chapter - 5
This table stores data for the user tags/mentions that are within a comment and is
used to link a user to a mention from a comment. It has the following four columns.
• id.
This acts as the primary key for the table.
• Comment_id.
This stores the primary key from the comments table that acts as a foreign
key here.
• userid.
This stores the primary key from the staffs/students table that acts as a
foreign key here. It is used to identify who was mentioned in the comment.
• User_role.
This stores the role of the user that was mentioned in the comment. It is also
used to identify who was mentioned in the comment.
5-- 27 - | P a g e
Chapter - 6
6.1 Folders.
6.1.1 Assets.
The Assets Folder contains all of the resources that is required for the
operation of the application. It contains the following sub-folders.
▪ CSS.
▪ Fonts.
▪ Img.
▪ JavaScript.
6.1.2 Classes.
This Folder contains all of the PHP model view classes files.
▪ Model
• Model files will have “classes” in the later part of their names
(Signup_classes.php for example). These files will contain all of the
necessary PHP logics for the INSERTION, DELETION, SELECTION
and MODIFICATION of data from the database. These files will be
solely limited to protected methods that will be inherited by either the
Controller classes or the Viewer Classes.
6-- 28 - | P a g e
Chapter - 6
▪ View
• The View files will have the “viewer” word in the later part of their
names (profile_viewer.php) for example. These files will inherit
protected methods from the Model classes and will then use them to
create public methods that will be format the data retrieved from the
database into its relevant HTML format that can be called in the main
web pages.
▪ Controller
• The controller files will the “contrllr” word in the Laster part of their
names (Login_contrllr.php for example). These files will also inherit the
protected methods from the model class and will use them to securely
transfer data from the includes files to the database. They will have
private properties, a constructor and multiple public methods for data
manipulation.
▪ Database
6.1.3 Includes.
The includes folder will contain all of the includes files that will be used to
receive POST and GET requests from the HTML forms and AJAX scripts and
will then filter and sanitize the data received from the requests and then
transfer them into their relevant PHP classes file, It will perform the said
transfer by creating objects from the said classes and then calling their
methods using said objects.
6.1.4 Uploads.
The uploads folder will be used to store all of the user uploaded content on
the application such as profile images, Pdf files, PPTX files and other types of
documentation and images.
6-- 29 - | P a g e
Chapter - 6
In Our Application, the data handling is performed according to the following steps.
First and foremost, the webpage sends the data in the form of a POST or a GET
request to the includes file using an AJAX script or a traditional HTML form.
The includes files will then receive the data and then assign them to PHP variables
after filtering and sanitizing them from harmful and malicious characters. Then, it will
send the data to the Controller class.
Here, the data is then encapsulated, secured and checked for any errors or
irregularities. The controller class then forwards the data to the Model class.
6-- 30 - | P a g e
Chapter - 6
The model class then transfers the data to the database. It also Fetches data from
the database before forwarding it to the Viewer class.
In the final step, The viewer class then receives the data from the Model class and
then either trough the includes file or it directly displays the data on the webpages.
6-- 31 - | P a g e
Chapter - 7
7 Documentation.
Following is the explanation of the working of the code and the code itself of
individual files and modules.
7.1 Dashboard.
7.1.1 Working.
The given PHP file is used to display user courses and their details, and also display
course overview using charts and carousel images.
include_once 'header.php';
include_once 'classes\database.php';
include_once 'classes\courses_classes.php';
include_once 'includes\course_retreive.php';
include_once 'top.php';
<?php $coursesF->getUserCoursescard($_SESSION["user_id"],
$_SESSION["user_role"]);?>
• It is a PHP function that retrieves user course details and displays them as
cards.
7-- 32 - | P a g e
Chapter - 7
<?php $coursesF->getUserCoursesRow($_SESSION["user_id"],
$_SESSION["user_role"]);?>
• It is a PHP function that retrieves user course details and displays them as
rows in a table.
• $coursesF: It is an object of course_retreive class.
• getUserCoursesRow(): It is a function that retrieves user course details and
displays them as rows in a table.
• $_SESSION["user_id"]: It is a session variable that stores the user ID.
• $_SESSION["user_role"]: It is a session variable that stores the user role.
7.2 Courses.
The given PHP file is used to display information related to a course on a web page.
The code retrieves the course information from the database using the included PHP
classes and displays it to the user. The documentation for the given PHP file is as
follows:
• header.php: This file is included at the beginning of the code and contains the
header information required for the web page.
•
7-- 33 - | P a g e
Chapter - 7
• database.php: This file contains the Database class which is used to connect
to the database and execute SQL queries.
• courses_classes.php: This file contains the course_retreive class which is
used to retrieve course information from the database.
• course_retreive.php: This file includes code to retrieve course information
from the database using the course_retreive class.
• quiz_classes.php: This file contains the quiz_viewer class which is used to
retrieve quiz information from the database.
• quiz_viewer.php: This file includes code to retrieve quiz information from the
database using the quiz_viewer class.
• top.php: This file is included to display the top navigation menu on the web
page.
7.2.2 Variables
• $courseid: This variable is used to store the course ID of the course being
displayed. It is retrieved from the $_SESSION variable which is set when the
user selects a course to view.
• $coursesF: This variable is an instance of the course_retreive class which is
used to retrieve and display course information.
• $quizF: This variable is an instance of the quiz_viewer class which is used to
retrieve and display quiz information.
7-- 34 - | P a g e
Chapter - 7
• The code generates a web page layout with a header and a container-fluid
class div tag.
• Within the container-fluid class div tag, there is a row class div tag with two
columns.
• The left column has two card class div tags. The first card displays the course
information, and the second card displays the list of assignments for the
course.
• The right column has one card class div tag that displays the list of quizzes for
the course.
• Each list is displayed using the getcourselist() or getQuizList() method of
the $coursesF or $quizF objects, respectively.
7.3 Profile
The current file is a PHP script that retrieves user profile and course information from
a database and displays it on a web page.
7.3.2 Variables
7-- 35 - | P a g e
Chapter - 7
• $profilesF: an instance of the profileFetch class for fetching user profile
information from the database
• $coursesF: an instance of the course_retreive class for fetching course
information from the database
7.3.3 Functions
The web page includes a user profile card at the top of the page that displays the
user's profile image, name, and role. The user profile card also includes tabs for
accessing messages and settings, although these tabs are currently commented out
in the code.
7-- 36 - | P a g e
Chapter - 7
Below the user profile card, the web page displays the user's profile information in a
form. The information displayed includes the user's username, email, identification
number, gender, semester (for students only), and program (for students only). If the
user is not a staff member, the identification number field is displayed.
7.4 Sign-In
This PHP file is a webpage that allows users to sign in using their email and
password. It includes a form with two input fields and a submit button. Upon
submission, an AJAX request is sent to a PHP script called "Login.php" to
authenticate the user's credentials. If the credentials are valid, the user is redirected
to a dashboard page.
7.4.2 Variables
7.4.3 Functions
7-- 37 - | P a g e
Chapter - 7
• .ajax(): This function is used to send an AJAX request to the "Login.php"
script. It passes the values of the "username" and "userpass" variables to the
script as POST data. If the script returns an error message, it is displayed on
the webpage. If the script returns "none", the user is redirected to the
dashboard page.
The PHP file generates an HTML webpage with the following layout:
• header.php: This file is included at the beginning of the HTML file and is used
to load the header of the webpage.
• body: The body of the webpage includes a main content section with a card
that contains a form for user authentication. The form has two input fields for
email and password, a checkbox for remembering the user's credentials, and
a submit button. Below the form, there is a paragraph element with an ID of
"error_messages" that is used to display error messages if the user's
credentials are invalid. On the right side of the main content section, there is a
section with a gradient background and a quote about writing.
• scripts: The webpage includes several JavaScript files, including Popper.js,
Bootstrap, and Scrollbar.js. The JavaScript code at the end of the file includes
an AJAX request to the "Login.php" script and initializes the Scrollbar.js plugin
for Windows users.
7.5 Sign-Up
This PHP file is designed for the signup process of users for a website. The file
includes the header file, required database classes, course retrieval file, and an
object for course retrieval. The form in this file is used to collect information about the
user, including their name, email, password, role, phone number, gender, program,
semester, and courses they would like to enroll in.
7-- 38 - | P a g e
Chapter - 7
• includes/course_retreive.php: It contains the course retrieval file.
7.5.2 Variables
7.5.3 Functions
This PHP file contains a form for user signup that collects the following user
information:
• Username
• Email
• Password
• Confirm Password
• Role
• Student ID (if role is student)
• Phone number
• Gender
• Program
• Semester
• Courses to enroll in
The form includes the following HTML elements:
• An image preview
• Text inputs for user information
• A select element for role
• A select element for gender
7-- 39 - | P a g e
Chapter - 7
• Text inputs for student ID, program, and semester
• A select element for courses
The form uses the POST method to submit the data to the server.
7.6 Management
This file contains PHP code for a web page that displays three different modals, each
with a form, depending on the user's role. It includes various PHP files to connect to
a database and retrieve information about courses and profiles.
• header.php: This file contains the HTML code for the header section of the
web page. It is included in this file using the include_once function.
• classes/database.php: This file contains the PHP code to connect to the
database. It is included in this file using the include_once function.
• classes/courses_classes.php: This file contains the PHP code for the
course_retreive class, which is used to retrieve information about courses. It
is included in this file using the include_once function.
• includes/course_retreive.php: This file contains the PHP code to retrieve
course information. It is included in this file using the include_once function.
• classes/profiles.classes.php: This file contains the PHP code for the
profileFetch class, which is used to retrieve information about profiles. It is
included in this file using the include_once function.
• classes/profile_fetch_classes.php: This file contains the PHP code to
retrieve profile information. It is included in this file using the include_once
function.
7.6.2 Variables
7-- 40 - | P a g e
Chapter - 7
7.6.3 Functions
The web page contains three different modals, each with a form, that allow users to
perform different actions depending on their role. The modals are displayed using
JavaScript and CSS. The layout of the web page is as follows:
• Header: Contains the title of the page and a link to the user's profile.
• Modal 1: Allows teachers, staff, and admins to add course slides.
• Modal 2: Allows teachers, staff, and admins to delete courses.
• Modal 3: Allows admins to manage user accounts. Each modal contains a
form with various input fields and a submit button. The modals are displayed
using JavaScript and CSS.
7.7 Assignment
7-- 41 - | P a g e
Chapter - 7
7.7.2 Variables
7.7.3 Functions
7.8 Attendance
7-- 42 - | P a g e
Chapter - 7
• header.php: Contains the HTML head section and loads CSS and JavaScript
files.
• sidebar.php: Contains the HTML for the sidebar menu.
7.8.2 Variables
7.8.3 Functions
7.9 Compliance
The compliance.php file is a PHP script that handles user complaints submission
and retrieval. It allows users to submit complaints via a web form and displays all
submitted complaints.
7-- 43 - | P a g e
Chapter - 7
• header.php: This file contains the header section of the web page.
• database.php: This file contains the database connection code.
• courses_classes.php: This file contains the class definition for the courses.
• course_retreive.php: This file contains the code for retrieving course
information from the database.
• top.php: This file contains the top section of the web page.
• footer.php: This file contains the footer section of the web page.
• popper.min.js: This file contains the Popper.js library required for Bootstrap.
• bootstrap.min.js: This file contains the Bootstrap JavaScript library.
• perfect-scrollbar.min.js: This file contains the Perfect Scrollbar jQuery
plugin.
• smooth-scrollbar.min.js: This file contains the Smooth Scrollbar jQuery
plugin.
• argon-dashboard.min.js: This file contains the Argon Dashboard template
JavaScript code.
• buttons.js: This file contains the GitHub buttons JavaScript code.
7.9.2 Variables
7.9.3 Functions
7-- 44 - | P a g e
Chapter - 7
The compliance.php file contains the HTML and JavaScript code for the web page
layout. The layout consists of a form for submitting complaints and a section for
displaying all submitted complaints. The page also includes several JavaScript
libraries and code for the Argon Dashboard template. The layout is divided into two
columns, with the form on the right and the complaints section on the left. The page
is responsive and can adapt to different screen sizes.
7-- 45 - | P a g e