0% found this document useful (0 votes)
134 views45 pages

Project LMS Report

This document proposes the design and development of a learning management system (LMS) to facilitate students and lecturers. The LMS will automate existing manual systems by providing a central platform for storing and easily accessing course content like slides and materials. This will free up students' time spent on tasks like maintaining course content and allow lecturers to easily share content and automate work like attendance tracking and assignment management. The LMS will be developed using tools like PHP and MySQL and include features like course enrollment, content uploading, assignment submission, quizzes and a dashboard.

Uploaded by

haseebafandi1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
134 views45 pages

Project LMS Report

This document proposes the design and development of a learning management system (LMS) to facilitate students and lecturers. The LMS will automate existing manual systems by providing a central platform for storing and easily accessing course content like slides and materials. This will free up students' time spent on tasks like maintaining course content and allow lecturers to easily share content and automate work like attendance tracking and assignment management. The LMS will be developed using tools like PHP and MySQL and include features like course enrollment, content uploading, assignment submission, quizzes and a dashboard.

Uploaded by

haseebafandi1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

Abstract

This Project is aimed towards the design and development of a Learning


Management System (LMS) that will facilitate both the students and the lecturers.
Our goal in this project is to create a knowledge sharing and management platform
that will automate the existing manual system, this will allow the storage of course
content such as slides, materials and documentation for a long period while
simultaneously enabling the easy access and manipulation of the same content. This
will free the students from tedious tasks such as the maintenance and record
keeping of course slides/content and the students will be able to utilize this free time
to focus on their studies instead.
This will also allow the Lecturers/Course Managers a digital and central system
through which they can easily share any type of Course content to the students. This
will also automate the manual work that was required from the Lecturers previously
like the Marking of Attendance, Assignment of Assignments and the Management
and planning of Course Outline/Content.

2-- 1 - | P a g e
Index

Table of Content.

Contents

INTRODUCTION ......................................................................................................... 2-- 5 -

1.1. What is an LMS. .........................................................................................................................2-- 5 -

1.2. Objective/Why an LMS. .............................................................................................................2-- 5 -

1.3. Scope of our LMS........................................................................................................................2-- 6 -

1.4 Modus Operandi. .........................................................................................................................2-- 7 -


1.4.1 First Step.........................................................................................................................................2-- 7 -
1.4.2 Second Step. ...................................................................................................................................2-- 8 -
1.4.3 Third Step. ......................................................................................................................................2-- 9 -
1.4.4 Management (For Staff Only). ......................................................................................................2-- 11 -

1.5 Conclusion..................................................................................................................................2-- 12 -

2 COMPARISON AND TOOLS/TECHNOLOGIES USED.................................................... 2-- 13 -

2.1 Comparison. ...............................................................................................................................2-- 13 -


2.1.1 Without an LMS: ......................................................................................................................2-- 13 -
2.1.2 With an LMS:............................................................................................................................2-- 13 -

2.2 Tools/Technologies Used. ...........................................................................................................2-- 14 -

2.3 Advantages. ...............................................................................................................................2-- 14 -

3 PROBLEM STATEMENTS AND SOLUTIONS. ............................................................... 3-- 15 -

3.1 Manual Designation of Assignments. .........................................................................................3-- 15 -

3.2 No Central Course Content Platform. ..........................................................................................3-- 15 -

3.3 Inconsistent Communication. .....................................................................................................3-- 15 -

3.4 General Absence of an LMS. .......................................................................................................3-- 16 -

3.5 Conclusion..................................................................................................................................3-- 16 -

-2-|Page
Index
4 TEAM MEMBERS AND THEIR ROLES. ....................................................................... 4-- 17 -

4.1 Syed Hassan Raza. ......................................................................................................................4-- 17 -

4.2 M. Saad Amir. .............................................................................................................................4-- 17 -

4.3 Hashir Azhar. ..............................................................................................................................4-- 17 -

4.4 M. Haseeb Afandi. ......................................................................................................................4-- 17 -

5 DATABASE DESIGN AND STRUCTURE. ...................................................................... 5-- 18 -

5.1 Introduction. ..............................................................................................................................5-- 18 -

5.2 Database Design (in-progress). ...................................................................................................5-- 18 -

5.3 Database Structure (in-progress). ...............................................................................................5-- 19 -


