Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2021-049
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2021-049
2021-049
Commits
402157f6
Commit
402157f6
authored
Oct 13, 2021
by
Devinda
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
# Conflicts: # WebFrontEnd/smartcoach-frontend/src/App.js
parents
847a6825
09e07a18
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
671 additions
and
239 deletions
+671
-239
BackEnd/WebBackEnd/routes/createClass.route.js
BackEnd/WebBackEnd/routes/createClass.route.js
+1
-1
BackEnd/WebBackEnd/routes/institute.route.js
BackEnd/WebBackEnd/routes/institute.route.js
+30
-30
BackEnd/WebBackEnd/routes/tutor.route.js
BackEnd/WebBackEnd/routes/tutor.route.js
+30
-30
BackEnd/WebBackEnd/routes/tutorRatings.route.js
BackEnd/WebBackEnd/routes/tutorRatings.route.js
+10
-0
BackEnd/WebBackEnd/routes/userAccount.route.js
BackEnd/WebBackEnd/routes/userAccount.route.js
+64
-2
WebFrontEnd/smartcoach-frontend/src/Components/Admin/Dashboard.js
...End/smartcoach-frontend/src/Components/Admin/Dashboard.js
+41
-3
WebFrontEnd/smartcoach-frontend/src/Components/Admin/StudentRequestForClass.js
...h-frontend/src/Components/Admin/StudentRequestForClass.js
+70
-23
WebFrontEnd/smartcoach-frontend/src/Components/Admin/add_class_details.js
...tcoach-frontend/src/Components/Admin/add_class_details.js
+59
-20
WebFrontEnd/smartcoach-frontend/src/Components/Home.js
WebFrontEnd/smartcoach-frontend/src/Components/Home.js
+7
-1
WebFrontEnd/smartcoach-frontend/src/Components/HomePage/TutorCard.js
.../smartcoach-frontend/src/Components/HomePage/TutorCard.js
+6
-4
WebFrontEnd/smartcoach-frontend/src/Components/HomePage/TutorProfileView.js
...oach-frontend/src/Components/HomePage/TutorProfileView.js
+215
-92
WebFrontEnd/smartcoach-frontend/src/Components/Login.js
WebFrontEnd/smartcoach-frontend/src/Components/Login.js
+41
-17
WebFrontEnd/smartcoach-frontend/src/Components/Navbar.js
WebFrontEnd/smartcoach-frontend/src/Components/Navbar.js
+50
-8
WebFrontEnd/smartcoach-frontend/src/Components/SignUp.js
WebFrontEnd/smartcoach-frontend/src/Components/SignUp.js
+3
-3
WebFrontEnd/smartcoach-frontend/src/Components/Student/StudentDashboard.js
...coach-frontend/src/Components/Student/StudentDashboard.js
+44
-5
WebFrontEnd/smartcoach-frontend/src/Images/defaultimageicon.jpg
...ntEnd/smartcoach-frontend/src/Images/defaultimageicon.jpg
+0
-0
WebFrontEnd/smartcoach-frontend/src/Images/defaultimageicon.png
...ntEnd/smartcoach-frontend/src/Images/defaultimageicon.png
+0
-0
WebFrontEnd/smartcoach-frontend/src/Images/logout2.png
WebFrontEnd/smartcoach-frontend/src/Images/logout2.png
+0
-0
No files found.
BackEnd/WebBackEnd/routes/createClass.route.js
View file @
402157f6
...
...
@@ -94,7 +94,7 @@ router.route('/add').post(async(req,res) =>{
router
.
route
(
'
/tutorClass/:id
'
).
get
(
function
(
req
,
res
)
{
let
id
=
req
.
params
.
id
;
//console.log("TutorId : " + id)
classes
.
find
({
"
tutor_id
"
:
id
}).
populate
(
'
institute_id
'
).
then
(
tutorsClasses
=>
{
classes
.
find
({
"
tutor_id
"
:
id
,
"
isActiveForStudent
"
:
true
}).
populate
(
'
institute_id
'
).
then
(
tutorsClasses
=>
{
///console.log(tutor);
res
.
json
(
tutorsClasses
);
}).
catch
(
err
=>
res
.
status
(
400
).
json
(
'
Eroor:
'
+
err
));
...
...
BackEnd/WebBackEnd/routes/institute.route.js
View file @
402157f6
...
...
@@ -85,36 +85,36 @@ router.route('/add').post(async(req,res) =>{
.
then
(
newUser
=>
{
////////////////////////////////////////////////////////////////////////////////////
//
const content = `
//
Hi ${institute_name},\n
//
You are Create a Institute Account on SmartCoach.\n
//
You can verify your email address click on 'http://localhost:3000/AccountVerified/${newUser.id}'
//
//
Used institute email address as the username : ${user_email}
//
Used given password as the password
//
Thank You,
//
Team SmartCoach
//
`;
//
//
var mail = {
//
from: institute_name,
//
to: user_email,
//
subject: 'Email Verification - Institute',
//
text: content
//
}
//
//
transporter.sendMail(mail, (err, data) => {
//
if (err) {
//
res.json({
//
msg: 'fail'
//
})
//
} else {
//
res.json({
//
msg: 'success'
//
})
//
}
//
})
//
;
const
content
=
`
Hi
${
institute_name
}
,\n
You are Create a Institute Account on SmartCoach.\n
You can verify your email address click on 'http://localhost:3000/AccountVerified/
${
newUser
.
id
}
'
Used institute email address as the username :
${
user_email
}
Used given password as the password
Thank You,
Team SmartCoach
`
;
var
mail
=
{
from
:
institute_name
,
to
:
user_email
,
subject
:
'
Email Verification - Institute
'
,
text
:
content
}
transporter
.
sendMail
(
mail
,
(
err
,
data
)
=>
{
if
(
err
)
{
res
.
json
({
msg
:
'
fail
'
})
}
else
{
res
.
json
({
msg
:
'
success
'
})
}
})
;
/////////////////////////////////////////////////////////////////////////////////////
})
...
...
BackEnd/WebBackEnd/routes/tutor.route.js
View file @
402157f6
...
...
@@ -133,41 +133,41 @@ router.route('/add').post(async(req,res) =>{
.
then
(
newUser
=>
{
console
.
log
(
"
Inside the Email Send part
"
)
////////////////////////////////////////////////////////////////////////////////////
//
const content = `
//
Hi ${tutor_name},\n
//
You are Create a Tutor Account on SmartCoach.\n
//
You can verify your email address click on 'http://localhost:3000/AccountVerified/${newUser.id}'
//
//
Used your email address as username : ${user_email}
//
Thank You,
//
Team SmartCoach
//
`;
//
//
var mail = {
//
from: tutor_name,
//
to: user_email,
//
subject: 'Email Verification - Tutor',
//
text: content
//
}
//
//
transporter.sendMail(mail, (err, data) => {
//
if (err) {
//
res.json({
//
msg: 'fail'
//
})
//
} else {
//
res.json({
//
msg: 'success'
//
})
//
}
//
})
//
;
const
content
=
`
Hi
${
tutor_name
}
,\n
You are Create a Tutor Account on SmartCoach.\n
You can verify your email address click on 'http://localhost:3000/AccountVerified/
${
newUser
.
id
}
'
Used your email address as username :
${
user_email
}
Thank You,
Team SmartCoach
`
;
var
mail
=
{
from
:
tutor_name
,
to
:
user_email
,
subject
:
'
Email Verification - Tutor
'
,
text
:
content
}
transporter
.
sendMail
(
mail
,
(
err
,
data
)
=>
{
if
(
err
)
{
res
.
json
({
msg
:
'
fail
'
})
}
else
{
res
.
json
({
msg
:
'
success
'
})
}
})
;
/////////////////////////////////////////////////////////////////////////////////////
})
.
catch
(
err
=>
res
.
status
(
400
).
json
(
'
Error:
'
+
err
));
//
res.json('Tutor Successfully Added....');
res
.
json
(
'
Tutor Successfully Added....
'
);
...
...
BackEnd/WebBackEnd/routes/tutorRatings.route.js
View file @
402157f6
...
...
@@ -29,4 +29,14 @@ router.route('/add').post(async(req,res) =>{
});
router
.
route
(
'
/:id
'
).
get
(
function
(
req
,
res
)
{
let
id
=
req
.
params
.
id
;
//console.log("TutorId : " + id)
tutorRatingsRoute
.
find
({
"
tutor_id
"
:
id
}).
populate
(
'
student_id
'
).
then
(
tutorReview
=>
{
///console.log(tutor);
res
.
json
(
tutorReview
);
}).
catch
(
err
=>
res
.
status
(
400
).
json
(
'
Eroor:
'
+
err
));
});
module
.
exports
=
router
;
BackEnd/WebBackEnd/routes/userAccount.route.js
View file @
402157f6
const
router
=
require
(
'
express
'
).
Router
();
let
userAccount
=
require
(
'
../models/userAccount.user.model
'
);
let
StudentAccount
=
require
(
'
../models/student.user.model
'
);
let
TutorAccount
=
require
(
'
../models/tutor.user.model
'
);
let
InstituteAccount
=
require
(
'
../models/institute.user.model
'
);
router
.
route
(
'
/update/:id
'
).
post
((
req
,
res
)
=>
{
userAccount
.
findById
(
req
.
params
.
id
,
function
(
err
,
details
){
...
...
@@ -25,9 +28,68 @@ router.route('/getCredentials').post((req, res) => {
const
email
=
req
.
body
.
user_email
;
const
password
=
req
.
body
.
user_password
;
userAccount
.
find
({
user_email
:
email
,
user_password
:
password
},
function
(
err
,
User
)
{
}).
then
(
User
=>
res
.
json
(
User
))
userAccount
.
find
({
user_email
:
email
},
function
(
err
,
User
)
{
}).
then
(
User
=>
{
let
payload
=
{
user_id
:
User
[
0
].
user_id
,
user_email
:
User
[
0
].
user_email
,
user_name
:
''
,
user_type
:
User
[
0
].
user_type
}
console
.
log
(
User
);
if
(
User
.
length
>
0
){
console
.
log
(
password
);
console
.
log
(
User
[
0
].
user_password
);
if
(
User
[
0
].
user_password
===
password
){
console
.
log
(
"
inside password
"
)
if
(
User
[
0
].
confirmed
){
console
.
log
(
"
inside Confirmed
"
)
if
(
User
[
0
].
user_type
===
"
Student
"
){
console
.
log
(
"
inside student
"
)
StudentAccount
.
findById
(
User
[
0
].
user_id
).
then
(
result
=>
{
console
.
log
(
result
);
payload
.
user_name
=
result
.
student_name
res
.
json
(
payload
)
})
}
else
if
(
User
[
0
].
user_type
===
"
Tutor
"
){
console
.
log
(
"
inside Tutor
"
)
TutorAccount
.
findById
(
User
[
0
].
user_id
).
then
(
result
=>
{
payload
.
user_name
=
result
.
tutor_name
res
.
json
(
payload
)
})
}
else
if
(
User
[
0
].
user_type
===
"
Institute
"
){
InstituteAccount
.
findById
(
User
[
0
].
user_id
).
then
(
result
=>
{
payload
.
user_name
=
result
.
institute_name
res
.
json
(
payload
)
})
}
}
else
{
res
.
json
(
"
Not Verified
"
)
}
}
else
{
res
.
json
(
"
Invalid Password
"
)
}
}
else
{
res
.
json
(
"
Not registered
"
)
}
})
.
catch
(
err
=>
res
.
status
(
400
).
json
(
'
Error:
'
+
err
));
...
...
WebFrontEnd/smartcoach-frontend/src/Components/Admin/Dashboard.js
View file @
402157f6
...
...
@@ -7,8 +7,45 @@ import ViewFinance from './view_financial_details';
import
EditFinance
from
'
./edit_financial_details
'
;
import
AddClass
from
'
./add_class_details
'
;
import
studentRequest
from
'
./StudentRequestForClass
'
;
import
TestTeacher
from
"
../../Images/defaultimageicon.jpg
"
;
export
default
class
Dashboard
extends
Component
{
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
user_email
:
''
,
user_id
:
''
,
user_name
:
''
,
user_type
:
''
,
isLogged
:
false
}
}
componentDidMount
()
{
const
user_email
=
localStorage
.
getItem
(
"
email
"
);
const
user_id
=
localStorage
.
getItem
(
"
userID
"
);
const
user_name
=
localStorage
.
getItem
(
"
userName
"
);
const
user_type
=
localStorage
.
getItem
(
"
userType
"
);
if
(
user_id
!==
"
"
){
this
.
setState
({
isLogged
:
true
})
}
this
.
setState
({
user_email
:
user_email
,
user_id
:
user_id
,
user_name
:
user_name
,
user_type
:
user_type
})
}
render
()
{
return
(
...
...
@@ -72,19 +109,20 @@ export default class Dashboard extends Component {
<
div
className
=
"
widget-content-left
"
>
<
div
className
=
"
btn-group
"
>
<
div
className
=
"
dropdown1
"
>
<
img
width
=
"
42
"
className
=
"
rounded-circle
"
src
=
"
DashboardAssets/images/user.jpg
"
alt
=
""
/>
<
img
src
=
{
TestTeacher
}
className
=
"
rounded-circle
"
style
=
{{
width
:
'
50px
'
,
height
:
'
50px
'
,
float
:
'
left
'
,
margin
:
'
0px
'
}}
/
>
{
/*<img width="42" className="rounded-circle" src="DashboardAssets/images/user.jpg" alt=""/>*/
}
<
i
className
=
"
fa fa-angle-down ml-2 opacity-8
"
/>
<
div
className
=
"
dropdown-content1 dropdown-menu-right
"
>
<
button
type
=
"
button
"
className
=
"
dropdown-item
"
>
User
Account
<
/button
>
<
button
type
=
"
button
"
className
=
"
dropdown-item
"
style
=
{{
color
:
"
red
"
}}
>
Sign
Out
<
/button
>
<
button
type
=
"
button
"
className
=
"
dropdown-item
"
style
=
{{
color
:
"
red
"
}}
onClick
=
{()
=>
{
window
.
location
.
replace
(
"
/UserLogin
"
);}}
>
Sign
Out
<
/button
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
widget-content-left ml-3 header-user-info
"
>
<
div
className
=
"
widget-heading
"
>
Bandara
Dissanayake
{
this
.
state
.
user_name
}
<
/div
>
<
div
className
=
"
widget-subheading
"
>
Tutor
...
...
WebFrontEnd/smartcoach-frontend/src/Components/Admin/StudentRequestForClass.js
View file @
402157f6
...
...
@@ -33,6 +33,11 @@ export default class StudentRequestForClass extends Component{
labelClassID
:
''
,
typedNIC
:
''
,
ClassStudentList
:[],
user_email
:
''
,
user_id
:
''
,
user_name
:
''
,
user_type
:
''
,
isLogged
:
false
}
this
.
onChangeClassMethod
=
this
.
onChangeClassMethod
.
bind
(
this
);
...
...
@@ -45,38 +50,59 @@ export default class StudentRequestForClass extends Component{
}
componentDidMount
()
{
axios
.
get
(
configs
.
BASE_URL
+
'
/tutorSingUp/
'
+
this
.
state
.
tutorID
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
//console.log(response.data);
const
user_email
=
localStorage
.
getItem
(
"
email
"
);
const
user_id
=
localStorage
.
getItem
(
"
userID
"
);
const
user_name
=
localStorage
.
getItem
(
"
userName
"
);
const
user_type
=
localStorage
.
getItem
(
"
userType
"
);
if
(
user_id
!==
"
"
){
this
.
setState
({
isLogged
:
true
})
}
this
.
setState
({
user_email
:
user_email
,
user_id
:
user_id
,
tutorID
:
user_id
,
user_name
:
user_name
,
user_type
:
user_type
},()
=>
{
axios
.
get
(
configs
.
BASE_URL
+
'
/tutorSingUp/
'
+
this
.
state
.
tutorID
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
//console.log(response.data);
this
.
setState
({
instituteList
:
response
.
data
.
tutor_instituteIDList
,
ClassMethods
:
response
.
data
.
tutor_class_type
,
subjectList
:
response
.
data
.
tutor_subjects
,
},
()
=>
{
axios
.
get
(
configs
.
BASE_URL
+
'
/createClass/tutorClass/
'
+
this
.
state
.
tutorID
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
this
.
setState
({
instituteList
:
response
.
data
.
tutor_instituteIDList
,
ClassMethods
:
response
.
data
.
tutor_class_type
,
subjectList
:
response
.
data
.
tutor_subjects
,
},
()
=>
{
axios
.
get
(
configs
.
BASE_URL
+
'
/createClass/tutorClass/
'
+
this
.
state
.
tutorID
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
this
.
setState
({
TutorClassList
:
response
.
data
},
()
=>
{
})
this
.
setState
({
TutorClassList
:
response
.
data
},
()
=>
{
})
})
})
})
})
})
}
GetStudentList
(){
...
...
@@ -307,9 +333,12 @@ export default class StudentRequestForClass extends Component{
<
div
className
=
""
style
=
{{
marginTop
:
'
15px
'
}}
>
<
div
className
=
"
table-dark row
"
>
<
div
className
=
"
col
-md-4
"
style
=
{{
textAlign
:
'
left
'
,
paddingLeft
:
'
30px
'
}}
>
<
div
className
=
"
col
"
style
=
{{
textAlign
:
'
left
'
,
paddingLeft
:
'
30px
'
}}
>
<
label
>
Batch
Name
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
Year
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
Starting
Date
<
/label
>
<
/div
>
...
...
@@ -335,9 +364,12 @@ export default class StudentRequestForClass extends Component{
{
this
.
state
.
TutorClassList
.
map
((
oneClass
)
=>
{
return
(
<
div
className
=
"
row
"
style
=
{{
background
:
'
#DCDCDC
'
,
paddingBottom
:
'
5px
'
,
paddingTop
:
'
5px
'
,
borderBottom
:
'
inset
'
}}
>
<
div
className
=
"
col
-md-4
"
style
=
{{
textAlign
:
'
left
'
}}
>
<
div
className
=
"
col
"
style
=
{{
textAlign
:
'
left
'
}}
>
<
label
style
=
{{
marginLeft
:
'
20px
'
}}
>
{
oneClass
.
batch_no
}
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
{
oneClass
.
batchYear
}
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
{
moment
(
oneClass
.
class_startingDate
).
format
(
"
L
"
)
}
<
/label
>
<
/div
>
...
...
@@ -525,16 +557,31 @@ export default class StudentRequestForClass extends Component{
<
div
className
=
"
row
"
style
=
{{
background
:
'
#DCDCDC
'
,
paddingBottom
:
'
5px
'
,
paddingTop
:
'
5px
'
,
borderBottom
:
'
inset
'
}}
>
<
div
className
=
"
col-md-4
"
style
=
{{
textAlign
:
'
left
'
}}
>
<
label
><
/label
>
<
label
>
200114712426
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
Amila
Thenuwara
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
button
className
=
"
rounded
"
style
=
{{
background
:
'
#086232
'
,
padding
:
'
3px
'
,
width
:
'
35px
'
}}
><
Icon
.
ArrowLeftCircle
color
=
"
white
"
size
=
{
20
}
/></
button
>
<
button
className
=
"
rounded
"
style
=
{{
background
:
'
#8D2828
'
,
padding
:
'
3px
'
,
width
:
'
35px
'
,
marginLeft
:
'
10px
'
}}
><
Icon
.
Eraser
color
=
"
white
"
size
=
{
20
}
/></
button
>
<
/div
>
<
/div
>
<
div
className
=
"
row
"
style
=
{{
background
:
'
#DCDCDC
'
,
paddingBottom
:
'
5px
'
,
paddingTop
:
'
5px
'
,
borderBottom
:
'
inset
'
}}
>
<
div
className
=
"
col-md-4
"
style
=
{{
textAlign
:
'
left
'
}}
>
<
label
>
200177014551
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
><
/label
>
<
label
>
Supun
Malshan
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
button
className
=
"
rounded
"
style
=
{{
background
:
'
#086232
'
,
padding
:
'
3px
'
,
width
:
'
35px
'
}}
><
Icon
.
ArrowLeftCircle
color
=
"
white
"
size
=
{
20
}
/></
button
>
<
button
className
=
"
rounded
"
style
=
{{
background
:
'
#8D2828
'
,
padding
:
'
3px
'
,
width
:
'
35px
'
}}
><
Icon
.
Eraser
color
=
"
white
"
size
=
{
20
}
/></
button
>
<
button
className
=
"
rounded
"
style
=
{{
background
:
'
#8D2828
'
,
padding
:
'
3px
'
,
width
:
'
35px
'
,
marginLeft
:
'
10px
'
}}
><
Icon
.
Eraser
color
=
"
white
"
size
=
{
20
}
/></
button
>
<
/div
>
<
/div
>
...
...
WebFrontEnd/smartcoach-frontend/src/Components/Admin/add_class_details.js
View file @
402157f6
...
...
@@ -10,7 +10,7 @@ export default class AddClassDetails extends Component {
super
(
props
);
this
.
state
=
{
tutorID
:
'
6127b1d7ed4ff23bb0344538
'
,
tutorID
:
''
,
instituteList
:
[],
ClassMethods
:
[],
subjectList
:
[],
...
...
@@ -35,6 +35,11 @@ export default class AddClassDetails extends Component {
selectedDay
:
''
,
HoursTime
:
''
,
AdmissionFee
:
''
,
user_email
:
''
,
user_id
:
''
,
user_name
:
''
,
user_type
:
''
,
isLogged
:
false
}
this
.
onChangeClassMethod
=
this
.
onChangeClassMethod
.
bind
(
this
);
...
...
@@ -52,42 +57,69 @@ export default class AddClassDetails extends Component {
this
.
onChangeDay
=
this
.
onChangeDay
.
bind
(
this
);
this
.
onChangeHours
=
this
.
onChangeHours
.
bind
(
this
);
this
.
onChangeAdmissionFee
=
this
.
onChangeAdmissionFee
.
bind
(
this
);
this
.
GetTutorClasses
=
this
.
GetTutorClasses
.
bind
(
this
);
}
componentDidMount
()
{
axios
.
get
(
configs
.
BASE_URL
+
'
/tutorSingUp/
'
+
this
.
state
.
tutorID
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
//console.log(response.data
);
const
user_email
=
localStorage
.
getItem
(
"
email
"
);
const
user_id
=
localStorage
.
getItem
(
"
userID
"
);
const
user_name
=
localStorage
.
getItem
(
"
userName
"
);
const
user_type
=
localStorage
.
getItem
(
"
userType
"
);
if
(
user_id
!==
"
"
){
this
.
setState
({
isLogged
:
true
})
}
this
.
setState
({
instituteList
:
response
.
data
.
tutor_instituteIDList
,
ClassMethods
:
response
.
data
.
tutor_class_type
,
subjectList
:
response
.
data
.
tutor_subjects
,
this
.
setState
({
user_email
:
user_email
,
user_id
:
user_id
,
tutorID
:
user_id
,
user_name
:
user_name
,
user_type
:
user_type
},()
=>
{
axios
.
get
(
configs
.
BASE_URL
+
'
/tutorSingUp/
'
+
this
.
state
.
tutorID
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
//console.log(response.data);
},
()
=>
{
axios
.
get
(
configs
.
BASE_URL
+
'
/createClass/tutorClass/
'
+
this
.
state
.
tutorID
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
this
.
setState
({
TutorClassList
:
response
.
data
this
.
setState
({
instituteList
:
response
.
data
.
tutor_instituteIDList
,
ClassMethods
:
response
.
data
.
tutor_class_type
,
subjectList
:
response
.
data
.
tutor_subjects
,
},
()
=>
{
this
.
GetTutorClasses
();
})
},
()
=>
{
})
})
})
}
GetTutorClasses
(){
axios
.
get
(
configs
.
BASE_URL
+
'
/createClass/tutorClass/
'
+
this
.
state
.
tutorID
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
this
.
setState
({
TutorClassList
:
response
.
data
},
()
=>
{
})
})
})
}
onChangeAdmissionFee
(
e
)
{
this
.
setState
({
AdmissionFee
:
e
.
target
.
value
...
...
@@ -241,6 +273,7 @@ export default class AddClassDetails extends Component {
.
then
(
res
=>
{
console
.
log
(
res
)
swal
(
"
success!!!
"
,
res
.
data
,
"
success
"
).
then
(()
=>
{
this
.
GetTutorClasses
();
// e.target.reset();
//window.location();
});
...
...
@@ -514,9 +547,12 @@ export default class AddClassDetails extends Component {
<
div
className
=
"
container
"
style
=
{{
marginTop
:
'
15px
'
}}
>
<
div
className
=
"
table-dark row
"
>
<
div
className
=
"
col
-md-4
"
style
=
{{
textAlign
:
'
left
'
}}
>
<
div
className
=
"
col
"
style
=
{{
textAlign
:
'
left
'
}}
>
<
label
>
Batch
Name
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
Year
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
Starting
Date
<
/label
>
<
/div
>
...
...
@@ -546,9 +582,12 @@ export default class AddClassDetails extends Component {
paddingTop
:
'
5px
'
,
borderBottom
:
'
inset
'
}}
>
<
div
className
=
"
col
-md-4
"
style
=
{{
textAlign
:
'
left
'
,
marginLeft
:
'
10px
'
}}
>
<
div
className
=
"
col
"
style
=
{{
textAlign
:
'
left
'
,
marginLeft
:
'
10px
'
}}
>
<
label
style
=
{{}}
>
{
oneClass
.
batch_no
}
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
{
oneClass
.
batchYear
}
<
/label
>
<
/div
>
<
div
className
=
"
col
"
>
<
label
>
{
moment
(
oneClass
.
class_startingDate
).
format
(
"
L
"
)}
<
/label
>
<
/div
>
...
...
WebFrontEnd/smartcoach-frontend/src/Components/Home.js
View file @
402157f6
...
...
@@ -356,9 +356,15 @@ export default class Home extends Component{
valueForRating
=
100
}
else
if
(
Number
(
tutor
.
tutor_avg_rating
)
>
4.75
){
valueForRating
=
75
valueForRating
=
90
}
else
if
(
Number
(
tutor
.
tutor_avg_rating
)
>
4.25
){
valueForRating
=
80
}
else
if
(
Number
(
tutor
.
tutor_avg_rating
)
>
4
){
valueForRating
=
70
}
else
if
(
Number
(
tutor
.
tutor_avg_rating
)
>
3.5
){
valueForRating
=
60
}
else
if
(
Number
(
tutor
.
tutor_avg_rating
)
>
2
){
...
...
WebFrontEnd/smartcoach-frontend/src/Components/HomePage/TutorCard.js
View file @
402157f6
...
...
@@ -5,6 +5,7 @@ import Star from "../../Images/star.png";
import
ReviewImg
from
"
../../Images/note.png
"
;
import
Calender
from
"
../../Images/calender.png
"
;
import
RecommendIcon
from
"
../../Images/recomended.png
"
;
import
{
Link
}
from
"
react-router-dom
"
;
export
default
class
TutorCard
extends
Component
{
...
...
@@ -77,15 +78,16 @@ export default class TutorCard extends Component{
<
/div
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-1
"
>
<
img
src
=
{
Calender
}
style
=
{{
width
:
'
20px
'
,
height
:
'
20px
'
}}
/
>
<
br
/>
{
/*<img src={Calender} style={{width:'20px', height:'20px'}}/>*/
}
<
/div
>
<
div
className
=
"
col
"
>
<
h5
style
=
{{
float
:
"
left
"
}}
>
6
y
experience
<
/h5
>
{
/*<h5 style={{float:"left"}}>6y experience</h5>*/
}
<
/div
>
<
/div
>
<
div
className
=
"
row
"
>
<
button
className
=
"
form-control
"
value
=
{
this
.
props
.
data
.
_id
}
style
=
{{
background
:
"
#216E9B
"
,
color
:
"
white
"
,
marginLeft
:
'
15px
'
,
marginRight
:
'
15px
'
}}
><
b
>
View
Profile
<
/b></
button
>
<
Link
to
=
{
`/Home/ViewProfile/
${
this
.
props
.
data
.
tutor_id
}
`
}
>
<
button
className
=
"
form-control
"
style
=
{{
background
:
"
#216E9B
"
,
color
:
"
white
"
,
marginLeft
:
'
15px
'
,
marginRight
:
'
15px
'
}}
><
b
>
View
Profile
<
/b></
button
><
/Link
>
<
/div
>
<
/div
>
...
...
WebFrontEnd/smartcoach-frontend/src/Components/HomePage/TutorProfileView.js
View file @
402157f6
import
React
,
{
Component
}
from
"
react
"
;
import
ItemNav
from
"
../Navbar
"
;
import
TestTeacher
from
"
../../Images/
teacher
.jpg
"
;
import
TestTeacher
from
"
../../Images/
defaultimageicon
.jpg
"
;
import
{
FaStar
}
from
"
react-icons/fa
"
;
import
axios
from
"
axios
"
;
import
*
as
configs
from
"
../../Config/config
"
;
...
...
@@ -14,15 +14,15 @@ export default class TutorProfileView extends Component{
super
(
props
);
this
.
state
=
{
tutor_id
:
'
6127b1d7ed4ff23bb0344538
'
,
tutor_id
:
props
.
match
.
params
.
id
,
rating
:
0
,
overRollRating
:
3.5
,
ratingCount
:
2
0
,
ratingFive
:
4
,
ratingFour
:
2
,
ratingThree
:
5
,
ratingTwo
:
1
,
ratingOne
:
1
,
overRollRating
:
0
,
ratingCount
:
0
,
ratingFive
:
0
,
ratingFour
:
0
,
ratingThree
:
0
,
ratingTwo
:
0
,
ratingOne
:
0
,
alreadyRate
:
false
,
review
:
''
,
student_id
:
''
,
...
...
@@ -42,6 +42,7 @@ export default class TutorProfileView extends Component{
HomeVisit
:
''
,
Institute
:
''
,
tutorManinCities
:
[],
detailReviewList
:
[],
};
...
...
@@ -104,6 +105,53 @@ export default class TutorProfileView extends Component{
},
()
=>
{
axios
.
get
(
configs
.
BASE_URL
+
'
/tutorRatings/
'
+
this
.
state
.
tutor_id
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
let
TotalRating
=
0
;
let
Rating5
=
0
;
let
Rating4
=
0
;
let
Rating3
=
0
;
let
Rating2
=
0
;
let
Rating1
=
0
;
response
.
data
.
map
((
rate
)
=>
{
TotalRating
=
TotalRating
+
Number
(
rate
.
rating
);
if
(
Number
(
rate
.
rating
)
===
5
){
Rating5
++
}
else
if
(
Number
(
rate
.
rating
)
===
4
){
Rating4
++
}
else
if
(
Number
(
rate
.
rating
)
===
3
){
Rating3
++
}
else
if
(
Number
(
rate
.
rating
)
===
2
){
Rating2
++
}
else
if
(
Number
(
rate
.
rating
)
===
1
){
Rating1
++
}
})
console
.
log
(
TotalRating
)
this
.
setState
({
detailReviewList
:
response
.
data
.
sort
((
a
,
b
)
=>
b
.
rating
-
a
.
rating
),
overRollRating
:
Number
(
TotalRating
/
response
.
data
.
length
),
ratingCount
:
response
.
data
.
length
,
ratingFive
:
Rating5
,
ratingFour
:
Rating4
,
ratingThree
:
Rating3
,
ratingTwo
:
Rating2
,
ratingOne
:
Rating1
,
},
()
=>
{
console
.
log
(
this
.
state
.
overRollRating
)
})
})
})
...
...
@@ -214,7 +262,7 @@ export default class TutorProfileView extends Component{
})}
<
/div
>
<
div
className
=
"
row
"
>
<
label
>
11
reviews
<
/label
>
<
label
>
{
this
.
state
.
ratingCount
}
reviews
<
/label
>
<
/div
>
<
/div
>
...
...
@@ -286,7 +334,12 @@ export default class TutorProfileView extends Component{
</div>
<div className="row" style={{marginLeft:
'
20
px
'
,marginTop:
'
10
px
'
}}>
<div className="col-">
<h6>Subjects : <b>{this.state.subjectList}</b></h6>
<label>Subjects : {this.state.subjectList.map((subject)=>{
return(
<span><b>{subject} | </b></span>
)
})}</label>
</div>
</div>
...
...
@@ -302,36 +355,41 @@ export default class TutorProfileView extends Component{
<label>Online Classes</label>
</div>
</div>
<div className="" style={{marginLeft:
'
20
px
'
}}>
<div className="scroll-area">
<div className="table-dark row">
<div className="col">
<label>Class Type</label>
</div>
<div className="col">
<label>A/L Batch</label>
</div>
<div className="col">
<label>Starting Date</label>
</div>
<div className="col">
<label>Subject</label>
</div>
<div className="col">
<label>Day and Time</label>
</div>
<div className="col">
{this.state.OnlineClass !== "" ?
<div className="" style={{marginLeft:
'
20
px
'
}}>
<div className="container">
<div className="table-dark row">
<div className="col">
<label>Class Type</label>
</div>
<div className="col">
<label>A/L Batch</label>
</div>
<div className="col">
<label>Starting Date</label>
</div>
<div className="col">
<label>Subject</label>
</div>
<div className="col">
<label>Day and Time</label>
</div>
<div className="col">
</div>
</div>
</div>
</div>
</div>
:
<div></div>
}
</div>
{this.state.TutorClassList.map((tutorClass)=>{
if(tutorClass.class_method === "Online class"){
return(
<div className="row" style={{background:
'
#
DCDCDC
'
, paddingBottom:
'
5
px
'
, paddingTop:
'
5
px
'
,marginLeft:
'
5
px
'
, borderBottom:
'
inset
'
}}>
<div className="row" style={{background:
'
#
DCDCDC
'
, paddingBottom:
'
5
px
'
, paddingTop:
'
5
px
'
,marginLeft:
'
20
px
'
,marginRight:
'
0
px
'
, borderBottom:
'
inset
'
}}>
<div className="col">
<label>{tutorClass.class_type}</label>
</div>
...
...
@@ -348,7 +406,7 @@ export default class TutorProfileView extends Component{
<label>{tutorClass.class_conduct_day} - {tutorClass.class_conduct_time}</label>
</div>
<div className="col">
<button className="rounded" style={{background:
'
Orange
'
, padding:
'
3
px
'
, width:
'
35
px
'
}} value={""} onClick={e => this.onSelectOneClass(e)}>+
</button>
<button className="rounded" style={{background:
'
Orange
'
, padding:
'
3
px
'
, width:
'
60
px
'
}} value={""} onClick={e => this.onSelectOneClass(e)}>View
</button>
</div>
</div>
...
...
@@ -369,18 +427,23 @@ export default class TutorProfileView extends Component{
<label>Home Visit</label>
</div>
</div>
<div className="row" style={{marginLeft:
'
20
px
'
, marginTop:
'
0
px
'
}}>
<div className="col-" style={{marginLeft:
'
30
px
'
}}>
<Icon.GeoAlt color="black" size={18}/>
</div>
<div className="col-" style={{float:
'
left
'
, marginLeft:
'
15
px
'
}}>
<label>Home Visit Areas : {this.state.tutorManinCities.map((city)=>{
return(
<span>{city} | </span>
)
})}</label>
{this.state.HomeVisit !== "" ?
<div className="row" style={{marginLeft:
'
20
px
'
, marginTop:
'
0
px
'
}}>
<div className="col-" style={{marginLeft:
'
30
px
'
}}>
<Icon.GeoAlt color="black" size={18}/>
</div>
<div className="col-" style={{float:
'
left
'
, marginLeft:
'
15
px
'
}}>
<label>Home Visit Areas : {this.state.tutorManinCities.map((city)=>{
return(
<span>{city} | </span>
)
})}</label>
</div>
</div>
</div>
:
<div></div>
}
<div className="row" style={{marginLeft:
'
20
px
'
, marginTop:
'
5
px
'
}}>
{this.state.Institute === "" ?
<Icon.XOctagon color="black" size={18}/>
...
...
@@ -403,39 +466,44 @@ export default class TutorProfileView extends Component{
})}</label>
</div>
</div>
<div className="" style={{marginLeft:
'
20
px
'
}}>
<div className="scroll-area">
<div className="table-dark row">
<div className="col">
<label>Class Type</label>
</div>
<div className="col">
<label>A/L Batch</label>
</div>
<div className="col">
<label>Starting Date</label>
</div>
<div className="col">
<label>Subject</label>
</div>
<div className="col">
<label>Institute</label>
</div>
<div className="col">
<label>Day and Time</label>
</div>
<div className="col">
{this.state.Institute !== "" ?
<div className="" style={{marginLeft:
'
20
px
'
}}>
<div className="container">
<div className="table-dark row">
<div className="col">
<label>Class Type</label>
</div>
<div className="col">
<label>A/L Batch</label>
</div>
<div className="col">
<label>Starting Date</label>
</div>
<div className="col">
<label>Subject</label>
</div>
<div className="col">
<label>Institute</label>
</div>
<div className="col">
<label>Day and Time</label>
</div>
<div className="col">
</div>
</div>
</div>
</div>
</div>
:
<div></div>
}
</div>
{this.state.TutorClassList.map((tutorClass)=>{
if(tutorClass.class_method === "Institute"){
return(
<div className="row" style={{background:
'
#
DCDCDC
'
, paddingBottom:
'
5
px
'
, paddingTop:
'
5
px
'
,marginLeft:
'
5
px
'
, borderBottom:
'
inset
'
}}>
<div className="row" style={{background:
'
#
DCDCDC
'
, paddingBottom:
'
5
px
'
, paddingTop:
'
5
px
'
,marginLeft:
'
20
px
'
,marginRight:
'
0
px
'
, borderBottom:
'
inset
'
}}>
<div className="col">
<label>{tutorClass.class_type}</label>
</div>
...
...
@@ -455,7 +523,7 @@ export default class TutorProfileView extends Component{
<label>{tutorClass.class_conduct_day} - {tutorClass.class_conduct_time}</label>
</div>
<div className="col">
<button className="rounded" style={{background:
'
Orange
'
, padding:
'
3
px
'
, width:
'
35
px
'
}} value={""} onClick={e => this.onSelectOneClass(e)}>+
</button>
<button className="rounded" style={{background:
'
Orange
'
, padding:
'
3
px
'
, width:
'
60
px
'
}} value={""} onClick={e => this.onSelectOneClass(e)}>View
</button>
</div>
</div>
...
...
@@ -463,7 +531,12 @@ export default class TutorProfileView extends Component{
}
})}
{/*{this.state.TutorClassList.length > 0 ?*/}
{/* <div></div>*/}
{/* :*/}
{/* <div style={{padding:
'
20
px
'
}}>No Active classes for students</div>*/}
{/*}*/}
</div>
<div className="col">
...
...
@@ -615,6 +688,11 @@ export default class TutorProfileView extends Component{
</div>
<div className="row" style={{marginTop:
'
20
px
'
,marginLeft:
'
0
px
'
, paddingLeft:
'
20
px
'
,paddingTop:
'
5
px
'
,paddingBottom:
'
5
px
'
,
background:
'
#
022140
'
,color:
'
white
'
}}>
<h5>You can review to this Tutor</h5>
</div>
<div className="row" style={{margin:
'
20
px
'
}}>
{[...Array(5)].map((star, i) => {
const ratingValue = i + 1;
...
...
@@ -630,27 +708,24 @@ export default class TutorProfileView extends Component{
</label>
})}
</div>
<div className="row" style={{margin:
'
20
px
'
}}>
<div className="row" style={{margin
Left
:
'
20
px
'
}}>
<span style={{marginLeft:
'
20
px
'
}}>You Rate [{this.state.rating}] stars for the product.</span>
</div>
{/*<div className="row" style={{margin:
'
20
px
'
}}>*/}
{/* <input type="text" id="tutorAddress" className="form-control"*/}
{/* placeholder="Tutor ID"*/}
{/* onChange={this.onTutorID}*/}
{/* style={{width:
'
50
%
'
}} required/>*/}
{/*</div>*/}
{/*<div className="row" style={{margin:
'
20
px
'
}}>*/}
{/* <input type="text" id="tutorAddress" className="form-control"*/}
{/* placeholder="SID"*/}
{/* onChange={this.onSID}*/}
{/* style={{width:
'
50
%
'
}} required/>*/}
{/*</div>*/}
<div className="row" style={{margin:
'
20
px
'
}}>
<h5 style={{marginLeft:
'
20
px
'
}}>You can review to this Tutor</h5>
</div>
<div className="row" style={{margin:
'
20
px
'
}}>
<input type="text" id="tutorAddress" className="form-control"
placeholder="Tutor ID"
onChange={this.onTutorID}
style={{width:
'
50
%
'
}} required/>
</div>
<div className="row" style={{margin:
'
20
px
'
}}>
<input type="text" id="tutorAddress" className="form-control"
placeholder="SID"
onChange={this.onSID}
style={{width:
'
50
%
'
}} required/>
</div>
<div className="row" style={{margin:
'
20
px
'
}}>
<textarea style={{width:
'
50
%
'
, marginLeft:
'
20
px
'
}} value={this.state.comments}
onChange={this.onChangeComment}/>
<textarea className="form-control" style={{width:
'
50
%
'
, marginLeft:
'
20
px
'
}}
placeholder="Your Idea about the tutor" value={this.state.comments} onChange={this.onChangeComment}/>
</div>
<div className="row" style={{margin:
'
20
px
'
}}>
{this.state.alreadyRate === false ?
...
...
@@ -658,10 +733,10 @@ export default class TutorProfileView extends Component{
className="profile-edit-btn nav-link btn btn-primary stop-color-final"
name="btnAddMore"
style={{
float:
'
left
'
, marginLeft:
'
20
px
'
, marginTop:
'
00
px
'
, marginBottom:
'
20
px
'
,
backgroundColor:
'
orange
'
, borderColor:
'
orange
'
, fontSize:
'
20
px
'
, width:
'
25
%
'
float:
'
left
'
, marginLeft:
'
20
px
'
, marginTop:
'
00
px
'
, marginBottom:
'
20
px
'
,
color:
'
white
'
,
backgroundColor:
'
#
216
E9B
'
, borderColor:
'
#
022140
'
, fontSize:
'
20
px
'
, width:
'
25
%
'
}}>
Add Comment
Submit Review
</a>
:
<a type="submit" onClick={this.updateRating}
...
...
@@ -675,6 +750,54 @@ export default class TutorProfileView extends Component{
</a>
}
</div>
<div className="row" style={{marginTop:
'
20
px
'
,marginLeft:
'
0
px
'
, paddingLeft:
'
20
px
'
,paddingTop:
'
5
px
'
,paddingBottom:
'
5
px
'
,
background:
'
#
022140
'
,color:
'
white
'
}}>
<h5>Tutor
'
s
Reviews
<
/h5
>
<
/div
>
<
div
className
=
"
container
"
style
=
{{
height
:
'
800px
'
}}
>
{
this
.
state
.
detailReviewList
.
map
((
review
)
=>
{
return
(
<
div
className
=
"
row
"
style
=
{{
margin
:
'
10px
'
}}
>
<
div
className
=
"
main-card mb card
"
style
=
{{
width
:
'
100%
'
}}
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-
"
>
<
img
src
=
{
TestTeacher
}
className
=
"
rounded-circle
"
style
=
{{
width
:
'
80px
'
,
height
:
'
80px
'
,
float
:
'
left
'
,
margin
:
'
30px
'
}}
/
>
<
/div
>
<
div
className
=
"
col
"
>
<
div
className
=
"
row
"
style
=
{{
marginLeft
:
'
15px
'
,
marginTop
:
'
15px
'
}}
>
<
h4
>
{
review
.
student_id
.
student_name
}
<
/h4
>
<
/div
>
<
div
className
=
"
row
"
style
=
{{
marginLeft
:
'
10px
'
,
marginTop
:
'
5px
'
}}
>
{[...
Array
(
5
)].
map
((
star
,
i
)
=>
{
const
ratingValue
=
i
+
1.0
;
return
<
label
style
=
{{
marginLeft
:
'
5px
'
,
float
:
'
left
'
}}
>
<
input
type
=
"
radio
"
name
=
"
rating
"
style
=
{{
display
:
"
none
"
}}
value
=
{
ratingValue
}
//onClick={this.onClickRatingValue}
/
>
<
FaStar
size
=
{
20
}
color
=
{
ratingValue
<=
(
review
.
rating
)
?
"
#ffc107
"
:
"
#e4e5e9
"
}
//onMouseEnter={() => this.onMouseEnter(i + 1)}
/
>
<
/label
>
})}
<
/div
>
<
div
className
=
"
row
"
style
=
{{
marginLeft
:
'
15px
'
}}
>
<
label
style
=
{{
textAlign
:
'
initial
'
,
marginRight
:
'
25px
'
}}
>
{
review
.
review
}
<
/label
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
)
})}
<
/div
>
<
/div
>
<
/div
>
...
...
WebFrontEnd/smartcoach-frontend/src/Components/Login.js
View file @
402157f6
import
React
,
{
Component
}
from
"
react
"
;
import
ItemNav
from
"
./Navbar
"
;
import
axios
from
"
axios
"
;
import
*
as
configs
from
"
../Config/config
"
;
import
swal
from
"
sweetalert
"
;
export
default
class
Login
extends
Component
{
...
...
@@ -28,31 +30,53 @@ export default class Login extends Component{
const
email
=
this
.
state
.
email
;
axios
.
post
(
'
http://localhost:5000
/userAccount/getCredentials
'
,
LogUser
)
axios
.
post
(
configs
.
BASE_URL
+
'
/userAccount/getCredentials
'
,
LogUser
)
.
then
(
response
=>
{
console
.
log
(
response
.
data
);
if
(
response
.
data
.
length
>
0
)
{
console
.
log
(
response
.
data
);
console
.
log
(
response
.
data
.
password
);
//console.log(response.data.length);
// if (response.data.length > 0) {
//console.log(response.data);
//console.log(response.data.password);
// localStorage.setItem("Name",response.data[0].name);
// localStorage.setItem("userID",response.data[0].id);
if
(
response
.
data
[
0
].
user_type
===
'
Student
'
){
window
.
location
=
'
/Home
'
;
if
(
response
.
data
===
"
Invalid Password
"
){
swal
(
"
Sorry
"
,
"
Invalid Password
"
,
"
warning
"
);
}
else
if
(
response
.
data
[
0
].
user_type
===
'
Tutor
'
){
window
.
location
=
'
/admin
'
;
else
if
(
response
.
data
===
"
Not registered
"
){
swal
(
"
Sorry
"
,
"
This email not registered!!!
"
,
"
warning
"
)
;
}
else
if
(
response
.
data
[
0
].
user_type
===
'
Institute
'
){
window
.
location
=
'
/admin
'
;
else
if
(
response
.
data
===
"
Not Verified
"
){
swal
(
"
Sorry
"
,
"
This email is not Verified
\n
Please verify your email first
"
,
"
warning
"
);
}
else
{
console
.
log
(
response
.
data
);
console
.
log
(
response
.
data
.
user_email
);
console
.
log
(
response
.
data
.
user_name
);
localStorage
.
setItem
(
"
email
"
,
response
.
data
.
user_email
);
localStorage
.
setItem
(
"
userID
"
,
response
.
data
.
user_id
);
localStorage
.
setItem
(
"
userName
"
,
response
.
data
.
user_name
);
localStorage
.
setItem
(
"
userType
"
,
response
.
data
.
user_type
);
if
(
response
.
data
.
user_type
===
'
Student
'
){
window
.
location
=
'
/Home
'
;
}
else
if
(
response
.
data
.
user_type
===
'
Tutor
'
){
window
.
location
=
'
/admin
'
;
}
else
if
(
response
.
data
.
user_type
===
'
Institute
'
){
window
.
location
=
'
/admin
'
;
}
}
//window.location = '/Places';
}
else
{
alert
(
"
Email or Password Invalid!!!
"
)
}
//}
// else {
// swal("Sorry", response.data, "warning");
//
// }
});
...
...
WebFrontEnd/smartcoach-frontend/src/Components/Navbar.js
View file @
402157f6
import
React
,
{
Component
}
from
'
react
'
;
import
Logo
from
"
../Images/logo.jpg
"
;
import
logout
from
"
../Images/logout2.png
"
;
export
default
class
NavBar
extends
Component
{
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
user_email
:
''
,
user_id
:
''
,
user_name
:
''
,
user_type
:
''
,
isLogged
:
false
}
}
componentDidMount
()
{
const
user_email
=
localStorage
.
getItem
(
"
email
"
);
const
user_id
=
localStorage
.
getItem
(
"
userID
"
);
const
user_name
=
localStorage
.
getItem
(
"
userName
"
);
const
user_type
=
localStorage
.
getItem
(
"
userType
"
);
if
(
user_id
!==
"
"
){
this
.
setState
({
isLogged
:
true
})
}
this
.
setState
({
user_email
:
user_email
,
user_id
:
user_id
,
user_name
:
user_name
,
user_type
:
user_type
})
console
.
log
(
user_email
);
console
.
log
(
user_name
);
}
render
()
{
return
(
...
...
@@ -16,26 +55,29 @@ export default class NavBar extends Component {
<
img
src
=
{
Logo
}
style
=
{{
width
:
'
200px
'
,
height
:
'
50px
'
}}
/
>
<
div
className
=
"
collapse navbar-collapse
"
id
=
"
navbarNavAltMarkup
"
>
<
div
className
=
"
navbar-nav
"
>
<
a
className
=
"
nav-item nav-link
"
style
=
{{
color
:
'
white
'
,
marginLeft
:
'
50px
'
}}
href
=
"
/Home
"
>
Home
<
span
<
a
className
=
"
nav-item nav-link
"
style
=
{{
color
:
'
white
'
,
marginLeft
:
'
50px
'
}}
href
=
"
/Home
"
>
<
h5
>
Home
<
/h5>
<spa
n
className
=
"
sr-only
"
>
(
current
)
<
/span></
a
>
<
/div
>
<
label
style
=
{{
position
:
'
absolute
'
,
top
:
'
15px
'
,
right
:
'
120px
'
,
color
:
'
#EAE4E4
'
}}
>
{
localStorage
.
getItem
(
"
Name
"
)
!=
null
?
localStorage
.
getItem
(
"
Name
"
)
:
<
label
onClick
=
{()
=>
{
color
:
'
#EAE4E4
'
,
marginRight
:
'
50px
'
}}
><
h5
>
{
this
.
state
.
user_name
!==
null
?
<
span
style
=
{{
cursor
:
'
pointer
'
}}
onClick
=
{()
=>
{
window
.
location
.
replace
(
"
/studentDashboard
"
);}}
>
{
this
.
state
.
user_name
}
<
/span> : <label onClick={
()
=>
{
window
.
location
.
replace
(
"
UserLogin
"
);
}}
>
Login
<
/label>} </
label
>
{
localStorage
.
getItem
(
"
Name
"
)
!=
null
&&
<
label
onClick
=
{()
=>
{
}}
>
Login
<
/label>} </
h5
><
/
label
>
{
this
.
state
.
user_name
!==
null
&&
<
img
src
=
{
logout
}
onClick
=
{()
=>
{
localStorage
.
clear
();
window
.
location
.
replace
(
"
/UserLogin
"
);
}}
style
=
{{
position
:
'
absolute
'
,
top
:
'
1
5px
'
,
right
:
'
30px
'
,
color
:
'
#EAE4E4
'
}}
>
Logout
<
/label
>
}
}}
style
=
{{
position
:
'
absolute
'
,
top
:
'
1
0px
'
,
right
:
'
30px
'
,
width
:
'
40px
'
,
height
:
'
40px
'
,
cursor
:
'
pointer
'
}}
/
>
}
{
/*{this.state.user_name !== null && <h5 onClick={() => {*/
}
{
/* localStorage.clear();*/
}
{
/* window.location.replace("/UserLogin");*/
}
{
/*}} style={{position: 'absolute', top: '15px', right: '30px', color: 'darkred'}}><b>Logout</b></h5>}*/
}
<
/div
>
<
/nav
>
...
...
WebFrontEnd/smartcoach-frontend/src/Components/SignUp.js
View file @
402157f6
...
...
@@ -580,7 +580,7 @@ export default class SignUp extends Component {
else
{
axios
.
post
(
configs
.
BASE_URL
+
'
/studentSingUp/add
'
,
student
)
.
then
(
res
=>
{
console
.
log
(
"
Inside Then
"
)
//
console.log("Inside Then")
window
.
location
=
'
/beforeConfirm
'
})
.
catch
(
function
(
error
)
{
...
...
@@ -664,7 +664,7 @@ export default class SignUp extends Component {
axios
.
post
(
configs
.
BASE_URL
+
'
/tutorSingUp/add
'
,
Tutor
)
.
then
(
res
=>
{
console
.
log
(
"
Inside Then
"
)
//
console.log("Inside Then")
window
.
location
=
'
/beforeConfirm
'
})
.
catch
(
function
(
error
)
{
...
...
@@ -716,7 +716,7 @@ export default class SignUp extends Component {
axios
.
post
(
configs
.
BASE_URL
+
'
/instituteSingUp/add
'
,
institute
)
.
then
(
res
=>
{
console
.
log
(
"
Inside Then
"
)
//
console.log("Inside Then")
window
.
location
=
'
/beforeConfirm
'
})
.
catch
(
function
(
error
)
{
...
...
WebFrontEnd/smartcoach-frontend/src/Components/Student/StudentDashboard.js
View file @
402157f6
...
...
@@ -3,8 +3,46 @@ import React, {Component} from 'react';
import
{
Link
,
Route
}
from
"
react-router-dom
"
;
import
{
NavLink
}
from
"
react-router-dom
"
;
import
ALResults
from
"
./ALResults
"
;
import
TestTeacher
from
"
../../Images/defaultimageicon.jpg
"
;
export
default
class
StudentDashboard
extends
Component
{
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
user_email
:
''
,
user_id
:
''
,
user_name
:
''
,
user_type
:
''
,
isLogged
:
false
}
}
componentDidMount
()
{
const
user_email
=
localStorage
.
getItem
(
"
email
"
);
const
user_id
=
localStorage
.
getItem
(
"
userID
"
);
const
user_name
=
localStorage
.
getItem
(
"
userName
"
);
const
user_type
=
localStorage
.
getItem
(
"
userType
"
);
if
(
user_id
!==
"
"
){
this
.
setState
({
isLogged
:
true
})
}
this
.
setState
({
user_email
:
user_email
,
user_id
:
user_id
,
user_name
:
user_name
,
user_type
:
user_type
})
}
render
()
{
return
(
...
...
@@ -68,22 +106,23 @@ export default class StudentDashboard extends Component {
<
div
className
=
"
widget-content-left
"
>
<
div
className
=
"
btn-group
"
>
<
div
className
=
"
dropdown1
"
>
<
img
width
=
"
42
"
className
=
"
rounded-circle
"
src
=
"
DashboardAssets/images/user.jpg
"
alt
=
""
/>
<
img
src
=
{
TestTeacher
}
className
=
"
rounded-circle
"
style
=
{{
width
:
'
50px
'
,
height
:
'
50px
'
,
float
:
'
left
'
,
margin
:
'
0px
'
}}
/
>
<
i
className
=
"
fa fa-angle-down ml-2 opacity-8
"
/>
<
div
className
=
"
dropdown-content1 dropdown-menu-right
"
>
<
button
type
=
"
button
"
className
=
"
dropdown-item
"
>
User
Account
<
/button
>
<
button
type
=
"
button
"
className
=
"
dropdown-item
"
style
=
{{
color
:
"
red
"
}}
>
Sign
Out
<
/button
>
<
button
type
=
"
button
"
className
=
"
dropdown-item
"
onClick
=
{()
=>
{
window
.
location
.
replace
(
"
/Home
"
);}}
>
Back
To
Home
<
/button
>
<
button
type
=
"
button
"
className
=
"
dropdown-item
"
style
=
{{
color
:
"
red
"
}}
onClick
=
{()
=>
{
window
.
location
.
replace
(
"
/UserLogin
"
);}}
>
Sign
Out
<
/button
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
widget-content-left ml-3 header-user-info
"
>
<
div
className
=
"
widget-heading
"
>
Bandara
Dissanayake
{
this
.
state
.
user_name
}
<
/div
>
<
div
className
=
"
widget-subheading
"
>
Tutor
Student
<
/div
>
<
/div
>
...
...
WebFrontEnd/smartcoach-frontend/src/Images/defaultimageicon.jpg
0 → 100644
View file @
402157f6
44.3 KB
WebFrontEnd/smartcoach-frontend/src/Images/defaultimageicon.png
0 → 100644
View file @
402157f6
11.2 KB
WebFrontEnd/smartcoach-frontend/src/Images/logout2.png
0 → 100644
View file @
402157f6
16.5 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment