Skip to content

Commit 71ce2c9

Browse files
committed
24 Oct 2022
1) Installer Update 2) General HTML/CSS/JS update
1 parent b14b846 commit 71ce2c9

34 files changed

+577
-481
lines changed

CB-worker.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
// (A) FILES TO CACHE
2-
const cName = "cb-pwa",
2+
const cName = "iwashere",
33
cFiles = [
4-
"CB-manifest.json",
5-
"assets/ico-512.png",
6-
"assets/favicon.png",
7-
"assets/book.jpg",
8-
"assets/maticon.woff2",
4+
// (A1) BOOTSTRAP
95
"assets/bootstrap.bundle.min.js",
106
"assets/bootstrap.bundle.min.js.map",
117
"assets/bootstrap.min.css",
128
"assets/bootstrap.min.css.map",
9+
// (A2) ICONS + IMAGES
10+
"assets/ico-512.png",
11+
"assets/favicon.png",
12+
"assets/book.jpg",
13+
// (A3) COMMON INTERFACE
14+
"assets/PAGE-cb.js",
1315
"assets/CB-selector.css",
1416
"assets/CB-selector.js",
17+
"assets/maticon.woff2",
18+
"CB-manifest.json",
19+
// (A4) HTML QR CODE + SCANNER
1520
"assets/html5-qrcode.min.js",
1621
"assets/qrcode.min.js",
22+
// (A5) PAGES
1723
"assets/PAGE-account.js",
18-
"assets/PAGE-cb.js",
1924
"assets/PAGE-forgot.js",
2025
"assets/PAGE-login.js",
2126
"assets/A-class.js",
@@ -36,18 +41,13 @@ cFiles = [
3641
];
3742

3843
// (B) CREATE/INSTALL CACHE
39-
self.addEventListener("install", evt => {
40-
evt.waitUntil(
41-
caches.open(cName)
42-
.then(cache => cache.addAll(cFiles))
43-
.catch(err => console.error(err))
44-
);
45-
});
44+
self.addEventListener("install", evt => evt.waitUntil(
45+
caches.open(cName)
46+
.then(cache => cache.addAll(cFiles))
47+
.catch(err => console.error(err))
48+
));
4649

47-
// (C) CACHE STRATEGY
48-
self.addEventListener("fetch", evt => {
49-
// (C1) LOAD FROM CACHE FIRST, FALLBACK TO NETWORK IF NOT FOUND
50-
evt.respondWith(
51-
caches.match(evt.request).then(res => res || fetch(evt.request))
52-
);
53-
});
50+
// (C) LOAD FROM CACHE FIRST, FALLBACK TO NETWORK IF NOT FOUND
51+
self.addEventListener("fetch", evt => evt.respondWith(
52+
caches.match(evt.request).then(res => res || fetch(evt.request))
53+
));

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
## I WAS HERE
2-
I Was Here is a simple, free, and open-source PHP Student Attendance Management System. Not the best in the world, but it will help small schools to get started quickly without all the hassle.
2+
I Was Here is a simple PHP Student Attendance Management System. This is not a "we have a lot of features that you will never use" system, but a basic one to help smaller schools to get started quickly.
3+
<br><br>
4+
5+
## FEATURES
6+
1) Users management.
7+
2) Take attendance manually, or let students scan a QR code.
8+
3) Progressive web app.
9+
4) CSV reports.
310
<br><br>
411

512
## SCREENSHOTS
@@ -23,16 +30,8 @@ I Was Here is a simple, free, and open-source PHP Student Attendance Management
2330
Just access `http://your-site.com/` in your browser and walk through the installer.
2431
<br><br>
2532

26-
## FEATURES
27-
1) Users management.
28-
2) Attendance management.
29-
3) Built-in QR code scanner.
30-
4) Take attendance by scanning QR code or manual.
31-
5) Progressive web app.
32-
<br><br>
33-
3433
## DOCUMENTATION & FRAMEWORKS
35-
1) Built on [Bootstrap](https://getbootstrap.com/), [Material Icons](https://fonts.google.com/icons), [HTML5 QRCode Scanner](https://github.com/mebjashtml5-qrcode), [QRCodeJS](https://davidshimjs.github.io/qrcodejs/) and [Core Boxx](https://code-boxx.com/core-boxx-php-rapid-development-framework/).
34+
1) Built on [Bootstrap](https://getbootstrap.com/), [Material Icons](https://fonts.google.com/icons), [HTML5 QRCode Scanner](https://github.com/mebjashtml5-qrcode), [QRCodeJS](https://davidshimjs.github.io/qrcodejs/), [PHP-JWT](https://github.com/firebase/php-jwt), and [Core Boxx](https://code-boxx.com/core-boxx-php-rapid-development-framework/).
3635
2) Visit https://code-boxx.com/i-was-here-php-attendance-system/ for the full documentation!
3736
<br><br>
3837

