You are on page 1of 71

Project Report On

ONLINE CLASSES

Designed By:
Miss.Yashashree Hanumant Khanolkar.

Submitted To:

K.M.S.P. MANDAL’S
SANT RAWOOL MAHARAJ MAHAVIDYALAYA, KUDAL.
(NAAC Re-Accreditation “B” Grade
In the partial fulfillment of
M.Sc. Information Technology (Part II)

Under Guidance of:

Asst. Prof. D.A.Patil (M.C.A.)


Asst. Prof. Sneha Pingulkar (M.C.A.)

Through:

THE HEAD,
DEPARTMENT OF INFORMATION TECHNOLOGY,
S.R.M. COLLEGE, KUDAL.

PROJECT REPORT
2020-21
DECLARATION

To,

The Head,

Department of Information Technology,

S. R. M. College, Kudal.

Respected Sir,

We undersigned, hereby declare that the project on


“Online Classes” is developed under the guidance of our lecturer Asst.
Prof. Sneha Pingulkar.

The conclusion in this report is based on the data, which is


collected by me. I am declaring that this is our original work. I have not
copied any materials related to my project.

We do undersign that if my work is found to be copied, then I am


liable to punishment as per the university rule.

DATE:

PLACE: KUDAL.

(Miss. Yashashree Hanumant Khanolkar)


K.M.S.P. MANDAL’S
SANT RAWOOL MAHARAJ MAHAVIDYALAYA,
KUDAL.

NAAC RE-ACCREDITATION “B” GRADE

CERTIFICATE

This is to certify that Miss.Yashashree Hanumant Khanolkar


having Exam Seat number 3538925 have satisfactorily carried out her
project work entitled.

Online Classes

As per the syllabus prescribed for M.Sc. Information Technology


Part II of Mumbai University, Mumbai.

It is also certifying that this is her own work completed during


academic year 2020- 21. The work done is satisfactory and is presented as per
the specifications.

Project Guide External Examiner Head of Department

DATE:
K.M.S.P. MANDAL’S
SANT RAWOOL MAHARAJ MAHAVIDYALAYA,
KUDAL.

NAAC RE-ACCREDITATION “B” GRADE

CERTIFICATE

This is to certify that Miss. Yashashree Hanumant Khanolkar


having satisfactorily carried out her project work entitled.

Design Ocean Classes

It is also verifying that this is her own work completed during


academic year 2020 -21. The work done is satisfactory and is presented as per
the specifications.

DATE: Proprietor
ACKNOWLEDGEMENT

It’s my great pleasure to get this opportunity and sincerely thank


all the people, who have the way to create a successful project and help
me a lot during the completion of this project.
I would like to thank my project guide, Prof. Sneha Pingulkar,
who provide important information and guided me throughout the
project completion.
And last but not the least! I would like to thank all my classmates.

Thank You.

Miss. Yashashree Hanumant Khanolkar.


INDEX
Sr. Chapter Title Page
No. No. No.

1. I Acknowledgment

2. II Synopsis of the Project 1 and 2

3. III Main Report 3 to 57


 Objective & Scope of the Project
 Theoretical Background
 Survey of Literature
 Research Analysis and Design
 System Planning
 Details of Hardware & Software used
 Detailed Life Cycle of the Project
 Data Flow Diagram
 ER Diagram
 Activity diagram
 Class diagram
 Object diagram
 Input and Output Screen Design
 Process Involved
 Methodology used for testing
 Test Cases
 Test Reports
 Code of the Project

4. IV Conclusion 58 & 59

5. V Future Enhancement 60 & 61

6. VI Annexure
62 to 64
 List of Tables

7. VII References & Bibliography 65 & 66


Chapter Ii

Synopsis of the Project


Organizational Overview

Name of the organization :- Design Ocean


Address : - Guruprasad Complex, Kudal,
Tal :Kudal , Dist. :Sindhudurg.

1
Name:Kunal Dinesh Sawant

Class:TYCS(Sem V)

Roll no:25

Project Name: Edulinkr

 Introduction:

EduLinkr is an innovative online learning application designed to provide a


comprehensive platform for educators and students to engage in remote education
effectively. The app offers seamless attendance tracking and assignment
functionality, enabling a dynamic and interactive virtual learning experience.

 Problem Statement:

In the Pandamic periods all the School / Colleges are kept shutdown this leads to
gap between studies this app will help to take online classes which will solve the
above problem Many apps are also in the market which allows this functionality
but I am adding some key features like attendance managing system recorded
lectures and Assignment assigning functionality in the app.

 Objective and Scope:

 Enhance the quality of learning and teaching.


 No need to go physically in colleges.
 You can watch offline recordings.
 Meet the learning style or needs of students.
 Improve the efficiency and effectiveness.
 Improve user-accessibility and time flexibility to engage learners in the
learning process.
 Online assignments are taken.

2
 Process Description:
At first I observe other online lecture taking app that are use for taking online
lectures like Zoom , Google meet then I noticed they only has live lecture taking
functionality they don’t have Online Attendance Management, Online
Assignment, Recorded lecture functionality I have check all the platform but there
are no such platform which has all these function so I decided to make a app for
online classes which helps the students as well as teacher.

 Hardware and Software:

 Language And Tool Used:

Framework Android Studio


Programming Language Kotlin
Database Firebase/Mysql

 Hardware:

Operating System Windows 10


Processor Intel(R)core(Tm)i3-101015
RAM 8.00 GB

Kunal Dinesh Sawant

3
Chapter IIi

Main Report

Objective and Scope


 Enhance the quality of learning and teaching
 Meet the learning style or needs of students
 Improve the efficiency and effectiveness

4
 Improve user-accessibility and time flexibility to engage learners in the
learning process

 Enhance the quality of learning and teaching


In this project teacher and student can easily access the features of the
website. So that every student can access video lecture anytime, anywhere.
Also teacher can easily upload the video lectures according to class, send
documents such as images, videos, pdf, audio etc. also we provide animated
lectures to all standards which can be easily memorized by students and this
enhance the quality of learning and teaching.

 Meet the learning style or needs of students


Because of pandemic situations students are attending online lectures but the
assignments which are given by the teachers have to be submitted to the
teacher so in my project student can click the photos of their completed
assignments and upload them then teacher can check there assignments.
Also student can ask questions to teacher and get the satisfied answer this
meet the learning style or needs of students.

 Improve the efficiency and effectiveness


Every student can contact teachers for the query and also there are some
quiz competitions , exams taken by teachers which helps to build the
confidence level of students so that every student can study and observe
their performance this improves efficiency and effectiveness of the project.

 Improve user-accessibility and time flexibility to engage learners in


the learning process
Here every student can access the video lectures, assignments and other data
uploaded by teacher also there is no specific time to attend the lecture so
that it’s easy for student to access the lectures anytime anywhere. This
improves user accessibility and time flexibility to engage learners in the
learning process.

Theoretical Background

5
The project Online Classes involves only one stakeholder
such as Admin. Admin can create, Edit and Delete information
about Classes.
According to the Pandemic situation which we face in 2020
– 21 there is a complete lockdown so no one can attend lectures
in school & colleges because of this the academic performance is
cannot be maintained properly.
This project is really helpful for students and teachers who
attend online lectures. In this project admin can manage multiple
classes, upload videos, documents for each class separately. Each
class contain one or more students every student have to create
account then they have to login and apply for the course, pay
fees , and then get access to all lectures by the instructor /
Teacher. Here student also access quiz, ask questions to the
instructors and get the perfect answers for that question.
Students take courses largely as a means of improving
skills. In present e-classes for serious learnings, bursting with
features & with latest SEO standards simply didn't exists.
Our all in one software is sparkling with features, customer-
friendly, secure, scalable, reliable, great looking, synchronized,
expandable and flexible.

With Online Class, student can buy your courses whenever


it might suit them. Online Class comes with features to help you
connect your audience with the right learning. It is the most
customizable Online Class platform for building your online
learning platform. With Online Class become the leading global
marketplace for learning and instruction.

Survey of Literature

6
There are so many applications used for online study but they
are costly and there are some limitations for managing the
classes / lectures. First I searched for the method which we can
access free, so I found that YouTube is the platform on which
teachers can upload videos on their channel and students can
watch them , but here whenever the teachers want to upload paid
lectures there is no any way to pay fees and also anyone can
access lectures without enrolling in the particular class Also I
download BY JU'S to search for the services they provided so I
found that there are so many services they provided but to get
their courses you have to purchase iPad and after that they set
their application in that. This process is costs too much and not
affordable to all students. Therefore need for specialized
application or website arise.

Research Analysis and Design


7
This project is really helpful for students and teachers who attend
online lectures. In this project admin can manage multiple classes,
upload videos, documents for each class separately. Each class contain
one or more students every student have to create account then they
have to login and apply for the course, pay fees , and then get access to
all lectures by the instructor / Teacher. Here student also access quiz,
ask questions to the instructors and get the perfect answers for that
question.
First type classes.designoceanservices.com on your browser. Then
you get the list of courses with login, signup options. The users which
are not registered can register by clicking on Do not have an account.
And enter the details to register. There are two types of user in this
project.
For admin –
Admin first have to login then redirected to Admin Dashboard
there are many options that admin can handle easily such as Users,
Categories, Courses, Orders.
In User section admin can Add, Edit, Delete user (Student) by
entering the details easily. In Categories section admin can Add, Edit,
Delete and Enable, Disable the categories. In Courses section admin
can Add, Edit, Delete Course and also there are many options such as
adding course classes, video lectures , enclose pdf files , creating quiz,
answering questions and making important announcements by entering
the details easily. In Orders section admin can Enroll User in a
particular course also by clicking on any particular students view button
admin get the Invoice of that user and get the printed invoice if needed.

For Student –

8
Student first have to create account by entering details then after
login they get redirected to student dashboard there are many courses
shown from which student can select particular courses and add them in
wishlist. There are many Options that student can access easily such as
Courses, Wish-list, Notification and Order.
In Courses section after selecting particular course and clicking on
Go to course student can see the course details such as Course fees,
medium of teaching, Requirements for course etc. after that if the
selected course is paid then student have to pay online by entering debit
card details which is safe and easy for Student (user). After successful
payment student get easily redirected to the selected course then student
can access the data such as files, notes, assignments, announcements,
Video lectures, Quiz, Questions- answers and also submit assignments
for that class. Without paying fees student cannot access any data about
course. After clicking on my courses students get the course in which
they are enrolled and then they can access detailed course data.

System Planning
9
Project planning is at the heart of the project life cycle, and tells
everyone involved where you’re going and how you’re going to get
there. The planning phase is when the project plans are documented,
the project deliverables and requirements are defined, and the project
schedule is created. It involves creating a set of plans to help guide
you through the implementation and closure phases of the project.
The plans created during this phase will help you manage time, cost,
quality, changes, risk, and related issues. They will also help you to
control external suppliers to ensure that you deliver the project on
time, within budget, and within schedule.
You may also need to plan your communications and procurement
activities, as well as contract any third-party suppliers.
The purpose of the project planning phase is to:

 Establish business requirements


 Establish cost, schedule, list of deliverables, and delivery dates
 Establish resources plans
 Obtain management approval and proceed to the next phase

Gantt chart

10
This chart displays the expected date & originally completed date
i.e. actual completion of my project.

Proposed Time
Actual Time
Preliminary

Investigation

System
Analysis

System
Design

System
Coding

Testing &
Implementation

Dec Dec-Jan Jan Feb Feb-March March

11
Details of Hardware & Software used
 Compatible Browsers – IE11, Firefox, Safari, Opera,
Chrome, Edge.

 Files Included - JavaScript, CSS, PHP, SQL

 Software Framework - Laravel

 Software version - PHP 7.x

 Server Name - Apache

 Server Requirements

 php version (7.3.26)  n


 pdo  xml
 BCMath  tokenizer
 openssl  standard
 json  mysqli
 session  mbstring
 gd  ctype
 allow_url_fope  fileinfo

12
Detailed Life Cycle of the Project

Initialization

Requirements

Planning Design

Evaluation
Evaluation Implementation

Verification
Deployment

Iterative and Incremental Model

13
Process Model

Iterative and Incremental Model


This Iterative and Incremental SDLC model essentially brings
together an iterative design with an incremental development model
which makes it amongst the best SDLC methodology for business.

The process of development in such a model begins with the simple


implementation of basic product requirements. As and when the
product keeps building, the product is worked on and enhanced to a
more complete version of itself.

One of the most prominent features of this model is the fact that one
can begin the development process without really knowing the
requirements. The iterative and incremental SDLC model, in other
words, looks like a set of Mini Waterfall/V-Shaped models.

Benefits:

 Produces quick value for the business


 Need limited resources
 Flexible model
 Facilitates early bug detection
 Easy

14
Data flow diagrams

Data flow diagram

15
It shows how information enters and leaves the system, what
changes the information and where information is stored. The
purpose of a DFD is to show the scope and boundaries of a system as
a whole. It may be used as a communications tool between a systems
analyst and any person who plays a part in the system that acts as the
starting point for redesigning a system.

Manage Teacher Details


Login Check
Admin to Roles &
System Access

Manage Course Details

Forgot
Manage Student Details
Password
Check Manage
Credentials Modules
Manage Announcements

Update/
Change Manage Modules
Password

Manage Contents

16
Entity Relationship diagram

ERD –
The traditional approach places a great deal of emphasis on data storage
requirements for the new system. The model used to define the data storage
requirements is called the entity-relationship diagram (ERD).
-Rectangles represent the data entities.
-Lines connecting the rectangles show relationships among the data entities.

Symbols used to draw ERD-

-Entity

-Relationships

-Connection line

-Weak Entity

-Generalization

17
Entity Relationship diagram

login_usr login_pass

Login per_rollid
role_name
per_id per_module
role_desc role_id

per_name
Roles has Permissions

ur_name ur_type

ur_id

t_mob User
t_add s_name
t_email

t_name s_email

Teacher Student

s_add s_name

s_dob s_count

Buy

conduct generate

cr_type

Courses

cr_name
cr_cat

has manages

makes
m_name m_type

an_type
Module
m_desc
Announcements
an_name

has

c_type c_desc

c_name content

Document Cideo
Video Animation Activity
do_type vd_type anm_type
Diagram

18
An activity diagram is a variant of state chart diagram organized
according to actions, and mainly targeted towards representing the internal
behavior of a method or a use case. An activity is represented by a rounded
rectangle.

How to develop activity diagram:


1] Identify swim length.
2] Identify input message.
3] Describe message from external actor to system using message
notation.
4] Identify and add any special condition on the input messages including
iteration and true or false condition.
5] Identify and add the output return messages.

Symbols used to draw Activity diagram -

-Start

-Activity

-Connection line

- End

Activity Diagram

19
Start
Login to Online Class Portal

Check User Level & Permissions

Check Check Check Check Check


Permission Permission Permission Permission Permission

Manage Teachers Manage Students Manage Courses Manage Modules Manage Contents

Logout From the System END

Class Diagram
Class diagrams express, in a general way, the static structure of a system, in
terms of classes and relationships between those classes
20
Just as a class describes a set of objects, an association describes a set of
links; objects are class instances, and links are association instances.
A class diagram does not express anything specific about the links of a
given object, but it describes, in an abstract way, the potential links from an object
to other objects.

Symbols used to draw Class diagram -

Class Name
Member Variables
-Rectangular box
(To represent class)
Member Functions

___________________ -Connection line

Is A -Triangle (used to specialization of class)


Aaa

-Triangle (used to generalization of class)


Is A

21
Class Diagram
Permission Student
Role
+per_id:int +s_id:int
+role_id:int +per_role:string +s_name:string
+role_title:string +per_title:string +s_mobile:string
+role_desc:string +per_module:string
1 has 1 * generate * +s_email:string
+per_desc:string +s_address:string
+addroll() +s_username:string
+editroll() +s_password:string
1 +addper()
+deleterole() +editper()
+searchroll() +deleteper()
+assignrole() +searchper() +addstd()
+editstd()
* +delstd()
+searchstd()
admin has
+user_id:int manage
+user_name:string
+user_role:int
+user_email:string
+user_dob:date
+user_address:string *
1

+adduser()
+edituser()
+deleteuser()
+searchuser()

Module Content Announcement


+mod_type:string +con_type:string +ann_name:string
+mod_name:string +con_name:string +ann_type:string
+mod_desc:string +con_desc:string

+addmod()
+editmod() +addcontent() +addanoun()
+deletemod() +editcontent() +editanoun()
+searchmod() +deletecontent() +deleteanoun()
+searchcontent() +searchanoun()

*
has
*

Document Video Animation


+doc_type:string +vdo_type:string +anim_type:string
+vdo_type:string
+adddoc() +addvdo() +addanim()
+editdoc() +editvdo() +editanim()
+deletedoc() +deletevdo() +deleteanim()
+searchdoc() +searchvdo() +searchanim()

22
Object Diagram
Object diagrams, or instance diagram, illustrate objects and links. As in the case
of class diagrams, object diagrams represent the static structure .The notation
used for object diagrams is derived from that of class diagrams; elements that
are instances are underlined.
Object diagrams are primarily used to show a context –before or after
an interaction, for example. However, they are also used to aid the
understanding of complex data structures, such as recursive structure.

Symbols used to draw Object diagram -

-Rectangular box
: Object (To represent object)

-Connection line

-Triangle (for specialization)


Is

Is -Triangle (for generalization)