5.3.1 Student’s Table. ............................................................................................................................5-- 19 -
5.3.2 Student’s Courses Table. ..............................................................................................................5-- 20 -
5.3.3 Staff’s Table. .................................................................................................................................5-- 21 -
5.3.4 Staff’s Courses Table. ....................................................................................................................5-- 22 -
5.3.5 Courses Table. ..............................................................................................................................5-- 23 -
5.3.6 Course Assignments. ....................................................................................................................5-- 23 -
5.3.7 Student Assignments. ...................................................................................................................5-- 24 -
5.3.8 Course Material. ...........................................................................................................................5-- 25 -
5.3.9 Course Comments. .......................................................................................................................5-- 26 -
5.3.10 Comment Mentions. ................................................................................................................5-- 27 -

6 APPLICATION’S DATA FLOW AND DETAILS. ............................................................... 6-- 28 -

6.1 Folders. ......................................................................................................................................6-- 28 -


6.1.1 Assets. ..........................................................................................................................................6-- 28 -
6.1.2 Classes. .........................................................................................................................................6-- 28 -
6.1.3 Includes. .......................................................................................................................................6-- 29 -
6.1.4 Uploads. .......................................................................................................................................6-- 29 -

6.2 Data Flow. ..................................................................................................................................6-- 30 -


6.2.1 Step One. ......................................................................................................................................6-- 30 -
6.2.2 Step Two. ......................................................................................................................................6-- 30 -
6.2.3 Step Three. ...................................................................................................................................6-- 30 -
6.2.4 Step Four. .....................................................................................................................................6-- 31 -
6.2.5 Step Five. ......................................................................................................................................6-- 31 -

7 DOCUMENTATION. ................................................................................................. 7-- 32 -

7.1 Dashboard. .................................................................................................................................7-- 32 -


7.1.1 Working. .......................................................................................................................................7-- 32 -
7.1.2 Included Files................................................................................................................................7-- 32 -
7.1.3 User Course Details ......................................................................................................................7-- 32 -
7.1.4 Course Overview ..........................................................................................................................7-- 33 -

7.2 Courses. .....................................................................................................................................7-- 33 -

-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.3 Profile ........................................................................................................................................7-- 35 -


7.3.1 Included Files................................................................................................................................7-- 35 -
7.3.2 Variables .......................................................................................................................................7-- 35 -
7.3.3 Functions ......................................................................................................................................7-- 36 -
7.3.4 Web Page Output .........................................................................................................................7-- 36 -

7.4 Sign-In ........................................................................................................................................7-- 37 -


7.4.1 Included Files................................................................................................................................7-- 37 -
7.4.2 Variables .......................................................................................................................................7-- 37 -
7.4.3 Functions ......................................................................................................................................7-- 37 -
7.4.4 Web Page Layout ..........................................................................................................................7-- 38 -

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 -

7.6 Management ..............................................................................................................................7-- 40 -


7.6.1 Included Files................................................................................................................................7-- 40 -
7.6.2 Variables .......................................................................................................................................7-- 40 -
7.6.3 Functions ......................................................................................................................................7-- 41 -
7.6.4 Web page layout ..........................................................................................................................7-- 41 -

7.7 Assignment ................................................................................................................................7-- 41 -


7.7.1 Included Files................................................................................................................................7-- 41 -
7.7.2 Variables .......................................................................................................................................7-- 42 -
7.7.3 Functions ......................................................................................................................................7-- 42 -
7.7.4 Web page layout ..........................................................................................................................7-- 42 -

7.8 Attendance .................................................................................................................................7-- 42 -


7.8.1 Included Files................................................................................................................................7-- 42 -
7.8.2 Variables .......................................................................................................................................7-- 43 -
7.8.3 Functions ......................................................................................................................................7-- 43 -
7.8.4 Web Page Layout ..........................................................................................................................7-- 43 -

7.9 Compliance ................................................................................................................................7-- 43 -


7.9.1 Included Files................................................................................................................................7-- 43 -
7.9.2 Variables .......................................................................................................................................7-- 44 -
7.9.3 Functions ......................................................................................................................................7-- 44 -
7.9.4 Web Page Layout ..........................................................................................................................7-- 45 -

-4-|Page
Chapter - 1

Introduction

1.1. What is an LMS.