assets/A-class-attend.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@ var attend = {
2121
},
2222

2323
// (B) SHOW CLASS ATTENDANCE
24-
list : () => {
25-
cb.load({
26-
page : "a/class/attend/list",
27-
target : "attend-list",
28-
data : { id : attend.id }
29-
});
30-
},
24+
list : () => cb.load({
25+
page : "a/class/attend/list",
26+
target : "attend-list",
27+
data : { id : attend.id }
28+
}),
3129

3230
// (C) MANUALLY ADD A STUDENT
3331
add : () => {

assets/A-class.js

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,23 @@ var classes = {
3131

3232
// (D) SHOW ADD/EDIT DOCKET
3333
// id : class ID, for edit only
34-
addEdit : id => {
35-
cb.load({
36-
page : "a/class/form",
37-
target : "cb-page-2",
38-
data : { id : id ? id : "" },
39-
onload : () => {
40-
cb.page(1);
41-
selector.attach({
42-
field : document.getElementById("class_course"),
43-
mod : "autocomplete", req : "course",
44-
pick : (d, v) => {
45-
document.getElementById("class_course").value = d;
46-
document.getElementById("class_course_id").value = v;
47-
classes.toggle(true);
48-
}
49-
});
50-
}
51-
});
52-
},
34+
addEdit : id => cb.load({
35+
page : "a/class/form",
36+
target : "cb-page-2",
37+
data : { id : id ? id : "" },
38+
onload : () => {
39+
cb.page(1);
40+
selector.attach({
41+
field : document.getElementById("class_course"),
42+
mod : "autocomplete", req : "course",
43+
pick : (d, v) => {
44+
document.getElementById("class_course").value = d;
45+
document.getElementById("class_course_id").value = v;
46+
classes.toggle(true);
47+
}
48+
});
49+
}
50+
}),
5351

5452
// (E) TOGGLE ADD/EDIT FORM ON SELECTING COURSE
5553
toggle : set => {
@@ -142,15 +140,12 @@ var classes = {
142140

143141
// (G) DELETE CLASS
144142
// id : int, class ID
145-
del : (id) => {
146-
cb.modal("Please confirm", "Attendance records of this class will be lost!", () => {
147-
cb.api({
148-
mod : "classes", req : "del",
149-
data : { id: id },
150-
passmsg : "Class Deleted",
151-
onpass : classes.list
152-
});
153-
});
154-
}
143+
del : id => cb.modal("Please confirm", "Attendance records of this class will be lost!", () => cb.api({
144+
mod : "classes", req : "del",
145+
data : { id: id },
146+
passmsg : "Class Deleted",
147+
onpass : classes.list
148+
}))
149+
155150
};
156151
window.addEventListener("load", classes.list);

assets/A-course-user.js

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,14 @@ var cuser = {
2121
},
2222

2323
// (B) SHOW ALL USERS IN COURSE
24-
list : () => {
25-
cb.load({
26-
page : "a/course/user/list",
27-
target : "course-user-list",
28-
data : {
29-
page : cuser.pg,
30-
id : cuser.id
31-
}
32-
});
33-
},
24+
list : () => cb.load({
25+
page : "a/course/user/list",
26+
target : "course-user-list",
27+
data : {
28+
page : cuser.pg,
29+
id : cuser.id
30+
}
31+
}),
3432

3533
// (C) GO TO PAGE
3634
// pg : int, page number
@@ -62,17 +60,13 @@ var cuser = {
6260

6361
// (E) REMOVE USER FROM COURSE
6462
// id : user id
65-
del : id => {
66-
cb.modal("Please confirm", "User will be removed from the course, but past attendance will be kept.", () => {
67-
cb.api({
68-
mod : "courses", req : "delUser",
69-
data : {
70-
cid : cuser.id,
71-
uid : id
72-
},
73-
passmsg : "User removed from course",
74-
onpass : cuser.list
75-
});
76-
});
77-
}
63+
del : id => cb.modal("Please confirm", "User will be removed from the course, but past attendance will be kept.", () => cb.api({
64+
mod : "courses", req : "delUser",
65+
data : {
66+
cid : cuser.id,
67+
uid : id
68+
},
69+
passmsg : "User removed from course",
70+
onpass : cuser.list
71+
}))
7872
};

assets/A-course.js

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,12 @@ var course = {
3131

3232
// (D) SHOW ADD/EDIT DOCKET
3333
// id : course ID, for edit only
34-
addEdit : id => {
35-
cb.load({
36-
page : "a/course/form",
37-
target : "cb-page-2",
38-
data : { id : id ? id : "" },
39-
onload : () => { cb.page(1); }
40-
});
41-
},
34+
addEdit : id => cb.load({
35+
page : "a/course/form",
36+
target : "cb-page-2",
37+
data : { id : id ? id : "" },
38+
onload : () => cb.page(1)
39+
}),
4240

4341
// (E) SAVE COURSE
4442
save : () => {
@@ -65,15 +63,11 @@ var course = {
6563

6664
// (F) DELETE COURSE
6765
// id : int, course ID
68-
del : id => {
69-
cb.modal("Please confirm", "All course data and attendance will be lost!", () => {
70-
cb.api({
71-
mod : "courses", req : "del",
72-
data : { id: id },
73-
passmsg : "Course Deleted",
74-
onpass : course.list
75-
});
76-
});
77-
}
66+
del : id => cb.modal("Please confirm", "All course data and attendance will be lost!", () => cb.api({
67+
mod : "courses", req : "del",
68+
data : { id: id },
69+
passmsg : "Course Deleted",
70+
onpass : course.list
71+
}))
7872
};
7973
window.addEventListener("load", course.list);

assets/A-reports.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
window.addEventListener("load", () => {
2-
selector.attach({
3-
field : document.getElementById("attend-course"),
4-
mod : "autocomplete", req : "course",
5-
pick : (d, v) => {
6-
document.getElementById("attend-course").value = "";
7-
document.getElementById("attend-id").value = v;
8-
document.getElementById("report-attend").submit();
9-
}
10-
});
11-
});
1+
window.addEventListener("load", () => selector.attach({
2+
field : document.getElementById("attend-course"),
3+
mod : "autocomplete", req : "course",
4+
pick : (d, v) => {
5+
document.getElementById("attend-course").value = "";
6+
document.getElementById("attend-id").value = v;
7+
document.getElementById("report-attend").submit();
8+
}
9+
}));

assets/A-settings.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function save () {
88
// (B) API CALL
99
cb.api({
1010
mod : "settings", req : "save",
11-
data : {settings: JSON.stringify(data)},
11+
data : { settings: JSON.stringify(data) },
1212
passmsg : "Settings Saved"
1313
});
1414
return false;

assets/A-users.js

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,12 @@ var usr = {
3434

3535
// (D) SHOW ADD/EDIT DOCKET
3636
// id : user ID, for edit only
37-
addEdit : id => {
38-
cb.load({
39-
page : "a/users/form",
40-
target : "cb-page-2",
41-
data : { id : id ? id : "" },
42-
onload : () => { cb.page(1); }
43-
});
44-
},
37+
addEdit : id => cb.load({
38+
page : "a/users/form",
39+
target : "cb-page-2",
40+
data : { id : id ? id : "" },
41+
onload : () => cb.page(1)
42+
}),
4543

4644
// (E) SAVE USER
4745
save : () => {
@@ -73,15 +71,11 @@ var usr = {
7371

7472
// (F) DELETE (INACTIVATE) USER
7573
// id : int, user ID
76-
del : id => {
77-
cb.modal("Suspend User?", "User will no longer be able to sign in, but existing data will be kept.", () => {
78-
cb.api({
79-
mod : "users", req : "del",
80-
data : { id: id },
81-
passmsg : "User Suspended",
82-
onpass : usr.list
83-
});
84-
});
85-
}
74+
del : id => cb.modal("Suspend User?", "User will no longer be able to sign in, but existing data will be kept.", () => cb.api({
75+
mod : "users", req : "del",
76+
data : { id: id },
77+
passmsg : "User Suspended",
78+
onpass : usr.list
79+
}))
8680
};
8781
window.addEventListener("load", usr.list);

assets/S-classes.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@ var classes = {
33
pg : 1, // current page
44
range : "", // search range
55
date : "", // search date
6-
list : () => {
7-
cb.load({
8-
page : "s/class/list",
9-
target : "class-list",
10-
data : {
11-
page : classes.pg,
12-
range : classes.range,
13-
date : classes.date
14-
}
15-
});
16-
},
6+
list : () => cb.load({
7+
page : "s/class/list",
8+
target : "class-list",
9+
data : {
10+
page : classes.pg,
11+
range : classes.range,
12+
date : classes.date
13+
}
14+
}),
1715

1816
// (B) GO TO PAGE
1917
// pg : int, page number

0 commit comments

Comments
 (0)