23
Object Diagram

R:Role P:Permission S:Student

U:User

M:Module C:Content A:Announcement

D:Document V:Video K:Animation

24
Input Output screen
Design

25
Homepage

Signup

26
Account created

Add to cart

27
28
29
Received SMS

Purchase history

30
Invoice

Course content

31
List of subject vise video lectures

Question and answer

Announcements

Quiz

Assignments 32
Overview

Login as Admin

Admin
interface

33
Admin Dashboard

Users

Courses

Adding course

Add course 34
Description of course

Adding subjects (Chapter)


35
Output in user section

Adding course classes (lectures)

36
Output in user section

Process Involved
37
Functionality of project
First type classes.designoceanservices.com on your browser. Then
you get the list of courses with login, signup options. The users which
are not registered can register by clicking on Do not have an account.
And enter the details to register. There are two types of user in this
project.
Admin first have to login then redirected to Admin Dashboard
there are many options that admin can handle easily such as Users,
Categories, Courses, Orders.
In User section admin can Add, Edit, Delete user (Student) by
entering the details easily. In Categories section admin can Add, Edit,
Delete and Enable, Disable the categories. In Courses section admin
can Add, Edit, Delete Course and also there are many options such as
adding course classes, video lectures , enclose pdf files , creating quiz,
answering questions and making important announcements by entering

38
the details easily. In Orders section admin can Enroll User in a
particular course also by clicking on any particular students view button
admin get the Invoice of that user and get the printed invoice if needed.
Student first have to create account by entering details then after
login they get redirected to student dashboard there are many courses
shown from which student can select particular courses and add them in
wishlist. There are many Options that student can access easily such as
Courses, Wish-list, Notification and Order.
In Courses section after selecting particular course and clicking on
Go to course student can see the course details such as Course fees,
medium of teaching, Requirements for course etc. after that if the
selected course is paid then student have to pay online by entering debit
card details which is safe and easy for Student (user). After successful
payment student get easily redirected to the selected course then student
can access the data such as files, notes, assignments, announcements,
Video lectures, Quiz, Questions- answers and also submit assignments
for that class. Without paying fees student cannot access any data about
course. After clicking on my courses students get the course in which
they are enrolled and then they can access detailed course data.

39
Methodology used for
testing
40
Manual Testing
Manual Testing is a type of software testing in which test cases are
executed manually by a tester without using any automated tools. The
purpose of Manual Testing is to identify the bugs, issues, and defects in
the software application. Manual software testing is the most primitive
technique of all testing types and it helps to find critical bugs in the
software application.

Any new application must be manually tested before its testing can
be automated. Manual Software Testing requires more effort but is
necessary to check automation feasibility. Manual testing concepts does
not require knowledge of any testing tool. One of the Software Testing
Fundamental is "100% Automation is not possible". This makes
Manual Testing imperative.

