Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2022-158
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
2
Merge Requests
2
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
2022-158
2022-158
Commits
cf517367
Commit
cf517367
authored
Oct 10, 2022
by
Weerasinghe D.N.H
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
db commit
parent
a68ec64c
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
47 additions
and
1326 deletions
+47
-1326
backend/.idea/backend.iml
backend/.idea/backend.iml
+4
-1
backend/backend/database.db
backend/backend/database.db
+0
-0
frontend/src/pages/DeliveryReportSubmit.js
frontend/src/pages/DeliveryReportSubmit.js
+0
-172
frontend/src/pages/ManageAllOrders.js
frontend/src/pages/ManageAllOrders.js
+0
-83
frontend/src/pages/ManageDeliveryReports.js
frontend/src/pages/ManageDeliveryReports.js
+0
-94
frontend/src/pages/ManageSites.js
frontend/src/pages/ManageSites.js
+0
-197
frontend/src/pages/OfficerDashboard.js
frontend/src/pages/OfficerDashboard.js
+0
-232
frontend/src/pages/OfficerOrders.js
frontend/src/pages/OfficerOrders.js
+0
-178
frontend/src/pages/SiteManagerDashboard.js
frontend/src/pages/SiteManagerDashboard.js
+0
-147
frontend/src/pages/StudentSubjectAssingment.js
frontend/src/pages/StudentSubjectAssingment.js
+13
-210
frontend/src/routes/Routes.js
frontend/src/routes/Routes.js
+30
-12
No files found.
backend/.idea/backend.iml
View file @
cf517367
<?xml version="1.0" encoding="UTF-8"?>
<module
type=
"PYTHON_MODULE"
version=
"4"
>
<component
name=
"NewModuleRootManager"
>
<content
url=
"file://$MODULE_DIR$"
/>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/backend"
isTestSource=
"false"
/>
</content>
<orderEntry
type=
"inheritedJdk"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
</component>
...
...
backend/backend/database.db
View file @
cf517367
No preview for this file type
frontend/src/pages/DeliveryReportSubmit.js
deleted
100644 → 0
View file @
a68ec64c
import
React
,
{
useEffect
,
useState
}
from
"
react
"
;
import
axios
from
"
axios
"
;
import
{
useParams
}
from
"
react-router-dom
"
;
import
Sidebar
from
"
../components/sidebar/Sidebar
"
;
import
TopNav
from
"
../components/topnav/TopNav
"
;
import
"
../assets/css/Usercreate.css
"
;
const
DeliveryReportSubmit
=
()
=>
{
const
{
id
}
=
useParams
();
const
[
btnState
,
setBtnState
]
=
useState
(
false
);
const
[
error
,
setError
]
=
useState
(
""
);
const
[
deliveryReport
,
setDeliveryReport
]
=
useState
({});
const
saveDeliveryReport
=
async
(
e
)
=>
{
e
.
preventDefault
();
setBtnState
(
true
);
if
(
!
deliveryReport
.
description
)
{
setBtnState
(
false
);
return
setError
(
"
Please fill all the fields
"
);
}
try
{
const
res
=
await
axios
.
post
(
"
/reports/deliveryreport
"
,
deliveryReport
);
if
(
res
.
status
===
201
)
{
setDeliveryReport
({});
getOrderDetails
();
setError
(
""
);
const
res
=
await
axios
.
put
(
`orders/supplier/submitted/
${
id
}
`
);
if
(
res
.
status
===
200
)
{
window
.
alert
(
"
Delivery report registered successfully
"
);
window
.
location
.
href
=
"
/auth/supplier/deliveryreports
"
;
}
}
setBtnState
(
false
);
}
catch
(
err
)
{
setBtnState
(
false
);
console
.
log
(
err
.
response
);
}
};
const
getOrderDetails
=
async
()
=>
{
try
{
const
res
=
await
axios
.
get
(
`orders/
${
id
}
`
);
console
.
log
(
res
.
data
);
setDeliveryReport
(
res
.
data
.
order
);
}
catch
(
err
)
{
console
.
log
(
err
.
response
);
}
};
useEffect
(()
=>
getOrderDetails
(),
[]);
return
(
<
div
>
<
Sidebar
/>
<
div
id
=
"
main
"
className
=
"
layout__content
"
>
<
TopNav
/>
<
div
className
=
"
layout__content-main
"
>
<
h1
className
=
"
page-header
"
>
Submit
Delivery
Report
<
/h1
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-12
"
>
<
form
className
=
"
card
"
style
=
{{
position
:
"
relative
"
}}
>
{
error
&&
(
<
div
className
=
"
error-bg
"
style
=
{{
left
:
"
3%
"
}}
>
<
p
>
{
error
}
<
/p
>
<
/div
>
)}
<
div
className
=
"
row
"
>
<
div
className
=
"
col-4
"
>
<
label
htmlFor
=
""
>
Order
Item
<
/label
>
<
div
className
=
"
row-user
"
>
<
input
disabled
type
=
"
text
"
placeholder
=
"
Delivered Item
"
value
=
{
deliveryReport
.
itemName
}
required
/>
<
/div
>
<
/div
>
<
div
className
=
"
col-4
"
>
<
label
htmlFor
=
""
>
Order
ID
<
/label
>
<
div
className
=
"
row-user
"
>
<
input
disabled
type
=
"
text
"
placeholder
=
"
Order ID
"
value
=
{
deliveryReport
.
_id
}
required
/>
<
/div
>
<
/div
>
<
div
className
=
"
col-4
"
>
<
label
htmlFor
=
""
>
Quantity
<
/label
>
<
div
className
=
"
row-user
"
>
<
input
disabled
type
=
"
text
"
placeholder
=
"
Quantity
"
value
=
{
deliveryReport
.
quantity
}
required
/>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-4
"
>
<
label
htmlFor
=
""
>
Total
<
/label
>
<
div
className
=
"
row-user
"
>
<
input
disabled
type
=
"
text
"
placeholder
=
"
Delivered Item
"
value
=
{
deliveryReport
.
total
}
required
/>
<
/div
>
<
/div
>
<
div
className
=
"
col-4
"
>
<
label
htmlFor
=
""
>
Order
Type
<
/label
>
<
div
className
=
"
row-user
"
>
<
input
disabled
type
=
"
text
"
placeholder
=
"
Order ID
"
value
=
{
deliveryReport
.
urgentOrder
===
false
?
"
Regular Order
"
:
"
Urgent Order
"
}
required
/>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-12
"
>
<
div
className
=
"
row-user
"
>
<
input
type
=
"
text
"
placeholder
=
"
Description
"
value
=
{
deliveryReport
.
description
}
onChange
=
{(
e
)
=>
setDeliveryReport
({
...
deliveryReport
,
description
:
e
.
target
.
value
,
})
}
required
/>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
row-user
"
>
<
button
type
=
"
submit
"
onClick
=
{
saveDeliveryReport
}
>
{
btnState
?
"
Saving
"
:
"
Save
"
}
<
/button
>
<
/div
>
<
/form
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
);
};
export
default
DeliveryReportSubmit
;
frontend/src/pages/ManageAllOrders.js
deleted
100644 → 0
View file @
a68ec64c
import
React
,
{
useState
,
useEffect
}
from
"
react
"
;
import
{
Link
}
from
"
react-router-dom
"
;
import
Sidebar
from
"
../components/sidebar/Sidebar
"
;
import
TopNav
from
"
../components/topnav/TopNav
"
;
import
Table
from
"
../components/table/Table
"
;
import
Badge
from
"
../components/badge/Badge
"
;
import
axios
from
"
axios
"
;
const
ManageAllOrders
=
()
=>
{
const
fields
=
[
"
Order ID
"
,
"
Item Name
"
,
"
Quantity
"
,
"
Total
"
,
"
Created Date
"
,
"
Status
"
,
];
const
[
orders
,
setOrders
]
=
useState
(
null
);
const
renderOrderHead
=
(
item
,
index
)
=>
<
th
key
=
{
index
}
>
{
item
}
<
/th>
;
const
renderOrderBody
=
(
item
,
index
)
=>
(
<
tr
key
=
{
index
}
>
<
td
>
{
index
+
1
}
<
/td
>
<
td
>
{
item
.
itemName
}
<
/td
>
<
td
>
{
item
.
quantity
}
<
/td
>
<
td
>
{
item
.
total
}
<
/td
>
<
td
>
{
new
Date
(
item
.
createdAt
).
toLocaleDateString
()}
<
/td
>
<
td
>
<
Badge
type
=
{
permissionStatus
[
item
.
isApprovedByOfficer
]}
content
=
{
item
.
isApprovedByOfficer
}
/
>
<
/td
>
<
/tr
>
);
const
getAllOrder
=
async
()
=>
{
const
res
=
await
axios
.
get
(
"
orders/getAllOrdersByManager
"
);
console
.
log
(
res
.
data
.
orders
);
setOrders
(
res
.
data
.
orders
);
};
useEffect
(()
=>
{
getAllOrder
();
},
[]);
const
permissionStatus
=
{
pending
:
"
warning
"
,
approved
:
"
success
"
,
rejected
:
"
danger
"
,
};
return
(
<
div
>
<
Sidebar
/>
<
div
id
=
"
main
"
className
=
"
layout__content
"
>
<
TopNav
/>
<
div
className
=
"
layout__content-main
"
>
<
div
className
=
"
card
"
>
<
h2
>
All
Order
Details
<
/h2
>
{
orders
&&
(
<
Table
limit
=
"
10
"
headData
=
{
fields
}
renderHead
=
{(
item
,
index
)
=>
renderOrderHead
(
item
,
index
)}
bodyData
=
{
orders
}
renderBody
=
{(
item
,
index
)
=>
renderOrderBody
(
item
,
index
)}
/
>
)}
<
/div
>
<
Link
to
=
{
"
/auth/manager/ApprovedOrders
"
}
>
<
div
className
=
"
row-user
"
>
<
button
>
Approved
Orders
<
/button
>
<
/div
>
<
/Link
>
<
/div
>
<
/div
>
<
/div
>
);
};
export
default
ManageAllOrders
;
frontend/src/pages/ManageDeliveryReports.js
deleted
100644 → 0
View file @
a68ec64c
import
React
,
{
useState
,
useEffect
}
from
"
react
"
;
import
axios
from
"
axios
"
;
import
Sidebar
from
"
../components/sidebar/Sidebar
"
;
import
Spinner
from
"
../components/loading/Spinner
"
;
import
TopNav
from
"
../components/topnav/TopNav
"
;
import
Table
from
"
../components/table/Table
"
;
import
Badge
from
"
../components/badge/Badge
"
;
import
"
../components/badge/badge.css
"
;
import
"
react-calendar/dist/Calendar.css
"
;
const
ManageDeliveryReports
=
()
=>
{
const
[
suppliers
,
setSuppliers
]
=
useState
([]);
const
[
isLoading
,
setIsLoading
]
=
useState
(
true
);
const
fields
=
[
""
,
"
Item
"
,
"
Quantity
"
,
"
Description
"
,
"
Total
"
,
"
Delivered Address
"
,
"
Order Type
"
,
];
const
getAllSuppliers
=
async
()
=>
{
setIsLoading
(
true
);
try
{
const
res
=
await
axios
.
get
(
`reports/deliveryreport/supplier`
);
console
.
log
(
res
);
setSuppliers
(
res
.
data
.
reports
);
setIsLoading
(
false
);
}
catch
(
err
)
{
console
.
log
(
err
.
response
);
}
};
useEffect
(()
=>
getAllSuppliers
(),
[]);
const
renderOrderHead
=
(
item
,
index
)
=>
<
th
key
=
{
index
}
>
{
item
}
<
/th>
;
const
renderOrderBody
=
(
item
,
index
)
=>
(
<
tr
key
=
{
index
}
>
<
td
>
{
index
+
1
}
<
/td
>
<
td
>
{
item
.
item
}
<
/td
>
<
td
>
{
item
.
quantity
}
<
/td
>
<
td
>
{
item
.
description
}
<
/td
>
<
td
>
{
item
.
total
}
<
/td
>
<
td
>
{
item
.
address
}
<
/td
>
<
td
>
{
item
.
urgentOrder
?
(
<
div
style
=
{{
cursor
:
"
pointer
"
}}
>
<
Badge
type
=
"
danger
"
content
=
"
Urgent
"
/>
<
/div
>
)
:
(
<
div
style
=
{{
cursor
:
"
pointer
"
}}
>
<
Badge
type
=
"
primary
"
content
=
"
Regular
"
/>
<
/div
>
)}
<
/td
>
<
/tr
>
);
return
(
<
div
>
<
Sidebar
/>
<
div
id
=
"
main
"
className
=
"
layout__content
"
>
<
TopNav
/>
<
div
className
=
"
layout__content-main
"
>
<
h1
className
=
"
page-header
"
>
Manage
Delivery
Reports
<
/h1
>
<
div
className
=
"
row
"
><
/div
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-12
"
>
<
div
className
=
"
card
"
>
{
isLoading
?
(
<
Spinner
/>
)
:
(
<
Table
limit
=
"
5
"
headData
=
{
fields
}
renderHead
=
{(
item
,
index
)
=>
renderOrderHead
(
item
,
index
)}
bodyData
=
{
suppliers
}
renderBody
=
{(
item
,
index
)
=>
renderOrderBody
(
item
,
index
)}
/
>
)}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
);
};
export
default
ManageDeliveryReports
;
frontend/src/pages/ManageSites.js
deleted
100644 → 0
View file @
a68ec64c
import
React
,
{
useEffect
,
useState
}
from
"
react
"
;
import
Sidebar
from
"
../components/sidebar/Sidebar
"
;
import
TopNav
from
"
../components/topnav/TopNav
"
;
import
Table
from
"
../components/table/Table
"
;
import
Spinner
from
"
../components/loading/Spinner
"
;
import
"
../assets/css/Usercreate.css
"
;
import
axios
from
"
axios
"
;
const
ManageUsers
=
()
=>
{
const
[
error
,
setError
]
=
useState
(
""
);
const
[
btnState
,
setBtnState
]
=
useState
(
false
);
const
[
isLoading
,
setIsLoading
]
=
useState
(
true
);
const
[
siteManagers
,
setSiteManagers
]
=
useState
([]);
const
[
sites
,
setSites
]
=
useState
([]);
const
[
site
,
setSite
]
=
useState
({
name
:
""
,
location
:
""
,
siteManagerId
:
""
,
});
const
fields
=
[
""
,
"
Site Name
"
,
"
Location
"
,
"
Site Manager
"
,
"
Email
"
];
const
renderOrderHead
=
(
item
,
index
)
=>
<
th
key
=
{
index
}
>
{
item
}
<
/th>
;
const
renderOrderBody
=
(
item
,
index
)
=>
(
<
tr
key
=
{
index
}
>
<
td
>
{
index
+
1
}
<
/td
>
<
td
>
{
item
.
name
}
<
/td
>
<
td
>
{
item
.
location
}
<
/td
>
<
td
>
{
item
.
siteManagerId
?
item
.
siteManagerId
.
name
:
"
Not Assigned
"
}
<
/td
>
<
td
>
{
item
.
siteManagerId
?
item
.
siteManagerId
.
email
:
"
Not Assigned
"
}
<
/td
>
<
/tr
>
);
const
saveSite
=
async
(
e
)
=>
{
e
.
preventDefault
();
setBtnState
(
true
);
for
(
let
key
of
Object
.
keys
(
site
))
{
if
(
!
site
[
key
])
{
setBtnState
(
false
);
return
setError
(
"
Please fill all the fields
"
);
}
}
if
(
site
.
siteManagerId
===
"
sitemanager
"
)
{
setBtnState
(
false
);
return
setError
(
"
Please fill all the fields
"
);
}
try
{
const
res
=
await
axios
.
post
(
"
sites
"
,
site
);
setSite
({
name
:
""
,
location
:
""
,
siteManagerId
:
""
,
});
getAllSites
();
setError
(
""
);
window
.
alert
(
"
Site registered successfully
"
);
setBtnState
(
false
);
setIsLoading
(
true
);
}
catch
(
err
)
{
setBtnState
(
false
);
console
.
log
(
err
.
response
);
}
};
const
getAllSites
=
async
()
=>
{
try
{
const
res
=
await
axios
.
get
(
`sites`
);
setSites
(
res
.
data
.
sites
);
console
.
log
(
res
.
data
.
sites
);
setIsLoading
(
false
);
}
catch
(
err
)
{
console
.
log
(
err
.
response
);
}
};
const
getAllSiteManagers
=
async
()
=>
{
try
{
const
res
=
await
axios
.
get
(
`sitemanagers`
);
setSiteManagers
(
res
.
data
.
sitemanagers
);
}
catch
(
err
)
{
console
.
log
(
err
.
response
);
}
};
useEffect
(()
=>
{
getAllSites
();
getAllSiteManagers
();
},
[]);
return
(
<
div
>
<
Sidebar
/>
<
div
id
=
"
main
"
className
=
"
layout__content
"
>
<
TopNav
/>
<
div
className
=
"
layout__content-main
"
>
<
h1
className
=
"
page-header
"
>
Manage
Sites
<
/h1
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-12
"
>
<
form
className
=
"
card
"
style
=
{{
position
:
"
relative
"
}}
>
{
error
&&
(
<
div
className
=
"
error-bg
"
style
=
{{
left
:
"
3%
"
}}
>
<
p
>
{
error
}
<
/p
>
<
/div
>
)}
<
div
className
=
"
row
"
>
<
div
className
=
"
col-6
"
>
<
div
className
=
"
row-user
"
>
<
input
type
=
"
text
"
placeholder
=
"
Site Name
"
value
=
{
site
.
name
}
onChange
=
{(
e
)
=>
setSite
({
...
site
,
name
:
e
.
target
.
value
,
})
}
required
/>
<
/div
>
<
/div
>
<
div
className
=
"
col-6
"
>
<
div
className
=
"
row-user
"
>
<
input
type
=
"
text
"
placeholder
=
"
Site Location
"
value
=
{
site
.
location
}
onChange
=
{(
e
)
=>
setSite
({
...
site
,
location
:
e
.
target
.
value
,
})
}
required
/>
<
/div
>
<
/div
>
<
div
className
=
"
col-6
"
>
<
div
className
=
"
row-user
"
>
<
select
name
=
"
site
"
id
=
"
site
"
value
=
{
site
.
siteManagerId
}
onChange
=
{(
e
)
=>
setSite
({
...
site
,
siteManagerId
:
e
.
target
.
value
,
})
}
required
>
<
option
defaultValue
value
=
"
sitemanager
"
>
SELECT
SITE
MANAGER
<
/option
>
{
siteManagers
.
length
!==
0
&&
siteManagers
.
map
((
siteManager
)
=>
(
<
option
value
=
{
siteManager
.
_id
}
>
{
siteManager
.
name
}
<
/option
>
))}
<
/select
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
row-user
"
>
<
button
type
=
"
submit
"
onClick
=
{
saveSite
}
>
{
btnState
?
"
Saving
"
:
"
Save
"
}
<
/button
>
<
/div
>
<
/form
>
<
/div
>
<
/div
>
<
div
className
=
"
card
"
>
<
h2
>
Site
Details
<
/h2
>
{
isLoading
?
(
<
Spinner
/>
)
:
(
<
Table
limit
=
"
5
"
headData
=
{
fields
}
renderHead
=
{(
item
,
index
)
=>
renderOrderHead
(
item
,
index
)}
bodyData
=
{
sites
}
renderBody
=
{(
item
,
index
)
=>
renderOrderBody
(
item
,
index
)}
/
>
)}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
);
};
export
default
ManageUsers
;
frontend/src/pages/OfficerDashboard.js
deleted
100644 → 0
View file @
a68ec64c
import
React
,
{
useState
,
useEffect
}
from
"
react
"
;
import
{
Link
}
from
"
react-router-dom
"
;
import
Calendar
from
"
react-calendar
"
;
import
Sidebar
from
"
../components/sidebar/Sidebar
"
;
import
TopNav
from
"
../components/topnav/TopNav
"
;
import
Table
from
"
../components/table/Table
"
;
import
"
react-calendar/dist/Calendar.css
"
;
import
"
../components/badge/badge.css
"
;
import
AdminGreeting
from
"
../assets/images/admin-greeting.png
"
;
import
Badge
from
"
../components/badge/Badge
"
;
import
profilePicture
from
"
../assets/images/admin-user-img.jpg
"
;
import
axios
from
"
axios
"
;
import
status
from
"
../helpers/greeting
"
;
const
OfficerDashboard
=
()
=>
{
const
[
value
,
onChange
]
=
useState
(
new
Date
());
const
[
orders
,
setOrders
]
=
useState
(
null
);
const
fields
=
[
"
Order ID
"
,
"
Item Name
"
,
"
Quantity
"
,
"
Total
"
,
"
Created Date
"
,
"
Status
"
,
];
const
rows
=
[
{
id
:
"
1
"
,
date
:
"
2021.08.06
"
,
houseOwner
:
"
Gayath Chandula
"
,
providence
:
"
Pool
"
,
status
:
"
Approved
"
,
},
{
id
:
"
2
"
,
date
:
"
2021.08.06
"
,
houseOwner
:
"
Gayath Chandula
"
,
providence
:
"
Pool
"
,
status
:
"
Pending
"
,
},
{
id
:
"
3
"
,
date
:
"
2021.08.06
"
,
houseOwner
:
"
Gayath Chandula
"
,
providence
:
"
Pool
"
,
status
:
"
Declined
"
,
},
{
id
:
"
4
"
,
date
:
"
2021.08.06
"
,
houseOwner
:
"
Gayath Chandula
"
,
providence
:
"
Pool
"
,
status
:
"
Pending
"
,
},
{
id
:
"
4
"
,
date
:
"
2021.08.06
"
,
houseOwner
:
"
Gayath Chandula
"
,
providence
:
"
Pool
"
,
status
:
"
Pending
"
,
},
{
id
:
"
4
"
,
date
:
"
2021.08.06
"
,
houseOwner
:
"
Gayath Chandula
"
,
providence
:
"
Pool
"
,
status
:
"
Pending
"
,
},
];
const
permissionStatus
=
{
pending
:
"
warning
"
,
Approved
:
"
success
"
,
Declined
:
"
danger
"
,
};
const
deleteHandler
=
(
id
)
=>
{
console
.
log
(
id
);
};
const
renderOrderHead
=
(
item
,
index
)
=>
<
th
key
=
{
index
}
>
{
item
}
<
/th>
;
const
renderOrderBody
=
(
item
,
index
)
=>
(
<
tr
key
=
{
index
}
>
<
td
>
{
index
+
1
}
<
/td
>
<
td
>
{
item
.
itemName
}
<
/td
>
<
td
>
{
item
.
quantity
}
<
/td
>
<
td
>
{
item
.
total
}
<
/td
>
<
td
>
{
new
Date
(
item
.
createdAt
).
toLocaleDateString
()}
<
/td
>
<
td
>
<
Badge
type
=
{
permissionStatus
[
item
.
isApprovedByOfficer
]}
content
=
{
item
.
isApprovedByOfficer
}
/
>
<
/td
>
<
td
className
=
""
>
{
item
.
status
===
"
Pending
"
&&
(
<>
<
button
className
=
"
action-btn check
"
>
<
i
className
=
"
bx bx-check
"
><
/i
>
<
/button
>
<
button
className
=
"
action-btn x
"
>
<
i
className
=
"
bx bx-x
"
onClick
=
{()
=>
{
if
(
window
.
confirm
(
"
Are you sure to delete this request?
"
))
{
deleteHandler
(
item
.
id
);
}
}}
><
/i
>
<
/button
>
<
/
>
)}
<
/td
>
<
/tr
>
);
const
getAllOrder
=
async
()
=>
{
const
res
=
await
axios
.
get
(
"
orders/officer
"
);
setOrders
(
res
.
data
.
orders
);
console
.
log
(
res
);
};
console
.
log
(
orders
);
useEffect
(()
=>
{
getAllOrder
();
},
[]);
return
(
<
div
>
<
Sidebar
/>
<
div
id
=
"
main
"
className
=
"
layout__content
"
>
<
TopNav
/>
<
div
className
=
"
layout__content-main
"
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-8 full-width
"
>
<
div
className
=
"
card greeting-card
"
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-8 flex-column
"
>
<
h1
className
=
"
page-header
"
>
{
`Good
${
status
}
!`
}
<
/h1
>
<
h3
>
Today
you
have
{
"
"
}
{
orders
&&
orders
.
filter
(
(
order
)
=>
order
.
isApprovedByOfficer
===
"
pending
"
).
length
}{
"
"
}
new
notifications
<
/h3
>
<
h3
>
Also
new
booking
appointments
for
approval
<
/h3
>
<
Link
className
=
"
read-more
"
>
Read
more
<
i
className
=
"
bx bx-right-arrow-alt
"
><
/i
>
<
/Link
>
<
/div
>
<
div
className
=
"
col-4
"
>
<
img
className
=
"
admin-greeting
"
src
=
{
AdminGreeting
}
alt
=
""
/>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
col-4 full-width
"
>
<
div
className
=
"
card
"
>
<
h2
className
=
"
request-title
"
style
=
{{
color
:
"
transparent
"
,
marginBottom
:
"
-.2rem
"
}}
>
Calender
<
/h2
>
<
Calendar
className
=
"
calender
"
onChange
=
{
onChange
}
value
=
{
value
}
/
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-8
"
>
<
div
className
=
"
card
"
>
<
div
className
=
"
flex
"
>
<
h2
className
=
"
request-title
"
>
New
Orders
<
/h2
>
<
Link
to
=
{
`/auth/officers/orderlist`
}
>
<
button
className
=
"
view-btn
"
>
View
All
<
/button
>
<
/Link
>
<
/div
>
{
orders
?
(
<
Table
limit
=
"
5
"
headData
=
{
fields
}
renderHead
=
{(
item
,
index
)
=>
renderOrderHead
(
item
,
index
)}
bodyData
=
{
orders
}
renderBody
=
{(
item
,
index
)
=>
renderOrderBody
(
item
,
index
)}
/
>
)
:
(
<
div
><
/div
>
)}
<
/div
>
<
/div
>
<
div
className
=
"
col-4
"
>
<
div
className
=
"
card
"
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-4 full-width-1496
"
>
<
img
src
=
{
profilePicture
}
alt
=
""
className
=
"
profile-picture
"
/>
<
/div
>
<
div
className
=
"
col-8
"
>
<
h2
>
{
localStorage
.
getItem
(
"
name
"
)}
<
/h2
>
<
h3
className
=
"
lighter
"
>
OFFICER
<
/h3
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
);
};
export
default
OfficerDashboard
;
frontend/src/pages/OfficerOrders.js
deleted
100644 → 0
View file @
a68ec64c
import
React
,
{
useState
,
useEffect
}
from
"
react
"
;
import
Sidebar
from
"
../components/sidebar/Sidebar
"
;
import
TopNav
from
"
../components/topnav/TopNav
"
;
import
Table
from
"
../components/table/Table
"
;
import
Badge
from
"
../components/badge/Badge
"
;
import
axios
from
"
axios
"
;
import
Popup
from
"
./Popup
"
;
import
{
MdDelete
}
from
"
react-icons/md
"
;
import
{
FaCheckCircle
,
FaExclamationTriangle
,
FaCheckDouble
,
}
from
"
react-icons/fa
"
;
const
OfficerOrders
=
()
=>
{
const
fields
=
[
"
Order ID
"
,
"
Item Name
"
,
"
Quantity
"
,
"
Total
"
,
"
Created Date
"
,
"
Status
"
,
"
Actions
"
,
];
const
[
orders
,
setOrders
]
=
useState
(
null
);
const
[
trigger
,
setTrigger
]
=
useState
(
false
);
const
acceptOrder
=
async
(
id
)
=>
{
console
.
log
(
"
hi
"
);
try
{
const
res
=
await
axios
.
put
(
`orders/officer/
${
id
}
`
,
{
status
:
"
approved
"
,
});
console
.
log
(
res
);
}
catch
(
err
)
{
console
.
log
(
err
.
response
);
}
getAllOrder
();
};
const
deleteHandler
=
async
(
id
)
=>
{
// console.log("hi");
try
{
const
res
=
await
axios
.
put
(
`orders/officer/
${
id
}
`
,
{
status
:
"
rejected
"
,
});
console
.
log
(
res
);
}
catch
(
err
)
{
console
.
log
(
err
.
response
);
}
getAllOrder
();
};
const
renderOrderHead
=
(
item
,
index
)
=>
<
th
key
=
{
index
}
>
{
item
}
<
/th>
;
const
renderOrderBody
=
(
item
,
index
)
=>
(
<
tr
key
=
{
index
}
>
<
td
>
{
index
+
1
}
<
/td
>
<
td
>
{
item
.
itemName
}
<
/td
>
<
td
>
{
item
.
quantity
}
<
/td
>
<
td
>
{
item
.
total
}
<
/td
>
<
td
>
{
new
Date
(
item
.
createdAt
).
toLocaleDateString
()}
<
/td
>
<
td
>
<
Badge
type
=
{
permissionStatus
[
item
.
isApprovedByOfficer
]}
content
=
{
item
.
isApprovedByOfficer
}
/
>
<
/td
>
<
td
>
{
item
.
isApprovedByOfficer
==
"
pending
"
?
(
<
FaCheckCircle
className
=
"
action-btn check
"
onClick
=
{()
=>
{
acceptOrder
(
item
.
_id
);
window
.
alert
(
"
order accepted successfully
"
);
window
.
location
.
reload
();
}}
/
>
)
:
item
.
isApprovedByOfficer
==
"
approved
"
?
(
<
FaCheckDouble
className
=
"
action-btn check
"
/>
)
:
(
""
)}
{
item
.
isApprovedByOfficer
==
"
pending
"
?
(
<>
<
MdDelete
className
=
"
action-btn x
"
onClick
=
{()
=>
{
// if (window.confirm("Are you sure to delete this request?")) {
deleteHandler
(
item
.
_id
);
setTrigger
(
true
);
// }
}}
/
>
<
Popup
trigger
=
{
trigger
}
setTrigger
=
{
setTrigger
}
orderId
=
{
item
.
_id
}
name
=
"
rejectReason
"
/>
<
/
>
)
:
item
.
isApprovedByOfficer
==
"
rejected
"
?
(
<
FaExclamationTriangle
className
=
"
action-btn x
"
/>
)
:
(
""
)}
{
item
.
isApprovedByOfficer
==
"
approved
"
&&
!
item
.
supplierId
?
(
<>
<
button
className
=
"
action-btn item-assign
"
onClick
=
{()
=>
{
setTrigger
(
true
);
}}
>
<
i
className
=
"
bx bxs-user-plus
"
><
/i
>
<
/button
>
<
Popup
trigger
=
{
trigger
}
setTrigger
=
{
setTrigger
}
order
=
{
item
.
itemName
}
orderId
=
{
item
.
_id
}
materialId
=
{
item
.
orderItem
}
sitemng
=
{
item
.
siteManagerId
}
total
=
{
item
.
total
}
name
=
"
Assign
"
/>
<
/
>
)
:
(
""
)}
<
/td
>
<
/tr
>
);
const
getAllOrder
=
async
()
=>
{
const
res
=
await
axios
.
get
(
"
orders/officer/orders
"
);
// console.log(res.data.orders);
setOrders
(
res
.
data
.
orders
);
};
useEffect
(()
=>
{
getAllOrder
();
},
[]);
const
permissionStatus
=
{
pending
:
"
warning
"
,
approved
:
"
success
"
,
rejected
:
"
danger
"
,
};
return
(
<
div
>
<
Sidebar
/>
<
div
id
=
"
main
"
className
=
"
layout__content
"
>
<
TopNav
/>
<
div
className
=
"
layout__content-main
"
>
{
orders
&&
(
<
Table
limit
=
"
10
"
headData
=
{
fields
}
renderHead
=
{(
item
,
index
)
=>
renderOrderHead
(
item
,
index
)}
bodyData
=
{
orders
}
renderBody
=
{(
item
,
index
)
=>
renderOrderBody
(
item
,
index
)}
/
>
)}
<
/div
>
<
/div
>
<
/div
>
);
};
export
default
OfficerOrders
;
frontend/src/pages/SiteManagerDashboard.js
deleted
100644 → 0
View file @
a68ec64c
import
React
,
{
useEffect
,
useState
}
from
"
react
"
;
import
{
Link
}
from
"
react-router-dom
"
;
import
Sidebar
from
"
../components/sidebar/Sidebar
"
;
import
TopNav
from
"
../components/topnav/TopNav
"
;
import
Table
from
"
../components/table/Table
"
;
import
AdminGreeting
from
"
../assets/images/admin-greeting.png
"
;
import
Badge
from
"
../components/badge/Badge
"
;
import
"
../components/badge/badge.css
"
;
import
Calendar
from
"
react-calendar
"
;
import
"
react-calendar/dist/Calendar.css
"
;
import
profilePicture
from
"
../assets/images/user2.jpg
"
;
import
Spinner
from
"
../components/loading/Spinner
"
;
import
axios
from
"
axios
"
;
const
SiteManagerDashboard
=
()
=>
{
const
[
value
,
onChange
]
=
useState
(
new
Date
());
const
fields
=
[
""
,
"
Required Date
"
,
"
Item
"
,
"
Quantity
"
,
"
Delivery Status
"
];
const
[
OrderDetail
,
setOrderDetail
]
=
useState
([])
const
[
Loading
,
setLoading
]
=
useState
(
false
);
useEffect
(()
=>
{
const
FetchData
=
async
()
=>
{
const
res
=
await
axios
.
get
(
"
/orders/approved
"
);
setOrderDetail
(
res
.
data
.
orders
);
console
.
log
(
res
.
data
);
if
(
res
.
statusText
===
"
OK
"
){
setLoading
(
true
)
}
};
FetchData
();
},
[]);
const
renderOrderHead
=
(
item
,
index
)
=>
<
th
key
=
{
index
}
>
{
item
}
<
/th>
;
const
renderOrderBody
=
(
item
,
index
)
=>
(
<
tr
key
=
{
index
}
>
<
td
>
{
index
+
1
}
<
/td
>
<
td
>
{
item
.
requiredDate
}
<
/td
>
<
td
>
{
item
.
itemName
}
<
/td
>
<
td
>
{
item
.
quantity
}
<
/td
>
<
td
>
<
div
className
=
"
row-user
"
style
=
{{
paddingTop
:
"
0
"
}}
>
{
item
.
DeliveryStatus
===
"
pending
"
?
(
<
Badge
type
=
"
warning
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
item
.
DeliveryStatus
===
"
preparing
"
?
(
<
Badge
type
=
"
primary
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
item
.
DeliveryStatus
===
"
delivering
"
?
(
<
Badge
type
=
"
success
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
item
.
DeliveryStatus
===
"
delivered
"
?
(
<
Badge
type
=
"
success
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
(
""
)}
<
/div
>
<
/td
>
<
/tr
>
);
return
(
<
div
>
<
Sidebar
/>
<
div
id
=
"
main
"
className
=
"
layout__content
"
>
<
TopNav
/>
<
div
className
=
"
layout__content-main
"
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-8 full-width
"
>
<
div
className
=
"
card greeting-card
"
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-8 flex-column
"
>
<
h1
className
=
"
page-header
"
>
Good
Morning
!
<
/h1
>
<
h3
>
Today
you
have
9
new
notifications
<
/h3
>
<
h3
>
Also
new
booking
appointments
for
approval
<
/h3
>
<
Link
className
=
"
read-more
"
>
Read
more
<
i
className
=
"
bx bx-right-arrow-alt
"
><
/i
>
<
/Link
>
<
/div
>
<
div
className
=
"
col-4
"
>
<
img
className
=
"
admin-greeting
"
src
=
{
AdminGreeting
}
alt
=
""
/>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
col-4 full-width
"
>
<
div
className
=
"
card
"
>
<
h2
className
=
"
request-title
"
style
=
{{
color
:
"
transparent
"
,
marginBottom
:
"
-.2rem
"
}}
>
Calender
<
/h2
>
<
Calendar
className
=
"
calender
"
onChange
=
{
onChange
}
value
=
{
value
}
/
>
<
/div
>
<
/div
>
<
/div
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-8
"
>
<
div
className
=
"
card
"
>
<
div
className
=
"
flex
"
>
<
h2
className
=
"
request-title
"
>
New
Orders
<
/h2
>
<
Link
to
=
{
`/auth/sitemanager/requisitions`
}
>
<
button
className
=
"
view-btn
"
>
View
All
<
/button
>
<
/Link
>
<
/div
>
{
Loading
?
<
Table
limit
=
"
5
"
headData
=
{
fields
}
renderHead
=
{(
item
,
index
)
=>
renderOrderHead
(
item
,
index
)}
bodyData
=
{
OrderDetail
}
renderBody
=
{(
item
,
index
)
=>
renderOrderBody
(
item
,
index
)}
/>:<Spinner/
>
}
<
/div
>
<
/div
>
<
div
className
=
"
col-4
"
>
<
div
className
=
"
card
"
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-4 full-width-1496
"
>
<
img
src
=
{
profilePicture
}
alt
=
""
className
=
"
profile-picture
"
/>
<
/div
>
<
div
className
=
"
col-8
"
>
<
h2
>
{
localStorage
.
getItem
(
"
name
"
)}
<
/h2
>
<
h3
className
=
"
lighter
"
>
SITE
MANAGER
<
/h3
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
);
};
export
default
SiteManagerDashboard
;
frontend/src/pages/StudentSubjectAssingment.js
View file @
cf517367
...
...
@@ -2,52 +2,21 @@ import axios from "axios";
import
React
,
{
useEffect
,
useState
}
from
"
react
"
;
import
Sidebar
from
"
../components/sidebar/Sidebar
"
;
import
TopNav
from
"
../components/topnav/TopNav
"
;
import
Table
from
"
../components/table/Table
"
;
import
Badge
from
"
../components/badge/Badge
"
;
import
Spinner
from
"
../components/loading/Spinner
"
;
import
{
MdDelete
}
from
"
react-icons/md
"
;
import
{
VscReport
}
from
"
react-icons/vsc
"
;
import
Popup
from
"
./Popup
"
;
import
{
useParams
}
from
"
react-router-dom
"
;
const
StudentSubjectAssingment
=
()
=>
{
const
siteId
=
localStorage
.
getItem
(
"
site
"
);
const
[
Materials
,
setMaterials
]
=
useState
([]);
const
fields
=
[
""
,
"
Required Date
"
,
"
Item
"
,
"
Quantity
"
,
"
Order Status
"
,
"
Delivery Status
"
,
"
Action
"
,
"
Goods Receipt
"
,
];
const
[
OrderDetail
,
setOrderDetail
]
=
useState
([]);
const
{
id
}
=
useParams
();
const
[
Loading
,
setLoading
]
=
useState
(
false
);
const
[
Trigger
,
setTrigger
]
=
useState
(
false
);
const
[
Name
,
setName
]
=
useState
(
""
);
const
[
Id
,
setId
]
=
useState
(
""
);
const
[
ItemName
,
setItemName
]
=
useState
(
""
);
const
[
Description
,
setDescription
]
=
useState
(
""
);
const
[
Order
,
setOrder
]
=
useState
({
item
:
{},
quantity
:
0
,
siteid
:
siteId
,
requiredDate
:
""
,
urgentOrder
:
false
,
});
console
.
log
(
Order
);
const
[
assignment
,
setAssignment
]
=
useState
([]);
const
FetchData
=
async
()
=>
{
const
resMaterials
=
await
axios
.
get
(
`materials`
);
setMaterials
(
resMaterials
.
data
.
materials
);
const
resOrders
=
await
axios
.
get
(
"
/orders
"
);
setOrderDetail
(
resOrders
.
data
.
orders
);
if
(
resOrders
.
statusText
===
"
OK
"
)
{
setLoading
(
true
);
try
{
const
res
=
await
axios
.
get
(
"
assignments/
"
+
id
);
setAssignment
(
res
.
data
.
assignment
);
}
catch
(
error
)
{
console
.
log
(
error
.
response
);
}
};
...
...
@@ -55,189 +24,25 @@ const StudentSubjectAssingment = () => {
FetchData
();
},
[]);
const
deleteHandler
=
async
(
id
)
=>
{
console
.
log
(
id
);
try
{
const
res
=
await
axios
.
delete
(
`/orders/delete/
${
id
}
`
);
if
(
res
.
statusText
===
"
OK
"
)
{
window
.
location
.
reload
();
}
}
catch
(
Err
)
{
console
.
log
(
Err
.
response
);
}
};
const
orderHandler
=
async
()
=>
{
try
{
console
.
log
(
Order
);
const
res
=
await
axios
.
post
(
"
/orders
"
,
Order
);
if
(
res
.
statusText
===
"
OK
"
)
{
window
.
location
.
reload
();
}
}
catch
(
Err
)
{
console
.
log
(
Err
.
response
);
}
};
const
renderOrderHead
=
(
item
,
index
)
=>
<
th
key
=
{
index
}
>
{
item
}
<
/th>
;
const
renderOrderBody
=
(
item
,
index
)
=>
(
<
tr
key
=
{
index
}
>
<
td
>
{
index
+
1
}
<
/td
>
<
td
>
{
item
.
requiredDate
}
<
/td
>
<
td
>
{
item
.
itemName
}
<
/td
>
<
td
>
{
item
.
quantity
}
<
/td
>
<
td
>
<
div
className
=
"
row-user
"
style
=
{{
paddingTop
:
"
0
"
}}
>
{
item
.
isApprovedByOfficer
===
"
rejected
"
?
(
<
Badge
type
=
"
danger
"
content
=
{
item
.
isApprovedByOfficer
}
/
>
)
:
item
.
isApprovedByManager
===
"
rejected
"
?
(
<
Badge
type
=
"
danger
"
content
=
{
item
.
isApprovedByManager
}
/
>
)
:
item
.
isApprovedByManager
===
"
pending
"
?
(
<
Badge
type
=
"
warning
"
content
=
{
item
.
isApprovedByManager
}
/
>
)
:
item
.
isApprovedByManager
===
"
approved
"
?
(
<
Badge
type
=
"
success
"
content
=
{
item
.
isApprovedByManager
}
/
>
)
:
(
""
)}
<
/div
>
<
/td
>
<
td
>
<
div
className
=
"
row-user
"
style
=
{{
paddingTop
:
"
0
"
}}
>
{
item
.
isApprovedByManager
===
"
approved
"
?
(
item
.
DeliveryStatus
===
"
pending
"
?
(
<
Badge
type
=
"
warning
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
item
.
DeliveryStatus
===
"
preparing
"
?
(
<
Badge
type
=
"
primary
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
item
.
DeliveryStatus
===
"
delivering
"
?
(
<
Badge
type
=
"
success
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
item
.
DeliveryStatus
===
"
delivered
"
?
(
<
Badge
type
=
"
success
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
item
.
DeliveryStatus
===
"
submitted
"
?
(
<
Badge
type
=
"
normal
"
content
=
{
item
.
DeliveryStatus
}
/
>
)
:
(
""
)
)
:
(
""
)}
<
/div
>
<
/td
>
<
td
className
=
""
>
{
item
.
isApprovedByManager
===
"
pending
"
&&
!
(
item
.
isApprovedByOfficer
===
"
rejected
"
)
?
(
<>
<
button
className
=
"
action-btn x
"
>
<
MdDelete
onClick
=
{()
=>
{
if
(
window
.
confirm
(
"
Are you sure to delete this request?
"
))
{
deleteHandler
(
item
.
_id
);
}
}}
/
>
<
/button
>
<
/
>
)
:
item
.
isApprovedByManager
===
"
rejected
"
||
item
.
isApprovedByOfficer
===
"
rejected
"
?
(
<>
<
button
className
=
"
action-btn W
"
>
<
VscReport
onClick
=
{()
=>
{
setName
(
"
Rejection
"
);
setDescription
(
item
.
rejectMassage
);
setTrigger
(
true
);
}}
/
>
<
/button
>
<
Popup
trigger
=
{
Trigger
}
name
=
{
Name
}
description
=
{
Description
}
setTrigger
=
{
setTrigger
}
id
=
{
Id
}
item
=
{
ItemName
}
/
>
<
/
>
)
:
(
""
)}
<
/td
>
<
td
>
{
item
.
DeliveryStatus
===
"
submitted
"
?
(
<
div
onClick
=
{()
=>
{
setName
(
"
GoodsReceipt
"
);
setId
(
item
.
_id
);
setItemName
(
item
.
itemName
);
setTrigger
(
true
);
}}
>
<
Badge
type
=
"
normal
"
content
=
"
view
"
/>
<
/div
>
)
:
(
""
)}
<
/td
>
<
/tr
>
);
return
(
<
div
>
<
Sidebar
/>
<
div
id
=
"
main
"
className
=
"
layout__content
"
>
<
TopNav
/>
<
div
className
=
"
layout__content-main
"
>
<
h1
className
=
"
page-header
"
>
CTSE
Module
Assignments
<
/h1
>
<
h1
className
=
"
page-header
"
>
Module
Assignments
<
/h1
>
<
div
className
=
"
row
"
>
<
div
className
=
"
col-12
"
>
<
div
className
=
"
card
"
>
<
div
className
=
"
flex
"
>
<
h2
className
=
"
request-title
"
>
Asignment
01
<
/h2
>
<
h2
className
=
"
request-title
"
>
{
assignment
.
title
}
<
/h2
>
<
/div
>
<
br
/>
<
h3
>
Analyze
the
case
study
given
below
and
draw
a
usecase
diagram
.
<
/h3
>
<
br
/>
<
p
>
“
GlamourFashions
(
GF
)
”
is
a
clothing
store
situated
in
Colombo
and
it
’
s
planning
to
build
an
online
shopping
system
to
promote
their
sales
further
.
The
management
of
clothing
store
hired
you
as
a
System
Analyst
and
asked
to
come
up
with
the
design
models
for
GlamourFashions
Online
Store
(
GFOS
).
GlamourFashions
(
GF
)
Online
Clothing
Store
is
expected
to
organize
clothing
items
under
several
categories
like
office
wear
,
casual
wear
,
evening
wear
and
so
on
.
A
visitor
can
browse
on
items
without
being
registering
to
the
system
.
If
he
/
she
likes
to
order
item
,
the
system
facilitates
to
add
selected
items
into
the
shopping
cart
and
directly
move
to
checkout
option
.
If
the
user
interested
to
be
a
regular
user
,
the
system
will
provide
“
registration
”
facility
as
well
.
Without
even
registering
,
the
user
can
directly
go
for
the
“
checkout
”
.
For
a
registered
user
,
the
system
is
expected
to
send
a
promotion
code
for
users
’
mobile
every
month
which
can
be
used
only
once
.
when
the
user
logs
into
the
system
to
do
online
shopping
,
user
can
enter
this
code
which
will
give
a
5
%
discount
for
the
order
he
/
she
makes
.
If
the
user
does
not
use
the
code
within
the
month
,
automatically
the
system
must
“
discard
promotion
code
”
.
If
it
’
s
been
already
used
,
the
system
must
display
a
message
saying
“
it
’
s
already
been
used
”
.
After
adding
the
items
into
a
shopping
cart
,
user
can
select
the
checkout
button
which
gives
two
payment
options
,
Cash
on
Delivery
or
Pay
by
Card
.
Once
the
user
goes
to
the
payment
option
,
the
system
will
display
details
about
the
order
the
customer
has
made
.
It
will
display
the
order
number
,
each
item
details
with
an
image
of
clothing
item
,
total
amount
to
be
paid
.
If
any
item
needs
to
be
removed
from
the
current
order
system
will
facilitate
it
as
well
.
Finally
,
the
system
will
ask
user
to
enter
delivery
details
including
any
comments
which
is
optional
.
Based
on
the
location
to
be
delivered
it
will
indicate
the
delivery
cost
and
final
amount
to
be
paid
for
the
order
.
The
according
to
user
preferences
,
Cash
on
Delivery
or
Pay
by
Card
can
be
selected
.
If
the
user
provides
credit
or
debit
card
details
,
card
information
will
be
verified
using
a
payment
gateway
.
<
/p
>
<
p
>
{
assignment
.
content
}
<
/p
>
<
/div
>
<
/div
>
<
/div
>
...
...
@@ -251,9 +56,7 @@ const StudentSubjectAssingment = () => {
style
=
{{
float
:
"
right
"
}}
accept
=
"
.png, .jpg, .jpeg
"
type
=
"
file
"
onChange
=
{(
e
)
=>
setOrder
({
...
Order
,
quantity
:
e
.
target
.
value
})
}
onChange
=
{(
e
)
=>
console
.
log
(
"
submission
"
)}
required
/>
<
/div
>
...
...
frontend/src/routes/Routes.js
View file @
cf517367
...
...
@@ -2,11 +2,8 @@ import React, { useContext } from "react";
import
{
Route
,
Switch
}
from
"
react-router-dom
"
;
import
Assign
from
"
../pages/Assign
"
;
import
DeliveryReportSubmit
from
"
../pages/DeliveryReportSubmit
"
;
import
Inventory
from
"
../pages/Inventory
"
;
import
Login
from
"
../pages/Login
"
;
import
ManageAllOrders
from
"
../pages/ManageAllOrders
"
;
import
ManageDeliveryReports
from
"
../pages/ManageDeliveryReports
"
;
import
ManageAssignments
from
"
../pages/ManageAssignments
"
;
import
SubjectsStudent
from
"
../pages/SubjectsStudent
"
;
import
ManagerApprovedOrders
from
"
../pages/ManagerApprovedOrders
"
;
...
...
@@ -14,10 +11,7 @@ import TeacherDashboard from "../pages/TeacherDashboard";
import
ManageServices
from
"
../pages/ManageServices
"
;
import
ManageStudents
from
"
../pages/ManageStudents
"
;
import
ManageModules
from
"
../pages/ManageModules
"
;
import
OfficerDashboard
from
"
../pages/OfficerDashboard
"
;
import
OfficerOrders
from
"
../pages/OfficerOrders
"
;
import
Register
from
"
../pages/Register
"
;
import
SiteManagerDashboard
from
"
../pages/SiteManagerDashboard
"
;
import
StudentSubjectAssingment
from
"
../pages/StudentSubjectAssingment
"
;
import
ViewAssignment
from
"
../pages/ViewAssignment
"
;
import
StudentDashboard
from
"
../pages/StudentDashboard
"
;
...
...
@@ -36,18 +30,42 @@ const Routes = () => {
<
Route
exact
path
=
"
/register
"
component
=
{
Register
}
/
>
<
Route
exact
path
=
"
/login
"
component
=
{
Login
}
/
>
<
Route
exact
path
=
"
/auth/teacher/dashboard
"
component
=
{
TeacherDashboard
}
/
>
<
Route
exact
path
=
"
/auth/teacher/dashboard
"
component
=
{
TeacherDashboard
}
/
>
<
Route
exact
path
=
"
/auth/teacher/students
"
component
=
{
ManageStudents
}
/
>
<
Route
exact
path
=
"
/auth/teacher/modules
"
component
=
{
ManageModules
}
/
>
<
Route
exact
path
=
"
/auth/teacher/assignments
"
component
=
{
ManageAssignments
}
/
>
<
Route
exact
path
=
"
/auth/teacher/assignments/:id
"
component
=
{
ViewAssignment
}
/
>
<
Route
exact
path
=
"
/auth/teacher/assignments/:id/diagrams
"
component
=
{
GeneratedDiagrams
}
/
>
<
Route
exact
path
=
"
/auth/teacher/assignments
"
component
=
{
ManageAssignments
}
/
>
<
Route
exact
path
=
"
/auth/teacher/assignments/:id
"
component
=
{
ViewAssignment
}
/
>
<
Route
exact
path
=
"
/auth/teacher/assignments/:id/diagrams
"
component
=
{
GeneratedDiagrams
}
/
>
<
Route
exact
path
=
"
/auth/student/dashboard
"
component
=
{
StudentDashboard
}
/
>
<
Route
exact
path
=
"
/auth/student/dashboard
"
component
=
{
StudentDashboard
}
/
>
<
Route
exact
path
=
"
/auth/student/modules
"
component
=
{
SubjectsStudent
}
/
>
<
Route
exact
path
=
"
/auth/student/services
"
component
=
{
ManageServices
}
/
>
<
Route
exact
path
=
"
/auth/student/assignment
"
component
=
{
StudentSubjectAssingment
}
/
>
<
Route
exact
path
=
"
/auth/student/assignment
"
component
=
{
StudentSubjectAssingment
}
/
>
<
/Switch
>
);
};
...
...
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