An LMS, or Learning Management System, is a software application used to


manage, deliver and track educational courses and training programs. It
allows instructors to create and deliver course content, assess learners'
progress, and provide feedback and support.

LMS platforms can be customized to fit the specific needs of an organization,


and typically include features such as course creation tools, assessment and
grading tools, communication and collaboration tools, and reporting and
analytics tools. LMSs are used in a variety of contexts, including academic
institutions, corporate training environments, and government agencies, and
are widely used across industries for managing and delivering e-learning
content.

1.2. Objective/Why an LMS.

There are several reasons why our university should consider using an LMS:

• Streamlining course management: An LMS can help our university


streamline the management of courses by allowing instructors to
easily create and organize course content, track student progress, and
manage grades and assignments. This can save time and effort for
both instructors and students.

• Enhancing student engagement: LMS platforms offer a range of


tools and features to enhance student engagement, such as
discussion forums, collaborative learning activities, and multimedia
content. This can help to create a more interactive and engaging
learning experience for students.

• Improving accessibility: LMS platforms can provide a more


accessible learning experience by allowing students to access course
materials and participate in activities from anywhere, at any time. This
can be particularly important for students who have disabilities, are
studying remotely, or have other constraints that make it difficult to
attend traditional classes.

2-- 5 - | P a g e
Chapter - 1

• Tracking student performance: An LMS can provide instructors with


real-time data on student performance, including grades, attendance,
and participation. This can help instructors to identify struggling
students early on and provide targeted support and feedback.

Overall, an LMS can help universities to create a more efficient, engaging,


and accessible learning environment for students, while providing instructors
with valuable tools to support teaching and learning.

1.3. Scope of our LMS.

Our Learning Management System or LMS will be called “Emaan-LMS” and


will focus on meeting the needs and requirements of our institute. It will
provide the following functionalities and features and more.

❖ 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.

❖ Account Management and Creation.

 Restricted to Staff.
 Accounts with separate roles (Staff, Teachers, Students).
 Account Deletion.
 Edit details/credentials of existing accounts.

❖ Courses.

 Upload Slides (Restricted to non-students).


 Download Slides.
 Upload Assignments (Restricted to non-students).
 Assignment Submission.
 Quizzes.
 Course Outline.
 Chat / Comment.

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.

 Hidden Student ID.


 Visible to all Users.
 Can only be deleted by staff and upper management.

1.4 Modus Operandi.

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.

1.4.1 First Step.

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

1.4.2 Second Step.

After successfully signing-in the user will be greeted by the dashboard.

The Dashboard will consist of multiple elements, among these elements


two of the relevant elements are the Side-Navbar and the Course Cards.

The Side-Navbar will display different content based on the role of the
current signed-in user.

For Non-Staff For Staff

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.

1.4.3 Third Step.


After Clicking on any Course Card, the User will be greeted by the
relevant Course page. Here the user can Submit/Assign Assignments,
Download/Share Slides, Assign Quizzes and the User can also leave a
comment here.

The Course page will be dynamic and will consist of multiple main
elements, some of them are the following.

❖ The Assignment Section.

 In this section the Lecturers can Assign Assignments to the Students through
a form like below.

2-- 9 - | P a g e
Chapter - 1

❖ The Slides/Course Material Section.

 Here the faculty can Upload/Share any Slides or Course Content that they
desire by using the following form.

❖ The Comment Section.

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.

1.4.4 Management (For Staff Only).

The staff/administrators can access the management tab by clicking on it on


the Side-Navbar. They will then be greeted with the Management Tab that will
contain all the accessories and functions that the staff need.

For example.

❖ Courses and Account Management.

 Here the staff/administrators can Insert New Courses or Modify/Delete pre-


existing courses.

 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 Comparison and Tools/Technologies Used.

2.1 Comparison.

Academic performance can be significantly impacted by the use of a


Learning Management System (LMS). Here is a comparison of academic
performance with and without an LMS:

2.1.1 Without an LMS:

• Limited Access to Learning Resources: Without an LMS, students


may have limited access to learning resources. This can make it
challenging for students to keep track of their progress and stay
organized.

• Inconsistent Communication: Communication between students and


faculty may be inconsistent without an LMS. Students may miss
important announcements, deadlines, or updates that can impact their
academic performance.

2.1.2 With an LMS:

• Increased Access to Learning Resources: An LMS provides


students with increased access to learning resources, including course
materials, assignments, assessments, and discussion forums. This can
help students stay organized, track their progress, and engage more
deeply with the course material.

• Improved Communication: An LMS provides students and faculty


with a centralized platform for communication, making it easier to stay
informed and connected. Faculty can post announcements, reminders,
and updates, and students can ask questions and engage in
discussion forums.

Overall, an LMS can significantly impact academic performance by providing


students with increased access to learning resources, improved
communication, and enhanced collaboration. This can lead to better learning
outcomes, higher student engagement, and improved student retention rates.

2-- 13 - | P a g e
Chapter - 2

2.2 Tools/Technologies Used.

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.

• Core Languages: Since frameworks can become outdated and


restricts us to a pre-designed program structure. Through the use of
core Languages and Technologies, we will make our System more
secure and easy to maintain.

• MVC Models and Encapsulation: The Back-End section of our


project will utilize the secure and robust Model-View-Class model and
OOP encapsulation and abstraction concepts to ensure data security
and to keep our program code simple and easy to understand.

• RDMS: The use of a Relational Database Management System will


reduce data redundancy and will make the access of data a simple
process through the use of 2D and 3D tables by linking them through
Foreign and Unique Keys.

2-- 14 - | P a g e
Chapter - 3

3 Problem Statements and Solutions.

3.1 Manual Designation of Assignments.

• Problem: Currently all Assignments are assigned to students


manually in a physical manor, this method is tedious and
unsuitable as those students who are absent are left unaware and
in the dark and have no proper way of gaining sufficient
information regarding the assignment.

• Solution: In our LMS, any student will be easily notified of any


recently designated assignments and can check the relevant
information in the Assignments tab of the relevant course. This
method will ensure that even those students who are forced to
study remotely can partake in these assignments without any
issue.

3.2 No Central Course Content Platform.

• Problem: Currently, slides and other course content are shared to


students via instant messaging apps through their smartphones.
This means that when a student loses their smartphone, they also
lose access to the course content as well.

• Solution: In our LMS, every bit of course content will be


centralized and will be digitally available in their respective course
tabs which allow students to access them from anywhere and
anytime.

3.3 Inconsistent Communication.

• Problem: Students in our university do not have a appropriate


method through which they can communicate with the Faculty and
Staff in order to discuss and voice their issues.

• Solution: In our LMS, students can use the comment section in


the course tab or in the compliance tab to voice their problems
and opinions.

3-- 15 - | P a g e
Chapter - 3

3.4 General Absence of an LMS.

• Problem: Currently almost every academic institute and university


in Karachi utilities an LMS. The Lack of an LMS forces students to
manually keep track of tasks, updates and course contents. This
consumes a lot of precious time for the students.

• Solution: By providing an LMS, we will free our student body from


such tedious tasks and will enable them to achieve their goals and
greater academic heights than before.

3.5 Conclusion.

By implementing a learning management system, we will be able to resolve a lot


of issues currently faced by the students. An LMS will also help the Faculty and
Staff as well as it will allow them to better co-ordinate and manage courses and
also to monitor student performance more accurately than before.

3-- 16 - | P a g e
Chapter - 4

4 Team Members and their Roles.

4.1 Syed Hassan Raza.

➢ HTM.
➢ CSS.
➢ JavaScript.
➢ Error Detection & Quality Assurance.

4.2 M. Saad Amir.

➢ HTML
➢ CSS.
➢ JavaScript.
➢ UI/UX Design.

4.3 Hashir Azhar.

➢ HTML.
➢ CSS, SCSS.
➢ JavaScript.
➢ PHP.

4.4 M. Haseeb Afandi.

➢ JavaScript
➢ PHP.
➢ MySQL.
➢ Ajax.

4-- 17 - | P a g e
Chapter - 5

5 Database Design and Structure.

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.2 Database Design (in-progress).

5-- 18 - | P a g e
Chapter - 5

5.3 Database Structure (in-progress).

Our Database embodies the following tables.

❖ Student’s Table.
 Student Courses Table.
❖ Staff’s Table.
 Staff Courses Table.
 Courses Table.
 Course Material.
 Course Assignments.
 Course Comments.
▪ Comment Mentions.
❖ Notifications.