Steps:-
1. Read and understand the software project documentation/guides. Also,
study the Application under Test (AUT) if available.

41
2. Draft Test cases that cover all the requirements mentioned in the
documentation.
3. Review and baseline the test cases with Team Lead, Client (as
applicable)
4. Execute the test cases.
5. Report bugs.
6. Once bugs are fixed, again execute the failing test cases to verify they
pass.

Test Cases
&
Test reports

42
Sr. Test Case Input Expected Output
No Description
.
1 Adding the Click on add user button & After clicking on add user
user manually fill the information button, and filling the
information user get
successfully added.

2 Adding the Click on add course button & After clicking on add course
course fill the information button, and filling the
necessary information course
get successfully added.

3 use Edit Click on edit button in course After clicking on edit button
button in and add the course chapter and then clicking on add
course to button in course topic the
add course course topic (subject) get
chapter successfully added.

43
4 Use add button in Click on add button in course After clicking on add button in
course class and class section course class section then it
check whether it automatically present
automatically dropdown list of course
present dropdown chapters (subjects)
list of course
chapters
(subjects)

5 Add questions , Add questions, answers and After adding questions ,


answers and announcements answers and announcements
announcements they appear on students portal
And check
whether they can
appear on
students portal

Test Cases
Test Reports
Sr. Test Case Input Expected Actual
No. Description Output output
1 Adding the user Click on add After clicking on add After clicking on
manually user button user button, and add user button,
& fill the filling the information and filling the
information user get successfully information user
added. get successfully
added.
2 Adding the course Click on add After clicking on add After clicking on
course course button, and add course button,
button & fill filling the necessary and filling the
the information course necessary
information get successfully information course
added. get successfully
added.
3 use Edit button in Click on edit After clicking on edit After clicking on
course to add button in button and then edit button and
course chapter course and clicking on add then clicking on
add the button in course add button in
course topic the course topic course topic the
chapter (subject) get course topic

44
successfully added. (subject) get
successfully added.
4 Use add button in Click on add After clicking on add After clicking on
course class and check button in button in course class add button in
whether it course class section then it course class
automatically present section automatically section then it
dropdown list of course present dropdown automatically
chapters (subjects) list of course present dropdown
chapters (subjects) list of course
chapters (subjects)
5 Add questions , Add After adding After adding
answers and questions, questions , answers questions , answers
announcements answers and and announcements and
And check whether announcem they appear on announcements
they can appear on ents students portal they appear on
students portal students portal

Code of the Project


LoginController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Auth;
use Socialite;
use App\User;
use Illuminate\Support\MessageBag;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/

use AuthenticatesUsers;

/**
* Where to redirect users after login.

45
*
* @var string
*/
public function authenticated()
{
if (Auth::User()->status == 1)
{
if ( Auth::User()->role == "admin" || Auth::User()->role == "instructor" )
{
// do your magic here
return redirect()->route('admin.index');
}
else
{
return redirect('/home');

}
}
else{

Auth::logout();
return redirect()->route('login')->with('delete','You are deactivated !');
}
}

/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}

public function socialLogin($social)


{
return Socialite::driver($social)->redirect();
}

public function handleProviderCallback($social)


{
$userSocial = Socialite::driver($social)->user();
$user = User::where(['email' => $userSocial->getEmail()])->first();

// set the remember me cookie if the user check the box


$remember = (Input::has('remember')) ? true : false;

// attempt to do the login


if(Auth::attempt(['email' => $request->get('email') , 'password' => $request-
>get('password') ,

46
'status' => 1], $request->remember)){

return redirect()->intended('/home');
}
else
{
$errors = new MessageBag(['email' => ['Email or password is invalid.']]);
return Redirect::back()->withErrors($errors)->withInput($request-
>except('password'));
}
if ($user) {
Auth::login($user);
return redirect()-> action('HomeController@index');
}
else {
return view('auth.register', ['name'=> $userSocial->getName(),
'email' => $userSocial->getEmail()]);
}
}
}

UserController.php
<?php

namespace App\Http\Controllers;

use App\User;

use App\Allstate;

use App\Allcity;

use App\Allcountry;

use Illuminate\Http\Request;

use Hash;

use Session;

use Image;

use Auth;

use App\Wishlist;

use App\Cart;

use App\Order;

use App\ReviewRating;

use App\Question;

47
use App\Answer;

use App\State;

use App\City;

use App\Country;

use App\Course;

use App\Meeting;

use App\BundleCourse;

use App\BBL;

use App\Instructor;

use App\CourseProgress;

class UserController extends Controller

public function __construct()

return $this->middleware('auth');

/**

* Display a listing of the resource.

* @return \Illuminate\Http\Response

*/

public function viewAllUser()

$users = User::all();

return view('admin.user.index', compact('users'));

/**

* Show the form for creating a new resource.

* @return \Illuminate\Http\Response

*/

48
public function create()

$cities = Allcity::all();

$states = Allstate::all();

$countries = Country::all();

return view('admin.user.adduser')->with(['cities' => $cities, 'states' =>


$states, 'countries' => $countries]);

/**

* Store a newly created resource in storage.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

*/

public function store(Request $request)

$data = $this->validate($request, [

'fname' => 'required',

'lname' => 'required',

'mobile' => 'required|regex:/[0-9]{9}/',

'address' => 'required|max:2000',

'email' => 'required|unique:users,email',

'password' => 'required|min:6|max:20',

'role' => 'required',

]);

$input = $request->all();

if ($file = $request->file('user_img'))

$optimizeImage = Image::make($file);

$optimizePath = public_path().'/images/user_img/';

$image = time().$file->getClientOriginalName();

49
$optimizeImage->save($optimizePath.$image, 72);

$input['user_img'] = $image;

$input['password'] = Hash::make($request->password);

$input['detail'] = $request->detail;

$input['email_verified_at'] = \Carbon\Carbon::now()->toDateTimeString();

$data = User::create($input);

$data->save();

Session::flash('success','User Added Successfully !');

return redirect('user'); }

/**

* Display the specified resource.

* @param \App\User $user

* @return \Illuminate\Http\Response

*/

public function show(User $user)

//

/**

* Show the form for editing the specified resource.

* @param \App\User $user

* @return \Illuminate\Http\Response

*/

public function edit($id)

$cities = City::all();

$states = State::all();

$countries = Country::all();

50
$user = User::findorfail($id);

return view('admin.user.edit',compact('cities','states','countries','user'));

/**

* Update the specified resource in storage.

* @param \Illuminate\Http\Request $request

* @param \App\User $user

* @return \Illuminate\Http\Response

*/

public function update(Request $request,$id)

$user = User::findorfail($id);

$request->validate([

'email' => 'required|email|unique:users,email,'.$user->id,

]);