5.3.1 Student’s Table.

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.

5.3.2 Student’s Courses Table.

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.

5.3.3 Staff’s Table.

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.

5.3.4 Staff’s Courses Table.

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.

5.3.5 Courses Table.

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.3.6 Course Assignments.

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

5.3.7 Student Assignments.

Contains all the data relevant to the assignments submitted by students. It


contains the following six columns.

• 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.

5.3.8 Course Material.

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.

5.3.9 Course Comments.

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

5.3.10 Comment Mentions.

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 Application’s Data flow and Details.


The web application consists of four main folders currently.

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.

 Contains all of the necessary Cascading Style Sheets and “Sass”


files.

▪ Fonts.

 Contains all of the Fonts and SVG files.

▪ Img.

 Contains background images and cover images.

▪ JavaScript.

 Contains all of the necessary JavaScript files that are used to


provide user-end functionality.

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

• The database.php file will contain the connection details utilize to


establish a connection to the 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

6.2 Data Flow.

In Our Application, the data handling is performed according to the following steps.

6.2.1 Step One.

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.

6.2.2 Step Two.

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.

6.2.3 Step Three.

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

6.2.4 Step Four.

The model class then transfers the data to the database. It also Fetches data from
the database before forwarding it to the Viewer class.

6.2.5 Step Five.

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.

7.1.2 Included Files

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';

• header.php: It includes the header section of the web page.


• database.php: It includes the class to connect to the database.
• courses_classes.php: It includes the class to create courses object.
• course_retreive.php: It includes functions to retrieve user course details.
• top.php: It includes the top section of the web page.

7.1.3 User Course Details

<?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

• $coursesF: It is an object of course_retreive class.


• getUserCoursescard(): It is a function that retrieves user course details and
displays them as cards.
• $_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.

<?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.1.4 Course Overview

• It displays a card that shows the course overview.


• It includes a chart that displays course statistics.
• The chart is displayed using the canvas tag and JavaScript charting library.

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:

7.2.1 Included files

• 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.2.3 Functions and Methods

• getCourseCard($courseid): This method is defined in the course_retreive


class and is used to retrieve and display course information in the form of a
card.
• getcourselist($courseid): This method is defined in the course_retreive
class and is used to retrieve and display the list of assignments for a given
course.
• getQuizList($courseid): This method is defined in the quiz_viewer class and
is used to retrieve and display the list of quizzes for a given course.

7.2.4 Web page layout

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.1 Included Files

• header.php: includes header information for the web page


• classes\database.php: includes a class for connecting to a MySQL database
• classes\profiles.classes.php: includes a class for fetching user profile
information from the database
• classes\profile_fetch_classes.php: includes a class for fetching user profile
information from the database
• classes\courses_classes.php: includes a class for fetching course information
from the database
• includes\course_retreive.php: includes a script for retrieving course
information from the database
• top.php: includes top information for the 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

• fetchProfile_img($user_id, $user_role): a function of the profileFetch class


that retrieves the user's profile image from the database and displays it on the
web page
• fetchProfile_name($user_id, $user_role): a function of the profileFetch class
that retrieves the user's name from the database and displays it on the web
page
• fetchProfile_role($user_id, $user_role): a function of the profileFetch class
that retrieves the user's role from the database and displays it on the web
page
• fetchProfile_email($user_id, $user_role): a function of the profileFetch class
that retrieves the user's email from the database and displays it on the web
page
• fetchProfile_roll($user_id, $user_role): a function of the profileFetch class
that retrieves the user's identification number from the database and displays
it on the web page
• fetchProfile_gender($user_id, $user_role): a function of the profileFetch
class that retrieves the user's gender from the database and displays it on the
web page
• fetchProfile_sem($user_id, $user_role): a function of the profileFetch class
that retrieves the user's semester from the database and displays it on the
web page
• fetchProfile_program($user_id, $user_role): a function of the profileFetch
class that retrieves the user's program from the database and displays it on
the web page

7.3.4 Web Page Output

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.1 Included Files

This PHP file includes the following files:


• header.php: This file is included at the beginning of the PHP file and is used
to load the header of the webpage.

7.4.2 Variables

The PHP file defines the following variables:


• username: This variable stores the value of the user's email input field.
• userpass: This variable stores the value of the user's password input field.
• counter: This variable is not used in the current implementation.