if(config('app.demolock') == 0){

$input = $request->all();

if($file = $request->file('user_img')) {

if($user->user_img != null) {

$content = @file_get_contents(public_path().'/images/user_img/'.
$user->user_img);

if ($content) {

unlink(public_path().'/images/user_img/'.$user->user_img);

$optimizeImage = Image::make($file);

$optimizePath = public_path().'/images/user_img/';

$image = time().$file->getClientOriginalName();

$optimizeImage->save($optimizePath.$image, 72);

$input['user_img'] = $image;

51
}

if(isset($request->update_pass)){

$input['password'] = Hash::make($request->password);

else{

$input['password'] = $user->password;

if(isset($request->status))

$input['status'] = '1';

else

$input['status'] = '0';

$user->update($input);

Session::flash('success','User Updated Successfully !');

else

return back()->with('delete','You can\'t update Users in Demo');

return redirect()->route('user.index');

/**

* Remove the specified resource from storage.

* @param \App\User $user

* @return \Illuminate\Http\Response

*/

public function destroy($id)

52
{

$user = User::find($id);

if(config('app.demolock') == 0){

if ($user->user_img != null)

$image_file = @file_get_contents(public_path().'/images/user_img/'.
$user->user_img);

if($image_file)

unlink(public_path().'/images/user_img/'.$user->user_img);

$value = $user->delete();

Course::where('user_id', $id)->delete();

Wishlist::where('user_id', $id)->delete();

Cart::where('user_id', $id)->delete();

Order::where('user_id', $id)->delete();

ReviewRating::where('user_id', $id)->delete();

Question::where('user_id', $id)->delete();

Answer::where('ans_user_id', $id)->delete();

Meeting::where('user_id', $id)->delete();

BundleCourse::where('user_id', $id)->delete();

BBL::where('instructor_id', $id)->delete();

Instructor::where('user_id', $id)->delete();

CourseProgress::where('user_id', $id)->delete();

if($value)

session()->flash("delete","User Has Been Deleted");

return redirect("user");

} }

else

53
{

return back()->with('delete','You can\'t delete Users in Demo');

} }}

AnnounsmentController.php
<?php
namespace App\Http\Controllers;
use App\Announcement;
use Illuminate\Http\Request;
use App\User;
use App\Course;
use DB;
use Session;
class AnnounsmentController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$data = $this->validate($request,[
'announsment' => 'required',
]);
$input = $request->all();
$data = Announcement::create($input);
if(isset($request->status))

54
{
$data->status = '1';
}
else
{
$data->status = '0';
}
$data->save();
Session::flash('success','Added Successfully !');
return redirect()->route('course.show',$request->course_id);
}
/**
* Display the specified resource.
*
* @param \App\announsment $announsment
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$annou = Announcement::find($id);
$user = User::all();
$courses = Course::all();
return view('admin.course.announsment.edit',compact('annou','courses','user'));
}
/**
* Show the form for editing the specified resource.
*
* @param \App\announsment $announsment
* @return \Illuminate\Http\Response
*/
public function edit(announsment $announsment)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\announsment $announsment
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$data = Announcement::findorfail($id);
$input = $request->all();
if(isset($request->status))
{
$input['status'] = '1';
}
else
{

55
$input['status'] = '0';
}
$data->update($input);
Session::flash('success','Updated Successfully !');
return redirect()->route('course.show',$request->course_id);
}
/**
* Remove the specified resource from storage.
*
* @param \App\announsment $announsment
* @return \Illuminate\Http\Response
*/
public function destroy( $id)
{
DB::table('announcements')->where('id',$id)->delete();
return back();
}
}

Chapter iv

Conclusion

56
Conclusion

The project was designed in such a way that future modifications


can be done easily. The following conclusion can be deduced from
the development of project.
 Currently there are many specialized software’s but there are
some limitations, as this process is very slow, time consuming &
not secure so need of this software arise, in order to fulfil the
requirements, I am launching this website.
 In proposed system teacher can maintain all information and
store detailed information about classes & the user-friendliness
system are able to help student to handle the system in more
efficient way as compared to other system.
 In other systems anyone can access the lectures using others
username and password but in proposed system user can access
the lectures only on one device at a time.
 It provides friendly graphical user interface which proves to be
better when compared to existing system.
 It gives appropriate access to the authorized users depending on

57
their permissions.
 Updating information becomes so easier.
 The system has adequate scope for modification in future if it is
necessary.

Chapter v

Future enhancements

58
Future Enhancement

1] In future we will add attendance facility to our website.

2] We will add the facility which checks that how much time the
student accessing the lectures this helps teachers to get particular
student record

3] We will improve the user friendly appearance of our website.

59
Chapter vi

Annexure

60
List of Tables
courses table

61
course_classes table

course_chapters

Users table

62
States table

allcountry table

63
Chapter vii

REFERENCES
And
BIBLIOGRAPHY
References and bibliography

 https://elearningindustry.com/advantages-and-disadvantages-
online-learning

 for reference and research :- https://byjus.com/

 for Laravel documentation https://laravel.com/docs/8.x

 https://in.godaddy.com/

64

You might also like