7.4.3 Functions

This PHP file defines the following functions:


• $(document).ready(): This function is called when the webpage finishes
loading. It attaches an event listener to the form submission and sends an
AJAX request to the "Login.php" script.
• $("form").submit(): This function is called when the form is submitted. It
prevents the default form submission and sends an AJAX request to the
"Login.php" script.

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.

7.4.4 Web Page Layout

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.5.1 Included Files

This PHP file includes the following files:


• header.php: It includes the header of the website.
• classes/database.php: It contains the database class.
• classes/courses_classes.php: It contains the course retrieval class.

7-- 38 - | P a g e
Chapter - 7
• includes/course_retreive.php: It contains the course retrieval file.

7.5.2 Variables

This PHP file uses the following variables:


• $course: This is an object of the course retrieval class.

7.5.3 Functions

This PHP file does not contain any functions.

7.5.4 Web page layout

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.

7.6.1 Included Files

• 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

• $coursesF: An instance of the course_retreive class, used to retrieve


information about courses.
• $profilesF: An instance of the profileFetch class, used to retrieve information
about profiles.

7-- 40 - | P a g e
Chapter - 7

7.6.3 Functions

In-Progress right now!

7.6.4 Web page layout

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

This PHP file is a webpage that displays a table of assignments uploaded by


students. It includes the following files: header.php, database.php,
courses_classes.php, and course_retrieve.php. The webpage has a layout that
includes a container-fluid with a row and a column that contains a card element with
a header and body. The card body contains a table that displays the uploaded
assignments, with columns for student name, program, status, date, and download
link. The webpage also includes a modal that allows students to upload
assignments.

7.7.1 Included Files

• header.php: This file is included to load the header of the webpage.


• database.php: This file is included to create a connection to the database.
• courses_classes.php: This file is included to define the course class.
• course_retrieve.php: This file is included to retrieve the course information.

7-- 41 - | P a g e
Chapter - 7

7.7.2 Variables

• $coursesF: An instance of the course_retreive class, used to retrieve course


information.

7.7.3 Functions

The PHP file does not define any functions.

7.7.4 Web page layout

• The webpage is enclosed in a container-fluid with an ID of "obkiclass2".


• Inside the container-fluid, there is a row that contains a column with a card
element.
• The card element has a header and a body.
• The header of the card element contains a row with two columns. The first
column contains the title "Assignments", and the second column contains a
button to upload an assignment, which is only displayed if the user role is
"student".
• The body of the card element contains a table with columns for student name,
program, status, date, and download link.
• The webpage also includes a modal that allows students to upload
assignments. The modal is displayed when the user clicks the "Upload
Assignment" button, and it contains a form with inputs for the assignment title
and file uploads. The modal has a close button, and it is closed when the user
clicks outside the modal or on the close button.

7.8 Attendance

This file (assignment.php) is a web page that displays attendance records of


students for a specific course. It includes the header, sidebar and the main content.

7.8.1 Included Files

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

There are no custom variables defined in this file.

7.8.3 Functions

There are no custom functions defined in this file.

7.8.4 Web Page Layout

• The HTML head section is loaded from the header.php file.


• The body class is set to "g-sidenav-show bg-gray-100".
• The page consists of a main container with a blue background and an image
of the school's logo.
• The sidebar menu is loaded from the sidebar.php file.
• The main content is inside a container with a white background and a border
radius.
• The content contains a navbar with a breadcrumb, a title and a notification bell
icon.
• The attendance records are displayed in a table.

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.9.1 Included Files

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

• $coursesF: An instance of the course_retreive class, used for retrieving


course information from the database.
• comments_limit: A variable used to limit the number of comments displayed
per page.

7.9.3 Functions

• loadcomments(): A function that loads the submitted complaints from the


server and displays them on the page.
• $(document).ready(): A jQuery function that runs the loadcomments()
function when the document is ready.
• p_but.click(): A jQuery function that submits a complaint when the "Submit
Complaint" button is clicked.

7-- 44 - | P a g e
Chapter - 7

• setInterval(): A JavaScript function that repeatedly runs the loadcomments()


function at an interval of 1000 milliseconds.
• buttonexists_check: A variable used to check if the "Load More" button
exists on the page.

7.9.4 Web Page Layout

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

You might also like