├── login ├── includes │ ├── sample_format.csv │ ├── auth_validate.php │ ├── flash_messages.php │ ├── footer.php │ └── header.php ├── img │ ├── logo.png │ └── banner.jpg ├── assets │ ├── fonts │ │ ├── font-awesome │ │ │ ├── less │ │ │ │ ├── screen-reader.less │ │ │ │ ├── fixed-width.less │ │ │ │ ├── larger.less │ │ │ │ ├── list.less │ │ │ │ ├── core.less │ │ │ │ ├── stacked.less │ │ │ │ ├── font-awesome.less │ │ │ │ ├── bordered-pulled.less │ │ │ │ ├── rotated-flipped.less │ │ │ │ ├── path.less │ │ │ │ ├── animated.less │ │ │ │ └── mixins.less │ │ │ ├── scss │ │ │ │ ├── _fixed-width.scss │ │ │ │ ├── _screen-reader.scss │ │ │ │ ├── _larger.scss │ │ │ │ ├── _list.scss │ │ │ │ ├── _core.scss │ │ │ │ ├── font-awesome.scss │ │ │ │ ├── _stacked.scss │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ ├── _path.scss │ │ │ │ ├── _animated.scss │ │ │ │ └── _mixins.scss │ │ │ ├── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ └── HELP-US-OUT.txt │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── js │ │ ├── npm.js │ │ ├── metisMenu │ │ │ ├── metisMenu.min.css │ │ │ └── metisMenu.min.js │ │ ├── sb-admin-2.js │ │ └── index.js │ └── css │ │ └── sb-admin-2.css ├── logout.php ├── delete_user.php ├── lib │ ├── Costumers │ │ └── Costumers.php │ └── Users │ │ └── Users.php ├── delete_contact.php ├── delete_feedback.php ├── delete_customer.php ├── delete_newsletter.php ├── cookies.php ├── config │ ├── config.php │ └── importcsv.php ├── dcsvcontact.php ├── dcsvnewsletter.php ├── dcsvfeedback.php ├── dcsvcertificate.php ├── add_admin.php ├── authenticate.php ├── forms │ ├── admin_users_form.php │ └── customer_form.php ├── add_customer.php ├── edit_customer.php ├── edit_admin.php ├── helpers │ └── helpers.php ├── login.php ├── feedback.php ├── contact.php ├── newsletter.php └── admin_users.php ├── img ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── logo.png ├── certg.png ├── certv.png ├── Vaibhav.jpg ├── Vignesh.jpg └── logo │ └── favicon │ ├── favicon.ico │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── apple-touch-icon.png │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ └── site.webmanifest ├── debug.log ├── assets ├── img │ ├── why-us.jpg │ ├── header-bg.psd │ ├── testimonial-1.jpg │ ├── testimonial-2.jpg │ ├── testimonial-3.jpg │ ├── testimonial-4.jpg │ ├── features-1.svg │ └── features-2.svg ├── vendor │ ├── ionicons │ │ └── fonts │ │ │ ├── ionicons.eot │ │ │ ├── ionicons.ttf │ │ │ └── ionicons.woff │ ├── font-awesome │ │ └── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ ├── owl.carousel │ │ ├── assets │ │ │ ├── ajax-loader.gif │ │ │ ├── owl.video.play.png │ │ │ ├── owl.theme.default.min.css │ │ │ ├── owl.theme.green.min.css │ │ │ ├── owl.theme.green.css │ │ │ ├── owl.theme.default.css │ │ │ ├── owl.carousel.min.css │ │ │ └── owl.carousel.css │ │ ├── LICENSE │ │ └── README.md │ ├── php-email-form │ │ ├── changelog.txt │ │ └── validate.js │ ├── mobile-nav │ │ └── mobile-nav.js │ ├── counterup │ │ └── counterup.min.js │ ├── jquery.easing │ │ └── jquery.easing.min.js │ └── bootstrap │ │ └── css │ │ ├── bootstrap-reboot.min.css │ │ └── bootstrap-reboot.css └── js │ └── main.js ├── config ├── config.php ├── configverify.php ├── db.php ├── functionsverify.php └── functions.php ├── js └── script.js ├── contact.php ├── feedback.php ├── newsletter.php ├── cookie.html ├── README.md ├── SQL └── cgv.sql ├── css └── style.css ├── certg.php └── certv.php /login/includes/sample_format.csv: -------------------------------------------------------------------------------- 1 | Vignesh,Shetty,Male,369,Python,96,"SJEC, MANGALORE" 2 | -------------------------------------------------------------------------------- /img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/1.png -------------------------------------------------------------------------------- /img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/2.png -------------------------------------------------------------------------------- /img/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/3.png -------------------------------------------------------------------------------- /img/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/4.png -------------------------------------------------------------------------------- /img/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/5.png -------------------------------------------------------------------------------- /img/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/6.png -------------------------------------------------------------------------------- /img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/logo.png -------------------------------------------------------------------------------- /img/certg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/certg.png -------------------------------------------------------------------------------- /img/certv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/certv.png -------------------------------------------------------------------------------- /img/Vaibhav.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/Vaibhav.jpg -------------------------------------------------------------------------------- /img/Vignesh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/Vignesh.jpg -------------------------------------------------------------------------------- /debug.log: -------------------------------------------------------------------------------- 1 | [1114/131325.290:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3) 2 | -------------------------------------------------------------------------------- /login/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/img/logo.png -------------------------------------------------------------------------------- /assets/img/why-us.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/img/why-us.jpg -------------------------------------------------------------------------------- /login/img/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/img/banner.jpg -------------------------------------------------------------------------------- /assets/img/header-bg.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/img/header-bg.psd -------------------------------------------------------------------------------- /assets/img/testimonial-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/img/testimonial-1.jpg -------------------------------------------------------------------------------- /assets/img/testimonial-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/img/testimonial-2.jpg -------------------------------------------------------------------------------- /assets/img/testimonial-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/img/testimonial-3.jpg -------------------------------------------------------------------------------- /assets/img/testimonial-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/img/testimonial-4.jpg -------------------------------------------------------------------------------- /img/logo/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/logo/favicon/favicon.ico -------------------------------------------------------------------------------- /config/config.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/logo/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/logo/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /img/logo/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/logo/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /img/logo/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/logo/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /config/configverify.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/vendor/ionicons/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/ionicons/fonts/ionicons.eot -------------------------------------------------------------------------------- /assets/vendor/ionicons/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/ionicons/fonts/ionicons.ttf -------------------------------------------------------------------------------- /assets/vendor/ionicons/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/ionicons/fonts/ionicons.woff -------------------------------------------------------------------------------- /js/script.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | $('.print').click(function(){ 3 | $(this).hide(); 4 | window.print(); 5 | $(this).show(); 6 | }); 7 | 8 | }); -------------------------------------------------------------------------------- /img/logo/favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/logo/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /img/logo/favicon/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/img/logo/favicon/android-chrome-512x512.png -------------------------------------------------------------------------------- /assets/vendor/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/assets/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/owl.carousel/assets/ajax-loader.gif -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/assets/owl.video.play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/owl.carousel/assets/owl.video.play.png -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /login/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /login/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /login/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /login/assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /assets/vendor/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/vendor/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/vendor/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/vendor/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only(); } 5 | .sr-only-focusable { @include sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vigneshshettyin/Online-Certificate-Generation-Verification/HEAD/login/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /login/logout.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/logo/favicon/site.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /login/includes/auth_validate.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/vendor/php-email-form/changelog.txt: -------------------------------------------------------------------------------- 1 | Version: 2.0 2 | - The minimum required PHP version is 5.5 3 | - Improved error handling and debugging 4 | - Added support for cc and bcc 5 | - Added "honeypot" spam protection feature 6 | - Added support for Google reCaptcha spam protection 7 | 8 | Version: 1.0 9 | - Initial Release 10 | 11 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /login/assets/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | @import "screen-reader"; 19 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | @import "screen-reader.less"; 19 | -------------------------------------------------------------------------------- /login/delete_user.php: -------------------------------------------------------------------------------- 1 | where('id', $del_id); 18 | $stat = $db->delete('admin_accounts'); 19 | if ($stat) { 20 | $_SESSION['info'] = "User deleted successfully!"; 21 | header('location: admin_users.php'); 22 | exit; 23 | } 24 | } -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /contact.php: -------------------------------------------------------------------------------- 1 | 2 | connect_error){ 10 | die('Connection Failed : '.$con->connect_error); 11 | }else{ 12 | $stmt = $con->prepare("insert into contact(name, email_id, phone, response) 13 | values(?, ?, ?, ?)"); 14 | $stmt->bind_param("ssss",$fName, $contactEmail, $contactMessage, $contactPhone); 15 | $stmt->execute(); 16 | echo "Your message has been sent. Thank you!"; 17 | $stmt->close(); 18 | $con->close(); 19 | } 20 | 21 | ?> -------------------------------------------------------------------------------- /login/assets/js/metisMenu/metisMenu.min.css: -------------------------------------------------------------------------------- 1 | /* 2 | * metismenu - v1.1.3 3 | * Easy menu jQuery plugin for Twitter Bootstrap 3 4 | * https://github.com/onokumus/metisMenu 5 | * 6 | * Made by Osman Nuri Okumus 7 | * Under MIT License 8 | */ 9 | 10 | .arrow{float:right;line-height:1.42857}.glyphicon.arrow:before{content:"\e079"}.active>a>.glyphicon.arrow:before{content:"\e114"}.fa.arrow:before{content:"\f104"}.active>a>.fa.arrow:before{content:"\f107"}.plus-times{float:right}.fa.plus-times:before{content:"\f067"}.active>a>.fa.plus-times{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.plus-minus{float:right}.fa.plus-minus:before{content:"\f067"}.active>a>.fa.plus-minus:before{content:"\f068"} -------------------------------------------------------------------------------- /login/lib/Costumers/Costumers.php: -------------------------------------------------------------------------------- 1 | 'ID', 25 | 'f_name' => 'First Name', 26 | 'l_name' => 'Last Name', 27 | 'certificate_number' =>'Certificate Number', 28 | 'training_name' => 'Training Name', 29 | 'college_name' => 'Organization Name' 30 | // 'updated_at' => 'Updated at' 31 | ]; 32 | 33 | return $ordering; 34 | } 35 | } 36 | ?> 37 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /login/assets/js/sb-admin-2.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - SB Admin 2 v3.3.7+1 (http://startbootstrap.com/template-overviews/sb-admin-2) 3 | * Copyright 2013-2016 Start Bootstrap 4 | * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE) 5 | */ 6 | $(function(){$("#side-menu").metisMenu()}),$(function(){$(window).bind("load resize",function(){var i=50,n=this.window.innerWidth>0?this.window.innerWidth:this.screen.width;n<768?($("div.navbar-collapse").addClass("collapse"),i=100):$("div.navbar-collapse").removeClass("collapse");var e=(this.window.innerHeight>0?this.window.innerHeight:this.screen.height)-1;e-=i,e<1&&(e=1),e>i&&$("#page-wrapper").css("min-height",e+"px")});for(var i=window.location,n=$("ul.nav a").filter(function(){return this.href==i}).addClass("active").parent();;){if(!n.is("li"))break;n=n.parent().addClass("in").parent()}}); -------------------------------------------------------------------------------- /feedback.php: -------------------------------------------------------------------------------- 1 | 2 | connect_error){ 11 | die('Connection Failed : '.$con->connect_error); 12 | }else{ 13 | $stmt = $con->prepare("insert into feedback(name, email_id, phone, rating, feedback) 14 | values(?, ?, ?, ?, ?)"); 15 | $stmt->bind_param("sssss",$fName, $contactEmail,$contactMessage, $rating, $contactPhone); 16 | $stmt->execute(); 17 | echo "Your feedback has been sent. Thank you!"; 18 | $stmt->close(); 19 | $con->close(); 20 | } 21 | 22 | ?> -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /newsletter.php: -------------------------------------------------------------------------------- 1 | 2 | connect_error){ 11 | die('Connection Failed : '.$con->connect_error); 12 | }else{ 13 | $stmt = $con->prepare("insert into newsletter(contactemail, country, city, ip) 14 | values(?, ?, ?, ?)"); 15 | $stmt->bind_param("ssss",$contactEmail, $country, $city, $user_ip); 16 | $stmt->execute(); 17 | echo "Your successfully subscribed. Thank you!"; 18 | $stmt->close(); 19 | $con->close(); 20 | } 21 | 22 | ?> -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /login/delete_contact.php: -------------------------------------------------------------------------------- 1 | where('id', $customer_id); 19 | $status = $db->delete('contact'); 20 | 21 | if ($status) 22 | { 23 | $_SESSION['info'] = "Success!"; 24 | header('location: contact.php'); 25 | exit; 26 | } 27 | else 28 | { 29 | $_SESSION['failure'] = "Failed!"; 30 | header('location: contact.php'); 31 | exit; 32 | 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /login/delete_feedback.php: -------------------------------------------------------------------------------- 1 | where('id', $customer_id); 19 | $status = $db->delete('feedback'); 20 | 21 | if ($status) 22 | { 23 | $_SESSION['info'] = "Success!"; 24 | header('location: feedback.php'); 25 | exit; 26 | } 27 | else 28 | { 29 | $_SESSION['failure'] = "Failed!"; 30 | header('location: feedback.php'); 31 | exit; 32 | 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /login/lib/Users/Users.php: -------------------------------------------------------------------------------- 1 | 'ID', 32 | 'user_name' => 'Username', 33 | 'admin_type' => 'Admin Type' 34 | ]; 35 | 36 | return $ordering; 37 | } 38 | } 39 | ?> 40 | -------------------------------------------------------------------------------- /login/delete_customer.php: -------------------------------------------------------------------------------- 1 | where('id', $customer_id); 19 | $status = $db->delete('customers'); 20 | 21 | if ($status) 22 | { 23 | $_SESSION['info'] = "Success!"; 24 | header('location: customers.php'); 25 | exit; 26 | } 27 | else 28 | { 29 | $_SESSION['failure'] = "Failed!"; 30 | header('location: customers.php'); 31 | exit; 32 | 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /login/delete_newsletter.php: -------------------------------------------------------------------------------- 1 | where('id', $customer_id); 19 | $status = $db->delete('newsletter'); 20 | 21 | if ($status) 22 | { 23 | $_SESSION['info'] = "Success!"; 24 | header('location: newsletter.php'); 25 | exit; 26 | } 27 | else 28 | { 29 | $_SESSION['failure'] = "Failed!"; 30 | header('location: newsletter.php'); 31 | exit; 32 | 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /login/includes/flash_messages.php: -------------------------------------------------------------------------------- 1 | 6 | × 7 | Success! '. $_SESSION['success'].' 8 | '; 9 | unset($_SESSION['success']); 10 | } 11 | 12 | if(isset($_SESSION['failure'])) 13 | { 14 | echo '
15 | × 16 | Oops! '. $_SESSION['failure'].' 17 |
'; 18 | unset($_SESSION['failure']); 19 | } 20 | 21 | if(isset($_SESSION['info'])) 22 | { 23 | echo '
24 | × 25 | '. $_SESSION['info'].' 26 |
'; 27 | unset($_SESSION['info']); 28 | } 29 | 30 | ?> -------------------------------------------------------------------------------- /config/db.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /login/cookies.php: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 |
16 |
17 |
18 |

Cookies Report

19 |
20 |
21 | 22 |
23 |
24 |
25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/assets/owl.theme.default.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/assets/owl.theme.green.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#4DC7A0;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#4DC7A0} -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Owl 2 | Modified work Copyright 2016-2018 David Deutsch 3 | 4 | Permission is hereby granted, free of charge, to any person 5 | obtaining a copy of this software and associated documentation 6 | files (the "Software"), to deal in the Software without 7 | restriction, including without limitation the rights to use, 8 | copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /login/config/config.php: -------------------------------------------------------------------------------- 1 | connect_error) { 40 | die("Connection failed: " . $conn->connect_error); 41 | } 42 | 43 | mysqli_select_db($conn, DB_NAME); -------------------------------------------------------------------------------- /login/dcsvcontact.php: -------------------------------------------------------------------------------- 1 | query("SELECT * FROM contact ORDER BY id ASC"); 7 | 8 | if($query->num_rows > 0){ 9 | $delimiter = ","; 10 | $filename = "contact_" . date('Y-m-d') . ".csv"; 11 | 12 | //create a file pointer 13 | $f = fopen('php://memory', 'w'); 14 | 15 | //set column headers 16 | $fields = array('ID ', 'NAME', 'EMAIL ID', 'PHONE', 'RESPONSE'); 17 | fputcsv($f, $fields, $delimiter); 18 | 19 | //output each row of the data, format line as csv and write to file pointer 20 | while($row = $query->fetch_assoc()){ 21 | // $status = ($row['status'] == '1')?'Active':'Inactive'; ( (, $status) pass in $lineData ) 22 | $lineData = array($row['id'], $row['name'], $row['email_id'], $row['phone'], $row['response']); 23 | fputcsv($f, $lineData, $delimiter); 24 | } 25 | 26 | //move back to beginning of file 27 | fseek($f, 0); 28 | 29 | //set headers to download file rather than displayed 30 | header('Content-Type: text/csv'); 31 | header('Content-Disposition: attachment; filename="' . $filename . '";'); 32 | 33 | //output all remaining data on a file pointer 34 | fpassthru($f); 35 | } 36 | if($query->num_rows == 0){ 37 | echo 'No Data Found!'; 38 | } 39 | exit; 40 | 41 | ?> -------------------------------------------------------------------------------- /login/dcsvnewsletter.php: -------------------------------------------------------------------------------- 1 | query("SELECT * FROM newsletter ORDER BY id ASC"); 7 | 8 | if($query->num_rows > 0){ 9 | $delimiter = ","; 10 | $filename = "newsletter_" . date('Y-m-d') . ".csv"; 11 | 12 | //create a file pointer 13 | $f = fopen('php://memory', 'w'); 14 | 15 | //set column headers 16 | $fields = array('ID ', 'CONTACT EMAIL', 'COUNTRY', 'CITY', 'IP'); 17 | fputcsv($f, $fields, $delimiter); 18 | 19 | //output each row of the data, format line as csv and write to file pointer 20 | while($row = $query->fetch_assoc()){ 21 | // $status = ($row['status'] == '1')?'Active':'Inactive'; ( (, $status) pass in $lineData ) 22 | $lineData = array($row['id'], $row['contactEmail'], $row['country'], $row['city'], $row['ip']); 23 | fputcsv($f, $lineData, $delimiter); 24 | } 25 | 26 | //move back to beginning of file 27 | fseek($f, 0); 28 | 29 | //set headers to download file rather than displayed 30 | header('Content-Type: text/csv'); 31 | header('Content-Disposition: attachment; filename="' . $filename . '";'); 32 | 33 | //output all remaining data on a file pointer 34 | fpassthru($f); 35 | } 36 | if($query->num_rows == 0){ 37 | echo 'No Data Found!'; 38 | } 39 | exit; 40 | 41 | ?> -------------------------------------------------------------------------------- /login/dcsvfeedback.php: -------------------------------------------------------------------------------- 1 | query("SELECT * FROM feedback ORDER BY id ASC"); 7 | 8 | if($query->num_rows > 0){ 9 | $delimiter = ","; 10 | $filename = "feedback_" . date('Y-m-d') . ".csv"; 11 | 12 | //create a file pointer 13 | $f = fopen('php://memory', 'w'); 14 | 15 | //set column headers 16 | $fields = array('ID ', 'NAME', 'EMAIL ID', 'PHONE', 'FEEDBACK', 'RATING'); 17 | fputcsv($f, $fields, $delimiter); 18 | 19 | //output each row of the data, format line as csv and write to file pointer 20 | while($row = $query->fetch_assoc()){ 21 | // $status = ($row['status'] == '1')?'Active':'Inactive'; ( (, $status) pass in $lineData ) 22 | $lineData = array($row['id'], $row['name'], $row['email_id'], $row['phone'], $row['feedback'], $row['rating']); 23 | fputcsv($f, $lineData, $delimiter); 24 | } 25 | 26 | //move back to beginning of file 27 | fseek($f, 0); 28 | 29 | //set headers to download file rather than displayed 30 | header('Content-Type: text/csv'); 31 | header('Content-Disposition: attachment; filename="' . $filename . '";'); 32 | 33 | //output all remaining data on a file pointer 34 | fpassthru($f); 35 | } 36 | if($query->num_rows == 0){ 37 | echo 'No Data Found!'; 38 | } 39 | exit; 40 | 41 | ?> -------------------------------------------------------------------------------- /login/includes/footer.php: -------------------------------------------------------------------------------- 1 |

Made with in CGV

2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /login/config/importcsv.php: -------------------------------------------------------------------------------- 1 | 27 | 28 | 29 | CSV 30 | 31 | 32 |
33 | Upload CSV: 34 |
35 | 36 | -------------------------------------------------------------------------------- /assets/vendor/mobile-nav/mobile-nav.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | "use strict"; 3 | 4 | // Mobile Navigation 5 | if ($('.main-nav').length) { 6 | var $mobile_nav = $('.main-nav').clone().prop({ 7 | class: 'mobile-nav d-lg-none' 8 | }); 9 | $('body').append($mobile_nav); 10 | $('body').prepend(''); 11 | $('body').append('
'); 12 | 13 | $(document).on('click', '.mobile-nav-toggle', function(e) { 14 | $('body').toggleClass('mobile-nav-active'); 15 | $('.mobile-nav-toggle i').toggleClass('fa-times fa-bars'); 16 | $('.mobile-nav-overly').toggle(); 17 | }); 18 | 19 | $(document).on('click', '.mobile-nav .drop-down > a', function(e) { 20 | e.preventDefault(); 21 | $(this).next().slideToggle(300); 22 | $(this).parent().toggleClass('active'); 23 | }); 24 | 25 | $(document).click(function(e) { 26 | var container = $(".mobile-nav, .mobile-nav-toggle"); 27 | if (!container.is(e.target) && container.has(e.target).length === 0) { 28 | if ($('body').hasClass('mobile-nav-active')) { 29 | $('body').removeClass('mobile-nav-active'); 30 | $('.mobile-nav-toggle i').toggleClass('fa-times fa-bars'); 31 | $('.mobile-nav-overly').fadeOut(); 32 | } 33 | } 34 | }); 35 | } else if ($(".mobile-nav, .mobile-nav-toggle").length) { 36 | $(".mobile-nav, .mobile-nav-toggle").hide(); 37 | } 38 | 39 | })(jQuery); 40 | -------------------------------------------------------------------------------- /cookie.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Cookie Report | CGV 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 47 | -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/assets/owl.theme.green.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | /* 7 | * Green theme - Owl Carousel CSS File 8 | */ 9 | .owl-theme .owl-nav { 10 | margin-top: 10px; 11 | text-align: center; 12 | -webkit-tap-highlight-color: transparent; } 13 | .owl-theme .owl-nav [class*='owl-'] { 14 | color: #FFF; 15 | font-size: 14px; 16 | margin: 5px; 17 | padding: 4px 7px; 18 | background: #D6D6D6; 19 | display: inline-block; 20 | cursor: pointer; 21 | border-radius: 3px; } 22 | .owl-theme .owl-nav [class*='owl-']:hover { 23 | background: #4DC7A0; 24 | color: #FFF; 25 | text-decoration: none; } 26 | .owl-theme .owl-nav .disabled { 27 | opacity: 0.5; 28 | cursor: default; } 29 | 30 | .owl-theme .owl-nav.disabled + .owl-dots { 31 | margin-top: 10px; } 32 | 33 | .owl-theme .owl-dots { 34 | text-align: center; 35 | -webkit-tap-highlight-color: transparent; } 36 | .owl-theme .owl-dots .owl-dot { 37 | display: inline-block; 38 | zoom: 1; 39 | *display: inline; } 40 | .owl-theme .owl-dots .owl-dot span { 41 | width: 10px; 42 | height: 10px; 43 | margin: 5px 7px; 44 | background: #D6D6D6; 45 | display: block; 46 | -webkit-backface-visibility: visible; 47 | transition: opacity 200ms ease; 48 | border-radius: 30px; } 49 | .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { 50 | background: #4DC7A0; } 51 | -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/assets/owl.theme.default.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | /* 7 | * Default theme - Owl Carousel CSS File 8 | */ 9 | .owl-theme .owl-nav { 10 | margin-top: 10px; 11 | text-align: center; 12 | -webkit-tap-highlight-color: transparent; } 13 | .owl-theme .owl-nav [class*='owl-'] { 14 | color: #FFF; 15 | font-size: 14px; 16 | margin: 5px; 17 | padding: 4px 7px; 18 | background: #D6D6D6; 19 | display: inline-block; 20 | cursor: pointer; 21 | border-radius: 3px; } 22 | .owl-theme .owl-nav [class*='owl-']:hover { 23 | background: #869791; 24 | color: #FFF; 25 | text-decoration: none; } 26 | .owl-theme .owl-nav .disabled { 27 | opacity: 0.5; 28 | cursor: default; } 29 | 30 | .owl-theme .owl-nav.disabled + .owl-dots { 31 | margin-top: 10px; } 32 | 33 | .owl-theme .owl-dots { 34 | text-align: center; 35 | -webkit-tap-highlight-color: transparent; } 36 | .owl-theme .owl-dots .owl-dot { 37 | display: inline-block; 38 | zoom: 1; 39 | *display: inline; } 40 | .owl-theme .owl-dots .owl-dot span { 41 | width: 10px; 42 | height: 10px; 43 | margin: 5px 7px; 44 | background: #D6D6D6; 45 | display: block; 46 | -webkit-backface-visibility: visible; 47 | transition: opacity 200ms ease; 48 | border-radius: 30px; } 49 | .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { 50 | background: #869791; } 51 | -------------------------------------------------------------------------------- /config/functionsverify.php: -------------------------------------------------------------------------------- 1 | 21 |

Certificate number is valid

22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
Name'.$result['f_name'] . ' ' . $result['l_name'].'
Training name'.$result['training_name'].'
Organization name'.$result['college_name'].'
Date of certification'.$result['created_at'].'
45 | 46 | 47 | '; 48 | } else { 49 | echo '
50 |

Certificate number is invalid

51 |
'; 52 | } 53 | 54 | } 55 | } 56 | 57 | ?> -------------------------------------------------------------------------------- /login/dcsvcertificate.php: -------------------------------------------------------------------------------- 1 | query("SELECT * FROM customers ORDER BY id ASC"); 7 | 8 | if($query->num_rows > 0){ 9 | $delimiter = ","; 10 | $filename = "certificate_" . date('Y-m-d') . ".csv"; 11 | 12 | //create a file pointer 13 | $f = fopen('php://memory', 'w'); 14 | 15 | //set column headers 16 | $fields = array('ID ', 'FIRST NAME', 'LAST NAME', 'GENDER', 'ADDRESS', 'CITY', 'STATE', 'PHONE', 'EMAIL', 'CERTIFICATE NUMBER', 'TRAINING NAME', 'MARKS', 'ORGANIZATION NAME', 'DATE OF BIRTH', 'CREATED AT'); 17 | fputcsv($f, $fields, $delimiter); 18 | 19 | //output each row of the data, format line as csv and write to file pointer 20 | while($row = $query->fetch_assoc()){ 21 | // $status = ($row['status'] == '1')?'Active':'Inactive'; ( (, $status) pass in $lineData ) 22 | $lineData = array($row['id'], $row['f_name'], $row['l_name'], $row['gender'], $row['address'],$row['city'], $row['state'], $row['phone'], $row['email'], $row['certificate_number'], $row['training_name'], $row['marks'], $row['college_name'], $row['date_of_birth'], $row['created_at']); 23 | fputcsv($f, $lineData, $delimiter); 24 | } 25 | 26 | //move back to beginning of file 27 | fseek($f, 0); 28 | 29 | //set headers to download file rather than displayed 30 | header('Content-Type: text/csv'); 31 | header('Content-Disposition: attachment; filename="' . $filename . '";'); 32 | 33 | //output all remaining data on a file pointer 34 | fpassthru($f); 35 | } 36 | if($query->num_rows == 0){ 37 | echo 'No Data Found!'; 38 | } 39 | exit; 40 | 41 | ?> -------------------------------------------------------------------------------- /login/add_admin.php: -------------------------------------------------------------------------------- 1 | where('user_name', $data_to_db['user_name']); 21 | $db->get('admin_accounts'); 22 | 23 | if ($db->count >= 1) 24 | { 25 | $_SESSION['failure'] = 'Username already exists'; 26 | header('location: add_admin.php'); 27 | exit; 28 | } 29 | 30 | // Encrypting the password 31 | $data_to_db['password'] = password_hash($data_to_db['password'], PASSWORD_DEFAULT); 32 | // Reset db instance 33 | $db = getDbInstance(); 34 | $last_id = $db->insert('admin_accounts', $data_to_db); 35 | 36 | if ($last_id) 37 | { 38 | $_SESSION['success'] = 'Admin user added successfully'; 39 | header('location: admin_users.php'); 40 | exit; 41 | } 42 | } 43 | ?> 44 | 45 |
46 |
47 |
48 | 49 |
50 |
51 | 52 |
53 | 54 |
55 |
56 | 57 | -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | .sr-only() { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | .sr-only-focusable() { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /login/assets/js/metisMenu/metisMenu.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * metismenu - v1.1.3 3 | * Easy menu jQuery plugin for Twitter Bootstrap 3 4 | * https://github.com/onokumus/metisMenu 5 | * 6 | * Made by Osman Nuri Okumus 7 | * Under MIT License 8 | */ 9 | !function(a,b,c){function d(b,c){this.element=a(b),this.settings=a.extend({},f,c),this._defaults=f,this._name=e,this.init()}var e="metisMenu",f={toggle:!0,doubleTapToGo:!1};d.prototype={init:function(){var b=this.element,d=this.settings.toggle,f=this;this.isIE()<=9?(b.find("li.active").has("ul").children("ul").collapse("show"),b.find("li").not(".active").has("ul").children("ul").collapse("hide")):(b.find("li.active").has("ul").children("ul").addClass("collapse in"),b.find("li").not(".active").has("ul").children("ul").addClass("collapse")),f.settings.doubleTapToGo&&b.find("li.active").has("ul").children("a").addClass("doubleTapToGo"),b.find("li").has("ul").children("a").on("click."+e,function(b){return b.preventDefault(),f.settings.doubleTapToGo&&f.doubleTapToGo(a(this))&&"#"!==a(this).attr("href")&&""!==a(this).attr("href")?(b.stopPropagation(),void(c.location=a(this).attr("href"))):(a(this).parent("li").toggleClass("active").children("ul").collapse("toggle"),void(d&&a(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide")))})},isIE:function(){for(var a,b=3,d=c.createElement("div"),e=d.getElementsByTagName("i");d.innerHTML="",e[0];)return b>4?b:a},doubleTapToGo:function(a){var b=this.element;return a.hasClass("doubleTapToGo")?(a.removeClass("doubleTapToGo"),!0):a.parent().children("ul").length?(b.find(".doubleTapToGo").removeClass("doubleTapToGo"),a.addClass("doubleTapToGo"),!1):void 0},remove:function(){this.element.off("."+e),this.element.removeData(e)}},a.fn[e]=function(b){return this.each(function(){var c=a(this);c.data(e)&&c.data(e).remove(),c.data(e,new d(this,b))}),this}}(jQuery,window,document); -------------------------------------------------------------------------------- /login/assets/fonts/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | @mixin sr-only { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | @mixin sr-only-focusable { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /login/authenticate.php: -------------------------------------------------------------------------------- 1 | where('user_name', $username); 15 | $row = $db->getOne('admin_accounts'); 16 | 17 | if ($db->count >= 1) 18 | { 19 | $db_password = $row['password']; 20 | $user_id = $row['id']; 21 | 22 | if (password_verify($password, $db_password)) 23 | { 24 | $_SESSION['user_logged_in'] = TRUE; 25 | $_SESSION['admin_type'] = $row['admin_type']; 26 | $_SESSION['user_id'] = $row['id']; 27 | 28 | if ($remember) 29 | { 30 | $series_id = randomString(16); 31 | $remember_token = getSecureRandomToken(20); 32 | $encryted_remember_token = password_hash($remember_token,PASSWORD_DEFAULT); 33 | 34 | $expiry_time = date('Y-m-d H:i:s', strtotime(' + 30 days')); 35 | $expires = strtotime($expiry_time); 36 | 37 | setcookie('series_id', $series_id, $expires, '/'); 38 | setcookie('remember_token', $remember_token, $expires, '/'); 39 | 40 | $db = getDbInstance(); 41 | $db->where ('id',$user_id); 42 | 43 | $update_remember = array( 44 | 'series_id'=> $series_id, 45 | 'remember_token' => $encryted_remember_token, 46 | 'expires' =>$expiry_time 47 | ); 48 | $db->update('admin_accounts', $update_remember); 49 | } 50 | // Authentication successfull redirect user 51 | header('Location: index.php'); 52 | } 53 | else 54 | { 55 | $_SESSION['login_failure'] = 'Invalid user name or password'; 56 | header('Location: login.php'); 57 | } 58 | exit; 59 | } 60 | else 61 | { 62 | $_SESSION['login_failure'] = 'Invalid user name or password'; 63 | header('Location: login.php'); 64 | exit; 65 | } 66 | } 67 | else 68 | { 69 | die('Method Not allowed'); 70 | } 71 | -------------------------------------------------------------------------------- /login/forms/admin_users_form.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 |
6 | 7 | 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 |
16 | 17 | 18 |
19 |
20 |
21 | 22 |
23 | 24 |
25 |
26 | 30 |
31 |
32 | 35 |
36 |
37 |
38 | 39 |
40 | 41 |
42 | 43 |
44 |
45 | -------------------------------------------------------------------------------- /login/assets/js/index.js: -------------------------------------------------------------------------------- 1 | /* ---- particles.js config ---- */ 2 | 3 | particlesJS("particles-js", { 4 | "particles": { 5 | "number": { 6 | "value": 100, 7 | "density": { 8 | "enable": true, 9 | "value_area":1000 10 | } 11 | }, 12 | "color": { 13 | "value": ["#aa73ff", "#f8c210", "#83d238", "#33b1f8"] 14 | }, 15 | 16 | "shape": { 17 | "type": "circle", 18 | "stroke": { 19 | "width": 0, 20 | "color": "#fff" 21 | }, 22 | "polygon": { 23 | "nb_sides": 5 24 | }, 25 | "image": { 26 | "src": "img/github.svg", 27 | "width": 100, 28 | "height": 100 29 | } 30 | }, 31 | "opacity": { 32 | "value": 0.6, 33 | "random": false, 34 | "anim": { 35 | "enable": false, 36 | "speed": 1, 37 | "opacity_min": 0.1, 38 | "sync": false 39 | } 40 | }, 41 | "size": { 42 | "value": 2, 43 | "random": true, 44 | "anim": { 45 | "enable": false, 46 | "speed": 40, 47 | "size_min": 0.1, 48 | "sync": false 49 | } 50 | }, 51 | "line_linked": { 52 | "enable": true, 53 | "distance": 120, 54 | "color": "#ffffff", 55 | "opacity": 0.4, 56 | "width": 1 57 | }, 58 | }, 59 | "interactivity": { 60 | "detect_on": "canvas", 61 | "events": { 62 | "onhover": { 63 | "enable": true, 64 | "mode": "grab" 65 | }, 66 | "onclick": { 67 | "enable": false 68 | }, 69 | "resize": true 70 | }, 71 | "modes": { 72 | "grab": { 73 | "distance": 140, 74 | "line_linked": { 75 | "opacity": 1 76 | } 77 | }, 78 | "bubble": { 79 | "distance": 400, 80 | "size": 40, 81 | "duration": 2, 82 | "opacity": 8, 83 | "speed": 3 84 | }, 85 | "repulse": { 86 | "distance": 200, 87 | "duration": 0.4 88 | }, 89 | "push": { 90 | "particles_nb": 4 91 | }, 92 | "remove": { 93 | "particles_nb": 2 94 | } 95 | } 96 | }, 97 | "retina_detect": true 98 | }); -------------------------------------------------------------------------------- /login/add_customer.php: -------------------------------------------------------------------------------- 1 | insert('customers', $data_to_db); 18 | 19 | if ($last_id) 20 | { 21 | $_SESSION['success'] = 'Certificate added successfully!'; 22 | // Redirect to the listing page 23 | header('Location: customers.php'); 24 | // Important! Don't execute the rest put the exit/die. 25 | exit(); 26 | } 27 | else 28 | { 29 | echo 'Insert failed: ' . $db->getLastError(); 30 | exit(); 31 | } 32 | } 33 | 34 | // We are using same form for adding and editing. This is a create form so declare $edit = false. 35 | $edit = false; 36 | ?> 37 | 38 |
39 |
40 |
41 | 42 |
43 |
44 | 45 | 46 |
47 | 48 |
49 |
50 | 66 | 67 | -------------------------------------------------------------------------------- /login/edit_customer.php: -------------------------------------------------------------------------------- 1 | where('id', $customer_id); 27 | $stat = $db->update('customers', $data_to_db); 28 | 29 | if ($stat) 30 | { 31 | $_SESSION['success'] = 'Certificate updated successfully!'; 32 | // Redirect to the listing page 33 | header('Location: customers.php'); 34 | // Important! Don't execute the rest put the exit/die. 35 | exit(); 36 | } 37 | } 38 | 39 | // If edit variable is set, we are performing the update operation. 40 | if ($edit) 41 | { 42 | $db->where('id', $customer_id); 43 | // Get data to pre-populate the form. 44 | $customer = $db->getOne('customers'); 45 | } 46 | ?> 47 | 48 |
49 |
50 |
51 | 52 |
53 |
54 | 55 | 56 |
57 | 58 |
59 |
60 | 61 | -------------------------------------------------------------------------------- /assets/vendor/counterup/counterup.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jquery.counterup.js 2.1.0 3 | * 4 | * Copyright 2013, Benjamin Intal http://gambit.ph @bfintal 5 | * Released under the GPL v2 License 6 | * 7 | * Amended by Jeremy Paris, Ciro Mattia Gonano and others 8 | * 9 | * Date: Feb 24, 2017 10 | */ 11 | (function($){"use strict";$.fn.counterUp=function(options){var settings=$.extend({time:400,delay:10,offset:100,beginAt:0,formatter:false,context:"window",callback:function(){}},options),s;return this.each(function(){var $this=$(this),counter={time:$(this).data("counterup-time")||settings.time,delay:$(this).data("counterup-delay")||settings.delay,offset:$(this).data("counterup-offset")||settings.offset,beginAt:$(this).data("counterup-beginat")||settings.beginAt,context:$(this).data("counterup-context")||settings.context};var counterUpper=function(){var nums=[];var divisions=counter.time/counter.delay;var num=$(this).attr("data-num")?$(this).attr("data-num"):$this.text();var isComma=/[0-9]+,[0-9]+/.test(num);num=num.replace(/,/g,"");var decimalPlaces=(num.split(".")[1]||[]).length;if(counter.beginAt>num)counter.beginAt=num;var isTime=/[0-9]+:[0-9]+:[0-9]+/.test(num);if(isTime){var times=num.split(":"),m=1;s=0;while(times.length>0){s+=m*parseInt(times.pop(),10);m*=60}}for(var i=divisions;i>=counter.beginAt/num*divisions;i--){var newNum=parseFloat(num/divisions*i).toFixed(decimalPlaces);if(isTime){newNum=parseInt(s/divisions*i);var hours=parseInt(newNum/3600)%24;var minutes=parseInt(newNum/60)%60;var seconds=parseInt(newNum%60,10);newNum=(hours<10?"0"+hours:hours)+":"+(minutes<10?"0"+minutes:minutes)+":"+(seconds<10?"0"+seconds:seconds)}if(isComma){while(/(\d+)(\d{3})/.test(newNum.toString())){newNum=newNum.toString().replace(/(\d+)(\d{3})/,"$1"+","+"$2")}}if(settings.formatter){newNum=settings.formatter.call(this,newNum)}nums.unshift(newNum)}$this.data("counterup-nums",nums);$this.text(counter.beginAt);var f=function(){if(!$this.data("counterup-nums")){settings.callback.call(this);return}$this.html($this.data("counterup-nums").shift());if($this.data("counterup-nums").length){setTimeout($this.data("counterup-func"),counter.delay)}else{$this.data("counterup-nums",null);$this.data("counterup-func",null);settings.callback.call(this)}};$this.data("counterup-func",f);setTimeout($this.data("counterup-func"),counter.delay)};$this.waypoint(function(direction){counterUpper();this.destroy()},{offset:counter.offset+"%",context:counter.context})})}})(jQuery); 12 | -------------------------------------------------------------------------------- /assets/vendor/jquery.easing/jquery.easing.min.js: -------------------------------------------------------------------------------- 1 | (function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})}); -------------------------------------------------------------------------------- /login/edit_admin.php: -------------------------------------------------------------------------------- 1 | where('user_name', $data_to_db['user_name']); 24 | $db->where('id', $admin_user_id, '!='); 25 | //print_r($data_to_db['user_name']);die(); 26 | $row = $db->getOne('admin_accounts'); 27 | //print_r($data_to_db['user_name']); 28 | //print_r($row); die(); 29 | 30 | if (!empty($row['user_name'])) 31 | { 32 | $_SESSION['failure'] = 'Username already exists'; 33 | $query_string = http_build_query(array( 34 | 'admin_user_id' => $admin_user_id, 35 | 'operation' => $operation, 36 | )); 37 | header('location: edit_admin.php?'.$query_string ); 38 | exit; 39 | } 40 | 41 | $admin_user_id = filter_input(INPUT_GET, 'admin_user_id', FILTER_VALIDATE_INT); 42 | // Encrypting the password 43 | $data_to_db['password'] = password_hash($data_to_db['password'], PASSWORD_DEFAULT); 44 | // Reset db instance 45 | $db = getDbInstance(); 46 | $db->where('id', $admin_user_id); 47 | $stat = $db->update('admin_accounts', $data_to_db); 48 | 49 | if ($stat) 50 | { 51 | $_SESSION['success'] = 'Admin user has been updated successfully'; 52 | } else { 53 | $_SESSION['failure'] = 'Failed to update Admin user: ' . $db->getLastError(); 54 | } 55 | 56 | header('location: admin_users.php'); 57 | exit; 58 | } 59 | 60 | // Select where clause 61 | $db = getDbInstance(); 62 | $db->where('id', $admin_user_id); 63 | 64 | $admin_account = $db->getOne("admin_accounts"); 65 | 66 | // Set values to $row 67 | ?> 68 | 69 |
70 |
71 |
72 | 73 |
74 |
75 | 76 |
77 | 78 |
79 |
80 | 81 | -------------------------------------------------------------------------------- /login/helpers/helpers.php: -------------------------------------------------------------------------------- 1 | '; 72 | 73 | if ($current_page == 1) { 74 | 75 | $html .= '
  • First
  • '; 76 | } else { 77 | $html .= '
  • First
  • '; 78 | } 79 | 80 | // Show pagination links 81 | 82 | //var i = (Number(data.page) > 5 ? Number(data.page) - 4 : 1); 83 | 84 | if ($current_page > 5) { 85 | $i = $current_page - 4; 86 | } else { 87 | $i = 1; 88 | } 89 | 90 | for (; $i <= ($current_page + 4) && ($i <= $total_pages); $i++) { 91 | ($current_page == $i) ? $li_class = ' class="active"' : $li_class = ''; 92 | 93 | $link = $base_url . $http_query; 94 | 95 | $html = $html . '' . $i . ''; 96 | 97 | if ($i == $current_page + 4 && $i < $total_pages) { 98 | 99 | $html = $html . '
  • ...
  • '; 100 | 101 | } 102 | 103 | } 104 | 105 | if ($current_page == $total_pages) { 106 | $html .= '
  • Last
  • '; 107 | } else { 108 | 109 | $html .= '
  • Last
  • '; 110 | } 111 | 112 | $html = $html . ''; 113 | 114 | return $html; 115 | } -------------------------------------------------------------------------------- /login/login.php: -------------------------------------------------------------------------------- 1 | where('series_id', $series_id); 21 | $row = $db->getOne('admin_accounts'); 22 | 23 | if ($db->count >= 1) 24 | { 25 | // User found. verify remember token 26 | if (password_verify($remember_token, $row['remember_token'])) 27 | { 28 | // Verify if expiry time is modified. 29 | $expires = strtotime($row['expires']); 30 | 31 | if (strtotime(date()) > $expires) 32 | { 33 | // Remember Cookie has expired. 34 | clearAuthCookie(); 35 | header('Location: login.php'); 36 | exit; 37 | } 38 | 39 | $_SESSION['user_logged_in'] = TRUE; 40 | $_SESSION['admin_type'] = $row['admin_type']; 41 | header('Location: index.php'); 42 | exit; 43 | } 44 | else 45 | { 46 | clearAuthCookie(); 47 | header('Location: login.php'); 48 | exit; 49 | } 50 | } 51 | else 52 | { 53 | clearAuthCookie(); 54 | header('Location: login.php'); 55 | exit; 56 | } 57 | } 58 | ?> 59 | 60 | 61 | 62 | 63 | 64 |
    65 | 66 |
    67 |

    Dashboard Login

    68 | 95 | -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/assets/owl.carousel.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} -------------------------------------------------------------------------------- /assets/vendor/bootstrap/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.5.0 (https://getbootstrap.com/) 3 | * Copyright 2011-2020 The Bootstrap Authors 4 | * Copyright 2011-2020 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} 8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Online Certificate & Generation Verification Using PHP ⚡️ 2 |                                3 | [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/issues) 4 | [![Forks](https://img.shields.io/github/forks/vigneshshettyin/Online-Certificate-Generation-Verification.svg?logo=github)](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/network/members) 5 | [![Stargazers](https://img.shields.io/github/stars/vigneshshettyin/Online-Certificate-Generation-Verification.svg?logo=github)](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/stargazers) 6 | [![Issues](https://img.shields.io/github/issues/vigneshshettyin/Online-Certificate-Generation-Verification.svg?logo=github)](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/issues) 7 | [![MIT License](https://img.shields.io/github/license/vigneshshettyin/Online-Certificate-Generation-Verification.svg?style=flat-square)](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/blob/master/LICENSE) 8 | [![LinkedIn](https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555)](https://www.linkedin.com/in/vigneshshettyin/) 9 | 10 | Feel free to use it as-is or customize it as much as you want. 11 | 12 | But if you want to **Contribute** and make this much better for other developer have a look at [Issues](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/issues). 13 | 14 | 15 | If you created something awesome and want to contribute then feel free to open Please don't hesitate to open an [Pull Request](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/pulls). 16 | 17 | 18 | ## Getting Started 🚀 19 | 20 | ## How To Use 🔧 21 | 22 | ```bash 23 | # Clone this repository 24 | $ git clone https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification.git 25 | 26 | # Go into the repository 27 | $ cd Online-Certificate-Generation-Verification 28 | 29 | # Install Local Server( WAMP OR XAMPP ) 30 | 31 | #Start development server & open 32 | http://localhost/(location) 33 | ``` 34 | 35 | When you are done with the setup, you should host your website online. 36 | We highly recommend to read through the:
    37 | - [Deploying on AWS EC-2](https://medium.com/@maskaravivek/web-hosting-using-php-and-mysql-on-aws-95bd5df0bd75).
    38 | - [Deploying on Heroku](https://scotch.io/@phalconVee/deploying-a-php-and-mysql-web-app-with-heroku).
    39 | - [Deploying on Azure](https://www.apachefriends.org/docs/hosting-xampp-on-azure.html).
    40 | - [Deploying on Google Cloud](https://medium.com/@kerion7/creating-a-simple-php-application-on-google-app-engine-c75ce5150c30).
    41 | - [Deploying on 000WebHost(FREE)](https://in.000webhost.com/features).
    42 | 43 | 44 | ## Illustrations 45 | - [UnDraw](https://undraw.co/illustrations) 46 | 47 | ## License 📄 48 | 49 | This project is licensed under the GPL-3.0 License. See the [LICENSE](./LICENSE) file for details 50 | 51 | 52 | ## For the Future 53 | If you can help us with these. Please don't hesitate to open a [Pull Request](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/pulls). 54 | 55 | ## Show some ❤️ by starring the repository 56 | 57 |
    58 | 59 | 60 | [![Forkers repo roster for @vigneshshettyin/Flask-Generate-Certificate](https://reporoster.com/forks/vigneshshettyin/Online-Certificate-Generation-Verification)](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/network/members) 61 | 62 | 63 | 64 | 65 | 66 | [![Stargazers repo roster for @vigneshshettyin/Flask-Generate-Certificate](https://reporoster.com/stars/vigneshshettyin/Online-Certificate-Generation-Verification)](https://github.com/vigneshshettyin/Online-Certificate-Generation-Verification/stargazers) 67 | 68 | 69 |
    70 | -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/README.md: -------------------------------------------------------------------------------- 1 | # Owl Carousel 2 2 | 3 | Touch enabled [jQuery](https://jquery.com/) plugin that lets you create a beautiful, responsive carousel slider. **To get started, check out https://owlcarousel2.github.io/OwlCarousel2/.** 4 | 5 | **Notice:** The old Owl Carousel site (owlgraphic [dot] com) is no longer in use. Please delete all references to this in bookmarks and your own products' documentation as it's being used for malicious purposes. 6 | 7 | ## Quick start 8 | 9 | ### Install 10 | 11 | This package can be installed with: 12 | 13 | - [npm](https://www.npmjs.com/package/owl.carousel): `npm install --save owl.carousel` or `yarn add owl.carousel jquery` 14 | - [bower](http://bower.io/search/?q=owl.carousel): `bower install --save owl.carousel` 15 | 16 | Or download the [latest release](https://github.com/OwlCarousel2/OwlCarousel2/releases). 17 | 18 | ### Load 19 | 20 | #### Webpack 21 | 22 | Add jQuery via the "webpack.ProvidePlugin" to your webpack configuration: 23 | 24 | const webpack = require('webpack'); 25 | 26 | //... 27 | plugins: [ 28 | new webpack.ProvidePlugin({ 29 | $: 'jquery', 30 | jQuery: 'jquery', 31 | 'window.jQuery': 'jquery' 32 | }), 33 | ], 34 | //... 35 | 36 | Load the required stylesheet and JS: 37 | 38 | ```js 39 | import 'owl.carousel/dist/assets/owl.carousel.css'; 40 | import 'owl.carousel'; 41 | ``` 42 | 43 | #### Static HTML 44 | 45 | Put the required stylesheet at the [top](https://developer.yahoo.com/performance/rules.html#css_top) of your markup: 46 | 47 | ```html 48 | 49 | ``` 50 | 51 | ```html 52 | 53 | ``` 54 | 55 | **NOTE:** If you want to use the default navigation styles, you will also need to include `owl.theme.default.css`. 56 | 57 | 58 | Put the script at the [bottom](https://developer.yahoo.com/performance/rules.html#js_bottom) of your markup right after jQuery: 59 | 60 | ```html 61 | 62 | 63 | ``` 64 | 65 | ```html 66 | 67 | 68 | ``` 69 | 70 | ### Usage 71 | 72 | Wrap your items (`div`, `a`, `img`, `span`, `li` etc.) with a container element (`div`, `ul` etc.). Only the class `owl-carousel` is mandatory to apply proper styles: 73 | 74 | ```html 75 | 84 | ``` 85 | **NOTE:** The `owl-theme` class is optional, but without it, you will need to style navigation features on your own. 86 | 87 | 88 | Call the [plugin](https://learn.jquery.com/plugins/) function and your carousel is ready. 89 | 90 | ```javascript 91 | $(document).ready(function(){ 92 | $('.owl-carousel').owlCarousel(); 93 | }); 94 | ``` 95 | 96 | ## Documentation 97 | 98 | The documentation, included in this repo in the root directory, is built with [Assemble](http://assemble.io/) and publicly available at https://owlcarousel2.github.io/OwlCarousel2/. The documentation may also be run locally. 99 | 100 | ## Building 101 | 102 | This package comes with [Grunt](http://gruntjs.com/) and [Bower](http://bower.io/). The following tasks are available: 103 | 104 | * `default` compiles the CSS and JS into `/dist` and builds the doc. 105 | * `dist` compiles the CSS and JS into `/dist` only. 106 | * `watch` watches source files and builds them automatically whenever you save. 107 | * `test` runs [JSHint](http://www.jshint.com/) and [QUnit](http://qunitjs.com/) tests headlessly in [PhantomJS](http://phantomjs.org/). 108 | 109 | To define which plugins are build into the distribution just edit `/_config.json` to fit your needs. 110 | 111 | ## Contributing 112 | 113 | Please read [CONTRIBUTING.md](CONTRIBUTING.md). 114 | 115 | ## Roadmap 116 | 117 | Please make sure to check out our [Roadmap Discussion](https://github.com/OwlCarousel2/OwlCarousel2/issues/1756). 118 | 119 | 120 | ## License 121 | 122 | The code and the documentation are released under the [MIT License](LICENSE). 123 | -------------------------------------------------------------------------------- /login/assets/css/sb-admin-2.css: -------------------------------------------------------------------------------- 1 | 2 | body { 3 | background-color: #f8f8f8; 4 | } 5 | #wrapper { 6 | width: 100%; 7 | } 8 | #page-wrapper { 9 | padding: 0 15px; 10 | min-height: 568px; 11 | background-color: white; 12 | } 13 | @media (min-width: 768px) { 14 | #page-wrapper { 15 | position: inherit; 16 | margin: 0 0 0 250px; 17 | padding: 0 30px; 18 | border-left: 1px solid #e7e7e7; 19 | } 20 | } 21 | .navbar-top-links { 22 | margin-right: 0; 23 | } 24 | .navbar-top-links li { 25 | display: inline-block; 26 | } 27 | .navbar-top-links li:last-child { 28 | margin-right: 15px; 29 | } 30 | .navbar-top-links li a { 31 | padding: 15px; 32 | min-height: 50px; 33 | } 34 | .navbar-top-links .dropdown-menu li { 35 | display: block; 36 | } 37 | .navbar-top-links .dropdown-menu li:last-child { 38 | margin-right: 0; 39 | } 40 | .navbar-top-links .dropdown-menu li a { 41 | padding: 3px 20px; 42 | min-height: 0; 43 | } 44 | .navbar-top-links .dropdown-menu li a div { 45 | white-space: normal; 46 | } 47 | .navbar-top-links .dropdown-messages, 48 | .navbar-top-links .dropdown-tasks, 49 | .navbar-top-links .dropdown-alerts { 50 | width: 310px; 51 | min-width: 0; 52 | } 53 | .navbar-top-links .dropdown-messages { 54 | margin-left: 5px; 55 | } 56 | .navbar-top-links .dropdown-tasks { 57 | margin-left: -59px; 58 | } 59 | .navbar-top-links .dropdown-alerts { 60 | margin-left: -123px; 61 | } 62 | .navbar-top-links .dropdown-user { 63 | right: 0; 64 | left: auto; 65 | } 66 | 67 | .page-action-links{ 68 | margin:40px 0px 20px 0px; 69 | } 70 | 71 | 72 | .sidebar .sidebar-nav.navbar-collapse { 73 | padding-left: 0; 74 | padding-right: 0; 75 | } 76 | .sidebar ul li { 77 | border-bottom: 1px solid #e7e7e7; 78 | } 79 | .sidebar ul li a.active { 80 | background-color: #eeeeee; 81 | } 82 | .sidebar .arrow { 83 | float: right; 84 | } 85 | .sidebar .fa.arrow:before { 86 | content: "\f104"; 87 | } 88 | .sidebar .active > a > .fa.arrow:before { 89 | content: "\f107"; 90 | } 91 | .sidebar .nav-second-level li, 92 | .sidebar .nav-third-level li { 93 | border-bottom: none !important; 94 | } 95 | .sidebar .nav-second-level li a { 96 | padding-left: 37px; 97 | } 98 | .sidebar .nav-third-level li a { 99 | padding-left: 52px; 100 | } 101 | @media (min-width: 768px) { 102 | .sidebar { 103 | z-index: 1; 104 | position: absolute; 105 | width: 250px; 106 | margin-top: 51px; 107 | } 108 | .navbar-top-links .dropdown-messages, 109 | .navbar-top-links .dropdown-tasks, 110 | .navbar-top-links .dropdown-alerts { 111 | margin-left: auto; 112 | } 113 | } 114 | 115 | .panel .slidedown .glyphicon, 116 | .chat .glyphicon { 117 | margin-right: 5px; 118 | } 119 | 120 | .login-panel { 121 | margin-top: 25%; 122 | } 123 | 124 | .btn-circle { 125 | width: 30px; 126 | height: 30px; 127 | padding: 6px 0; 128 | border-radius: 15px; 129 | text-align: center; 130 | font-size: 12px; 131 | line-height: 1.428571429; 132 | } 133 | .btn-circle.btn-lg { 134 | width: 50px; 135 | height: 50px; 136 | padding: 10px 16px; 137 | border-radius: 25px; 138 | font-size: 18px; 139 | line-height: 1.33; 140 | } 141 | .btn-circle.btn-xl { 142 | width: 70px; 143 | height: 70px; 144 | padding: 10px 16px; 145 | border-radius: 35px; 146 | font-size: 24px; 147 | line-height: 1.33; 148 | } 149 | .show-grid [class^="col-"] { 150 | padding-top: 10px; 151 | padding-bottom: 10px; 152 | border: 1px solid #ddd; 153 | background-color: #eee !important; 154 | } 155 | .show-grid { 156 | margin: 15px 0; 157 | } 158 | .huge { 159 | font-size: 40px; 160 | } 161 | 162 | .panel-green > .panel-heading { 163 | border-color: #5cb85c; 164 | color: white; 165 | background-color: #5cb85c; 166 | } 167 | .panel-green { 168 | border-color: #5cb85c; 169 | } 170 | .panel-green > a { 171 | color: #5cb85c; 172 | } 173 | .panel-green > a:hover { 174 | color: #3d8b3d; 175 | } 176 | .panel-red { 177 | border-color: #d9534f; 178 | } 179 | .panel-red > .panel-heading { 180 | border-color: #d9534f; 181 | color: white; 182 | background-color: #d9534f; 183 | } 184 | .panel-red > a { 185 | color: #d9534f; 186 | } 187 | .panel-red > a:hover { 188 | color: #b52b27; 189 | } 190 | .panel-yellow { 191 | border-color: #f0ad4e; 192 | } 193 | .panel-yellow > .panel-heading { 194 | border-color: #f0ad4e; 195 | color: white; 196 | background-color: #f0ad4e; 197 | } 198 | .panel-yellow > a { 199 | color: #f0ad4e; 200 | } 201 | .panel-yellow > a:hover { 202 | color: #df8a13; 203 | } 204 | 205 | label.error{ 206 | color: red; 207 | } 208 | -------------------------------------------------------------------------------- /login/forms/customer_form.php: -------------------------------------------------------------------------------- 1 |
    2 |
    3 | 4 | 5 |
    6 | 7 |
    8 | 9 | 10 |
    11 |
    12 | 13 | 14 |
    15 |
    16 | 17 | 18 |
    19 |
    20 | 21 | 22 |
    23 |
    24 | 25 | 26 |
    27 |
    28 | 29 | 32 | 35 |
    36 | 37 |
    38 | 39 | 40 |
    41 | 42 |
    43 | 44 | 45 | 58 |
    59 | 60 |
    61 | 62 | 63 |
    64 | 65 |
    66 | 67 | 68 |
    69 | 70 |
    71 | 72 | 73 |
    74 | 75 |
    76 | 77 | 78 |
    79 |
    80 | -------------------------------------------------------------------------------- /SQL/cgv.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 4.9.2 3 | -- https://www.phpmyadmin.net/ 4 | -- 5 | -- Host: 127.0.0.1:3306 6 | -- Generation Time: Oct 17, 2020 at 06:35 PM 7 | -- Server version: 10.4.10-MariaDB 8 | -- PHP Version: 7.3.12 9 | 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 11 | SET AUTOCOMMIT = 0; 12 | START TRANSACTION; 13 | SET time_zone = "+00:00"; 14 | 15 | 16 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 17 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 18 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 19 | /*!40101 SET NAMES utf8mb4 */; 20 | 21 | -- 22 | -- Database: `cgv` 23 | -- 24 | 25 | -- -------------------------------------------------------- 26 | 27 | -- 28 | -- Table structure for table `admin_accounts` 29 | -- 30 | 31 | DROP TABLE IF EXISTS `admin_accounts`; 32 | CREATE TABLE IF NOT EXISTS `admin_accounts` ( 33 | `id` int(25) NOT NULL AUTO_INCREMENT, 34 | `user_name` varchar(50) NOT NULL, 35 | `password` varchar(255) NOT NULL, 36 | `series_id` varchar(60) DEFAULT NULL, 37 | `remember_token` varchar(255) DEFAULT NULL, 38 | `expires` datetime DEFAULT NULL, 39 | `admin_type` varchar(10) NOT NULL, 40 | PRIMARY KEY (`id`) 41 | ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; 42 | 43 | -- 44 | -- Dumping data for table `admin_accounts` 45 | -- 46 | 47 | INSERT INTO `admin_accounts` (`id`, `user_name`, `password`, `series_id`, `remember_token`, `expires`, `admin_type`) VALUES 48 | (1, 'admin@gmail.com', '$2y$10$T3P2CXR3NiH0Zi0DlvMRku8BS/42IJqFSnGpZpKmVzW3LYKYK.fmC', NULL, NULL, NULL, 'super'); 49 | 50 | -- -------------------------------------------------------- 51 | 52 | -- 53 | -- Table structure for table `contact` 54 | -- 55 | 56 | DROP TABLE IF EXISTS `contact`; 57 | CREATE TABLE IF NOT EXISTS `contact` ( 58 | `id` int(10) NOT NULL AUTO_INCREMENT, 59 | `name` text NOT NULL, 60 | `email_id` varchar(50) NOT NULL, 61 | `phone` varchar(14) NOT NULL, 62 | `response` text NOT NULL, 63 | PRIMARY KEY (`id`) 64 | ) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb4; 65 | 66 | -- -------------------------------------------------------- 67 | 68 | -- 69 | -- Table structure for table `customers` 70 | -- 71 | 72 | DROP TABLE IF EXISTS `customers`; 73 | CREATE TABLE IF NOT EXISTS `customers` ( 74 | `id` int(10) NOT NULL AUTO_INCREMENT, 75 | `f_name` varchar(25) NOT NULL, 76 | `l_name` varchar(25) NOT NULL, 77 | `gender` varchar(6) DEFAULT NULL, 78 | `address` varchar(100) DEFAULT NULL, 79 | `city` varchar(15) DEFAULT NULL, 80 | `state` varchar(30) DEFAULT NULL, 81 | `phone` varchar(15) DEFAULT NULL, 82 | `email` varchar(50) DEFAULT NULL, 83 | `certificate_number` varchar(50) CHARACTER SET utf8mb4 NOT NULL, 84 | `training_name` varchar(50) CHARACTER SET utf8mb4 NOT NULL, 85 | `marks` int(10) NOT NULL, 86 | `college_name` varchar(50) CHARACTER SET utf8mb4 NOT NULL, 87 | `date_of_birth` date DEFAULT NULL, 88 | `created_by` int(10) UNSIGNED NOT NULL DEFAULT 0, 89 | `created_at` date DEFAULT NULL, 90 | `updated_by` int(10) UNSIGNED NOT NULL DEFAULT 0, 91 | `updated_at` timestamp NULL DEFAULT NULL, 92 | PRIMARY KEY (`id`), 93 | UNIQUE KEY `certificate_number` (`certificate_number`) 94 | ) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8; 95 | 96 | -- -------------------------------------------------------- 97 | 98 | -- 99 | -- Table structure for table `feedback` 100 | -- 101 | 102 | DROP TABLE IF EXISTS `feedback`; 103 | CREATE TABLE IF NOT EXISTS `feedback` ( 104 | `id` int(10) NOT NULL AUTO_INCREMENT, 105 | `name` text DEFAULT NULL, 106 | `email_id` varchar(50) DEFAULT NULL, 107 | `feedback` text NOT NULL, 108 | `phone` varchar(20) NOT NULL, 109 | `rating` varchar(1) NOT NULL, 110 | PRIMARY KEY (`id`) 111 | ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4; 112 | 113 | -- -------------------------------------------------------- 114 | 115 | -- 116 | -- Table structure for table `newsletter` 117 | -- 118 | 119 | DROP TABLE IF EXISTS `newsletter`; 120 | CREATE TABLE IF NOT EXISTS `newsletter` ( 121 | `id` int(100) NOT NULL AUTO_INCREMENT, 122 | `contactEmail` varchar(30) NOT NULL, 123 | `country` varchar(20) DEFAULT NULL, 124 | `city` varchar(20) DEFAULT NULL, 125 | `ip` varchar(20) DEFAULT NULL, 126 | PRIMARY KEY (`id`), 127 | UNIQUE KEY `contactEmail` (`contactEmail`) 128 | ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4; 129 | COMMIT; 130 | 131 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 132 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 133 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 134 | -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Open Sans'; 3 | font-style: normal; 4 | font-weight: 400; 5 | src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0e.ttf) format('truetype'); 6 | } 7 | @font-face { 8 | font-family: 'Pinyon Script'; 9 | font-style: normal; 10 | font-weight: 400; 11 | src: local('Pinyon Script'), local('PinyonScript'), url(https://fonts.gstatic.com/s/pinyonscript/v11/6xKpdSJbL9-e9LuoeQiDRQR8WOXaPw.ttf) format('truetype'); 12 | } 13 | @font-face { 14 | font-family: 'Rochester'; 15 | font-style: normal; 16 | font-weight: 400; 17 | src: local('Rochester Regular'), local('Rochester-Regular'), url(https://fonts.gstatic.com/s/rochester/v11/6ae-4KCqVa4Zy6Fif-UC2FHS.ttf) format('truetype'); 18 | } 19 | .cursive { 20 | font-family: 'Pinyon Script', cursive; 21 | } 22 | .sans { 23 | font-family: 'Open Sans', sans-serif; 24 | } 25 | .bold { 26 | font-weight: bold; 27 | } 28 | .block { 29 | display: block; 30 | } 31 | .underline { 32 | border-bottom: 1px solid #777; 33 | padding: 5px; 34 | margin-bottom: 15px; 35 | } 36 | .margin-0 { 37 | margin: 0; 38 | } 39 | .padding-0 { 40 | padding: 0; 41 | } 42 | .pm-empty-space { 43 | height: 40px; 44 | width: 100%; 45 | } 46 | body { 47 | padding: 20px 0; 48 | background: #ccc; 49 | } 50 | .pm-certificate-container { 51 | position: relative; 52 | width: 800px; 53 | height: 600px; 54 | background-color: #618597; 55 | padding: 30px; 56 | color: #333; 57 | font-family: 'Open Sans', sans-serif; 58 | box-shadow: 0 0 5px rgba(0, 0, 0, 0.5); 59 | /*background: -webkit-repeating-linear-gradient( 60 | 45deg, 61 | #618597, 62 | #618597 1px, 63 | #b2cad6 1px, 64 | #b2cad6 2px 65 | ); 66 | background: repeating-linear-gradient( 67 | 90deg, 68 | #618597, 69 | #618597 1px, 70 | #b2cad6 1px, 71 | #b2cad6 2px 72 | );*/ 73 | } 74 | .pm-certificate-container .outer-border { 75 | width: 794px; 76 | height: 594px; 77 | position: absolute; 78 | left: 50%; 79 | margin-left: -397px; 80 | top: 50%; 81 | margin-top: -297px; 82 | border: 2px solid #fff; 83 | } 84 | .pm-certificate-container .inner-border { 85 | width: 730px; 86 | height: 530px; 87 | position: absolute; 88 | left: 50%; 89 | margin-left: -365px; 90 | top: 50%; 91 | margin-top: -265px; 92 | border: 2px solid #fff; 93 | } 94 | .pm-certificate-container .pm-certificate-border { 95 | position: relative; 96 | width: 720px; 97 | height: 520px; 98 | padding: 0; 99 | border: 1px solid #E1E5F0; 100 | background-color: #ffffff; 101 | background-image: none; 102 | left: 50%; 103 | margin-left: -360px; 104 | top: 50%; 105 | margin-top: -260px; 106 | } 107 | .pm-certificate-container .pm-certificate-border .pm-certificate-block { 108 | width: 650px; 109 | height: 200px; 110 | position: relative; 111 | left: 50%; 112 | margin-left: -325px; 113 | top: 70px; 114 | margin-top: 0; 115 | } 116 | .pm-certificate-container .pm-certificate-border .pm-certificate-header { 117 | margin-bottom: 10px; 118 | } 119 | .pm-certificate-container .pm-certificate-border .pm-certificate-title { 120 | position: relative; 121 | top: 40px; 122 | } 123 | .pm-certificate-container .pm-certificate-border .pm-certificate-title h2 { 124 | font-size: 34px !important; 125 | } 126 | .pm-certificate-container .pm-certificate-border .pm-certificate-body { 127 | padding: 20px; 128 | } 129 | .pm-certificate-container .pm-certificate-border .pm-certificate-body .pm-name-text { 130 | font-size: 20px; 131 | } 132 | .pm-certificate-container .pm-certificate-border .pm-earned { 133 | margin: 15px 0 20px; 134 | } 135 | .pm-certificate-container .pm-certificate-border .pm-earned .pm-earned-text { 136 | font-size: 20px; 137 | } 138 | .pm-certificate-container .pm-certificate-border .pm-earned .pm-credits-text { 139 | font-size: 15px; 140 | } 141 | .pm-certificate-container .pm-certificate-border .pm-course-title .pm-earned-text { 142 | font-size: 20px; 143 | } 144 | .pm-certificate-container .pm-certificate-border .pm-course-title .pm-credits-text { 145 | font-size: 15px; 146 | } 147 | .pm-certificate-container .pm-certificate-border .pm-certified { 148 | font-size: 12px; 149 | } 150 | .pm-certificate-container .pm-certificate-border .pm-certified .underline { 151 | margin-bottom: 5px; 152 | } 153 | .pm-certificate-container .pm-certificate-border .pm-certificate-footer { 154 | width: 650px; 155 | height: 100px; 156 | position: relative; 157 | left: 50%; 158 | margin-left: -325px; 159 | bottom: -105px; 160 | } 161 | .print{ 162 | text-transform: uppercase; 163 | border: 0 none; 164 | } 165 | /* Hide scrollbar for Chrome, Safari and Opera */ 166 | ::-webkit-scrollbar { 167 | display: none; 168 | } -------------------------------------------------------------------------------- /login/feedback.php: -------------------------------------------------------------------------------- 1 | pageLimit = $pagelimit; 39 | 40 | // Get result of the query 41 | $rows = $db->arraybuilder()->paginate('feedback', $page, $select); 42 | $total_pages = $db->totalPages; 43 | ?> 44 | 45 | 46 |
    47 |
    48 |
    49 |

    Feedback Responses

    50 |
    51 |
    52 | 55 |
    56 |
    57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 84 | 85 | 86 | 107 | 108 | 109 | 110 |
    IDNameEmail IDPhoneFeedback MessageRatingActions
    82 | 83 |
    111 | 112 | 113 | 114 |
    115 | 116 |
    117 | 118 |
    119 | 120 | 121 | -------------------------------------------------------------------------------- /login/contact.php: -------------------------------------------------------------------------------- 1 | where('f_name', '%' . $search_str . '%', 'like'); 40 | $db->orwhere('l_name', '%' . $search_str . '%', 'like'); 41 | } 42 | // If order direction option selected 43 | if ($order_dir) { 44 | $db->orderBy($order_by, $order_dir); 45 | } 46 | 47 | // Set pagination limit 48 | $db->pageLimit = $pagelimit; 49 | 50 | // Get result of the query 51 | $rows = $db->arraybuilder()->paginate('contact', $page, $select); 52 | $total_pages = $db->totalPages; 53 | ?> 54 | 55 | 56 |
    57 |
    58 |
    59 |

    Contact Form Responses

    60 |
    61 |
    62 | 65 |
    66 |
    67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 92 | 93 | 94 | 115 | 116 | 117 | 118 |
    IDNameEmail IDPhone NumberResponsesActions
    90 | 91 |
    119 | 120 | 121 | 122 |
    123 | 124 |
    125 | 126 |
    127 | 128 | 129 | -------------------------------------------------------------------------------- /login/newsletter.php: -------------------------------------------------------------------------------- 1 | where('f_name', '%' . $search_str . '%', 'like'); 40 | $db->orwhere('l_name', '%' . $search_str . '%', 'like'); 41 | } 42 | // If order direction option selected 43 | if ($order_dir) { 44 | $db->orderBy($order_by, $order_dir); 45 | } 46 | 47 | // Set pagination limit 48 | $db->pageLimit = $pagelimit; 49 | 50 | // Get result of the query 51 | $rows = $db->arraybuilder()->paginate('newsletter', $page, $select); 52 | $total_pages = $db->totalPages; 53 | ?> 54 | 55 | 56 |
    57 |
    58 |
    59 |

    Newsletter Subscription List

    60 |
    61 |
    62 | 65 |
    66 |
    67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 92 | 93 | 94 | 115 | 116 | 117 | 118 |
    IDEmail IDCountryCityIPActions
    90 | 91 |
    119 | 120 | 121 | 122 |
    123 | 124 |
    125 | 126 |
    127 | 128 | 129 | -------------------------------------------------------------------------------- /assets/img/features-1.svg: -------------------------------------------------------------------------------- 1 | certification -------------------------------------------------------------------------------- /config/functions.php: -------------------------------------------------------------------------------- 1 | 21 |
    22 |
    23 | 24 |
    25 |
    26 |
    27 |

    CERTIFICATE OF COMPLETION

    28 |
    29 |
    30 | 31 |
    32 | 33 |
    34 |
    35 |
    36 |
    37 |
    38 | '.$result['f_name'] . ' ' . $result['l_name'].' 39 |
    40 |
    41 |
    42 |
    43 | 44 |
    45 |
    46 |
    47 |
    48 | has earned 49 | '.$result['marks'].'% IN FINAL TEST 50 |
    51 |
    52 |
    53 |
    54 |
    55 | 56 |
    57 |
    58 |
    59 |
    60 | while completing the training course entitled 61 |
    62 |
    63 |
    64 |
    65 | 66 |
    67 |
    68 |
    69 |
    70 | '.$result['training_name'].' 71 |
    72 |
    73 |
    74 |
    75 |
    76 | 77 |
    78 |
    79 | 96 | 97 |
    98 | 99 |
    100 | 101 |
    102 | 103 | 104 |
    105 | 106 |
    107 | '; 108 | } else { 109 | echo '
    110 |

    Certificate number is invalid

    111 |
    '; 112 | } 113 | 114 | } 115 | } 116 | 117 | ?> -------------------------------------------------------------------------------- /assets/vendor/php-email-form/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * PHP Email Form Validation - v2.0 3 | * URL: https://bootstrapmade.com/php-email-form/ 4 | * Author: BootstrapMade.com 5 | */ 6 | !(function($) { 7 | "use strict"; 8 | 9 | $('form.php-email-form').submit(function(e) { 10 | e.preventDefault(); 11 | 12 | var f = $(this).find('.form-group'), 13 | ferror = false, 14 | emailExp = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i; 15 | 16 | f.children('input').each(function() { // run all inputs 17 | 18 | var i = $(this); // current input 19 | var rule = i.attr('data-rule'); 20 | 21 | if (rule !== undefined) { 22 | var ierror = false; // error flag for current input 23 | var pos = rule.indexOf(':', 0); 24 | if (pos >= 0) { 25 | var exp = rule.substr(pos + 1, rule.length); 26 | rule = rule.substr(0, pos); 27 | } else { 28 | rule = rule.substr(pos + 1, rule.length); 29 | } 30 | 31 | switch (rule) { 32 | case 'required': 33 | if (i.val() === '') { 34 | ferror = ierror = true; 35 | } 36 | break; 37 | 38 | case 'minlen': 39 | if (i.val().length < parseInt(exp)) { 40 | ferror = ierror = true; 41 | } 42 | break; 43 | 44 | case 'email': 45 | if (!emailExp.test(i.val())) { 46 | ferror = ierror = true; 47 | } 48 | break; 49 | 50 | case 'checked': 51 | if (! i.is(':checked')) { 52 | ferror = ierror = true; 53 | } 54 | break; 55 | 56 | case 'regexp': 57 | exp = new RegExp(exp); 58 | if (!exp.test(i.val())) { 59 | ferror = ierror = true; 60 | } 61 | break; 62 | } 63 | i.next('.validate').html((ierror ? (i.attr('data-msg') !== undefined ? i.attr('data-msg') : 'wrong Input') : '')).show('blind'); 64 | } 65 | }); 66 | f.children('textarea').each(function() { // run all inputs 67 | 68 | var i = $(this); // current input 69 | var rule = i.attr('data-rule'); 70 | 71 | if (rule !== undefined) { 72 | var ierror = false; // error flag for current input 73 | var pos = rule.indexOf(':', 0); 74 | if (pos >= 0) { 75 | var exp = rule.substr(pos + 1, rule.length); 76 | rule = rule.substr(0, pos); 77 | } else { 78 | rule = rule.substr(pos + 1, rule.length); 79 | } 80 | 81 | switch (rule) { 82 | case 'required': 83 | if (i.val() === '') { 84 | ferror = ierror = true; 85 | } 86 | break; 87 | 88 | case 'minlen': 89 | if (i.val().length < parseInt(exp)) { 90 | ferror = ierror = true; 91 | } 92 | break; 93 | } 94 | i.next('.validate').html((ierror ? (i.attr('data-msg') != undefined ? i.attr('data-msg') : 'wrong Input') : '')).show('blind'); 95 | } 96 | }); 97 | if (ferror) return false; 98 | 99 | var this_form = $(this); 100 | var action = $(this).attr('action'); 101 | 102 | if( ! action ) { 103 | this_form.find('.loading').slideUp(); 104 | this_form.find('.error-message').slideDown().html('The form action property is not set!'); 105 | return false; 106 | } 107 | 108 | this_form.find('.sent-message').slideUp(); 109 | this_form.find('.error-message').slideUp(); 110 | this_form.find('.loading').slideDown(); 111 | 112 | if ( $(this).data('recaptcha-site-key') ) { 113 | var recaptcha_site_key = $(this).data('recaptcha-site-key'); 114 | grecaptcha.ready(function() { 115 | grecaptcha.execute(recaptcha_site_key, {action: 'php_email_form_submit'}).then(function(token) { 116 | php_email_form_submit(this_form,action,this_form.serialize() + '&recaptcha-response=' + token); 117 | }); 118 | }); 119 | } else { 120 | php_email_form_submit(this_form,action,this_form.serialize()); 121 | } 122 | 123 | return true; 124 | }); 125 | 126 | function php_email_form_submit(this_form, action, data) { 127 | $.ajax({ 128 | type: "POST", 129 | url: action, 130 | data: data, 131 | timeout: 40000 132 | }).done( function(msg){ 133 | if (msg == 'OK') { 134 | this_form.find('.loading').slideUp(); 135 | this_form.find('.sent-message').slideDown(); 136 | this_form.find("input:not(input[type=submit]), textarea").val(''); 137 | } else { 138 | this_form.find('.loading').slideUp(); 139 | if(!msg) { 140 | msg = 'Form submission failed and no error message returned from: ' + action + '
    '; 141 | } 142 | this_form.find('.error-message').slideDown().html(msg); 143 | } 144 | }).fail( function(data){ 145 | console.log(data); 146 | var error_msg = "Form submission failed!
    "; 147 | if(data.statusText || data.status) { 148 | error_msg += 'Status:'; 149 | if(data.statusText) { 150 | error_msg += ' ' + data.statusText; 151 | } 152 | if(data.status) { 153 | error_msg += ' ' + data.status; 154 | } 155 | error_msg += '
    '; 156 | } 157 | if(data.responseText) { 158 | error_msg += data.responseText; 159 | } 160 | this_form.find('.loading').slideUp(); 161 | this_form.find('.error-message').slideDown().html(error_msg); 162 | }); 163 | } 164 | 165 | })(jQuery); 166 | -------------------------------------------------------------------------------- /assets/vendor/owl.carousel/assets/owl.carousel.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | /* 7 | * Owl Carousel - Core 8 | */ 9 | .owl-carousel { 10 | display: none; 11 | width: 100%; 12 | -webkit-tap-highlight-color: transparent; 13 | /* position relative and z-index fix webkit rendering fonts issue */ 14 | position: relative; 15 | z-index: 1; } 16 | .owl-carousel .owl-stage { 17 | position: relative; 18 | -ms-touch-action: pan-Y; 19 | touch-action: manipulation; 20 | -moz-backface-visibility: hidden; 21 | /* fix firefox animation glitch */ } 22 | .owl-carousel .owl-stage:after { 23 | content: "."; 24 | display: block; 25 | clear: both; 26 | visibility: hidden; 27 | line-height: 0; 28 | height: 0; } 29 | .owl-carousel .owl-stage-outer { 30 | position: relative; 31 | overflow: hidden; 32 | /* fix for flashing background */ 33 | -webkit-transform: translate3d(0px, 0px, 0px); } 34 | .owl-carousel .owl-wrapper, 35 | .owl-carousel .owl-item { 36 | -webkit-backface-visibility: hidden; 37 | -moz-backface-visibility: hidden; 38 | -ms-backface-visibility: hidden; 39 | -webkit-transform: translate3d(0, 0, 0); 40 | -moz-transform: translate3d(0, 0, 0); 41 | -ms-transform: translate3d(0, 0, 0); } 42 | .owl-carousel .owl-item { 43 | position: relative; 44 | min-height: 1px; 45 | float: left; 46 | -webkit-backface-visibility: hidden; 47 | -webkit-tap-highlight-color: transparent; 48 | -webkit-touch-callout: none; } 49 | .owl-carousel .owl-item img { 50 | display: block; 51 | width: 100%; } 52 | .owl-carousel .owl-nav.disabled, 53 | .owl-carousel .owl-dots.disabled { 54 | display: none; } 55 | .owl-carousel .owl-nav .owl-prev, 56 | .owl-carousel .owl-nav .owl-next, 57 | .owl-carousel .owl-dot { 58 | cursor: pointer; 59 | -webkit-user-select: none; 60 | -khtml-user-select: none; 61 | -moz-user-select: none; 62 | -ms-user-select: none; 63 | user-select: none; } 64 | .owl-carousel .owl-nav button.owl-prev, 65 | .owl-carousel .owl-nav button.owl-next, 66 | .owl-carousel button.owl-dot { 67 | background: none; 68 | color: inherit; 69 | border: none; 70 | padding: 0 !important; 71 | font: inherit; } 72 | .owl-carousel.owl-loaded { 73 | display: block; } 74 | .owl-carousel.owl-loading { 75 | opacity: 0; 76 | display: block; } 77 | .owl-carousel.owl-hidden { 78 | opacity: 0; } 79 | .owl-carousel.owl-refresh .owl-item { 80 | visibility: hidden; } 81 | .owl-carousel.owl-drag .owl-item { 82 | -ms-touch-action: pan-y; 83 | touch-action: pan-y; 84 | -webkit-user-select: none; 85 | -moz-user-select: none; 86 | -ms-user-select: none; 87 | user-select: none; } 88 | .owl-carousel.owl-grab { 89 | cursor: move; 90 | cursor: grab; } 91 | .owl-carousel.owl-rtl { 92 | direction: rtl; } 93 | .owl-carousel.owl-rtl .owl-item { 94 | float: right; } 95 | 96 | /* No Js */ 97 | .no-js .owl-carousel { 98 | display: block; } 99 | 100 | /* 101 | * Owl Carousel - Animate Plugin 102 | */ 103 | .owl-carousel .animated { 104 | animation-duration: 1000ms; 105 | animation-fill-mode: both; } 106 | 107 | .owl-carousel .owl-animated-in { 108 | z-index: 0; } 109 | 110 | .owl-carousel .owl-animated-out { 111 | z-index: 1; } 112 | 113 | .owl-carousel .fadeOut { 114 | animation-name: fadeOut; } 115 | 116 | @keyframes fadeOut { 117 | 0% { 118 | opacity: 1; } 119 | 100% { 120 | opacity: 0; } } 121 | 122 | /* 123 | * Owl Carousel - Auto Height Plugin 124 | */ 125 | .owl-height { 126 | transition: height 500ms ease-in-out; } 127 | 128 | /* 129 | * Owl Carousel - Lazy Load Plugin 130 | */ 131 | .owl-carousel .owl-item { 132 | /** 133 | This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong 134 | calculation of the height of the owl-item that breaks page layouts 135 | */ } 136 | .owl-carousel .owl-item .owl-lazy { 137 | opacity: 0; 138 | transition: opacity 400ms ease; } 139 | .owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) { 140 | max-height: 0; } 141 | .owl-carousel .owl-item img.owl-lazy { 142 | transform-style: preserve-3d; } 143 | 144 | /* 145 | * Owl Carousel - Video Plugin 146 | */ 147 | .owl-carousel .owl-video-wrapper { 148 | position: relative; 149 | height: 100%; 150 | background: #000; } 151 | 152 | .owl-carousel .owl-video-play-icon { 153 | position: absolute; 154 | height: 80px; 155 | width: 80px; 156 | left: 50%; 157 | top: 50%; 158 | margin-left: -40px; 159 | margin-top: -40px; 160 | background: url("owl.video.play.png") no-repeat; 161 | cursor: pointer; 162 | z-index: 1; 163 | -webkit-backface-visibility: hidden; 164 | transition: transform 100ms ease; } 165 | 166 | .owl-carousel .owl-video-play-icon:hover { 167 | -ms-transform: scale(1.3, 1.3); 168 | transform: scale(1.3, 1.3); } 169 | 170 | .owl-carousel .owl-video-playing .owl-video-tn, 171 | .owl-carousel .owl-video-playing .owl-video-play-icon { 172 | display: none; } 173 | 174 | .owl-carousel .owl-video-tn { 175 | opacity: 0; 176 | height: 100%; 177 | background-position: center center; 178 | background-repeat: no-repeat; 179 | background-size: contain; 180 | transition: opacity 400ms ease; } 181 | 182 | .owl-carousel .owl-video-frame { 183 | position: relative; 184 | z-index: 1; 185 | height: 100%; 186 | width: 100%; } 187 | -------------------------------------------------------------------------------- /login/includes/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Dashboard : Online Certificate Verification System 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
    42 | 43 | 44 | 45 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /assets/vendor/bootstrap/css/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.5.0 (https://getbootstrap.com/) 3 | * Copyright 2011-2020 The Bootstrap Authors 4 | * Copyright 2011-2020 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | *, 9 | *::before, 10 | *::after { 11 | box-sizing: border-box; 12 | } 13 | 14 | html { 15 | font-family: sans-serif; 16 | line-height: 1.15; 17 | -webkit-text-size-adjust: 100%; 18 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 19 | } 20 | 21 | article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { 22 | display: block; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 28 | font-size: 1rem; 29 | font-weight: 400; 30 | line-height: 1.5; 31 | color: #212529; 32 | text-align: left; 33 | background-color: #fff; 34 | } 35 | 36 | [tabindex="-1"]:focus:not(:focus-visible) { 37 | outline: 0 !important; 38 | } 39 | 40 | hr { 41 | box-sizing: content-box; 42 | height: 0; 43 | overflow: visible; 44 | } 45 | 46 | h1, h2, h3, h4, h5, h6 { 47 | margin-top: 0; 48 | margin-bottom: 0.5rem; 49 | } 50 | 51 | p { 52 | margin-top: 0; 53 | margin-bottom: 1rem; 54 | } 55 | 56 | abbr[title], 57 | abbr[data-original-title] { 58 | text-decoration: underline; 59 | -webkit-text-decoration: underline dotted; 60 | text-decoration: underline dotted; 61 | cursor: help; 62 | border-bottom: 0; 63 | -webkit-text-decoration-skip-ink: none; 64 | text-decoration-skip-ink: none; 65 | } 66 | 67 | address { 68 | margin-bottom: 1rem; 69 | font-style: normal; 70 | line-height: inherit; 71 | } 72 | 73 | ol, 74 | ul, 75 | dl { 76 | margin-top: 0; 77 | margin-bottom: 1rem; 78 | } 79 | 80 | ol ol, 81 | ul ul, 82 | ol ul, 83 | ul ol { 84 | margin-bottom: 0; 85 | } 86 | 87 | dt { 88 | font-weight: 700; 89 | } 90 | 91 | dd { 92 | margin-bottom: .5rem; 93 | margin-left: 0; 94 | } 95 | 96 | blockquote { 97 | margin: 0 0 1rem; 98 | } 99 | 100 | b, 101 | strong { 102 | font-weight: bolder; 103 | } 104 | 105 | small { 106 | font-size: 80%; 107 | } 108 | 109 | sub, 110 | sup { 111 | position: relative; 112 | font-size: 75%; 113 | line-height: 0; 114 | vertical-align: baseline; 115 | } 116 | 117 | sub { 118 | bottom: -.25em; 119 | } 120 | 121 | sup { 122 | top: -.5em; 123 | } 124 | 125 | a { 126 | color: #007bff; 127 | text-decoration: none; 128 | background-color: transparent; 129 | } 130 | 131 | a:hover { 132 | color: #0056b3; 133 | text-decoration: underline; 134 | } 135 | 136 | a:not([href]) { 137 | color: inherit; 138 | text-decoration: none; 139 | } 140 | 141 | a:not([href]):hover { 142 | color: inherit; 143 | text-decoration: none; 144 | } 145 | 146 | pre, 147 | code, 148 | kbd, 149 | samp { 150 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 151 | font-size: 1em; 152 | } 153 | 154 | pre { 155 | margin-top: 0; 156 | margin-bottom: 1rem; 157 | overflow: auto; 158 | -ms-overflow-style: scrollbar; 159 | } 160 | 161 | figure { 162 | margin: 0 0 1rem; 163 | } 164 | 165 | img { 166 | vertical-align: middle; 167 | border-style: none; 168 | } 169 | 170 | svg { 171 | overflow: hidden; 172 | vertical-align: middle; 173 | } 174 | 175 | table { 176 | border-collapse: collapse; 177 | } 178 | 179 | caption { 180 | padding-top: 0.75rem; 181 | padding-bottom: 0.75rem; 182 | color: #6c757d; 183 | text-align: left; 184 | caption-side: bottom; 185 | } 186 | 187 | th { 188 | text-align: inherit; 189 | } 190 | 191 | label { 192 | display: inline-block; 193 | margin-bottom: 0.5rem; 194 | } 195 | 196 | button { 197 | border-radius: 0; 198 | } 199 | 200 | button:focus { 201 | outline: 1px dotted; 202 | outline: 5px auto -webkit-focus-ring-color; 203 | } 204 | 205 | input, 206 | button, 207 | select, 208 | optgroup, 209 | textarea { 210 | margin: 0; 211 | font-family: inherit; 212 | font-size: inherit; 213 | line-height: inherit; 214 | } 215 | 216 | button, 217 | input { 218 | overflow: visible; 219 | } 220 | 221 | button, 222 | select { 223 | text-transform: none; 224 | } 225 | 226 | [role="button"] { 227 | cursor: pointer; 228 | } 229 | 230 | select { 231 | word-wrap: normal; 232 | } 233 | 234 | button, 235 | [type="button"], 236 | [type="reset"], 237 | [type="submit"] { 238 | -webkit-appearance: button; 239 | } 240 | 241 | button:not(:disabled), 242 | [type="button"]:not(:disabled), 243 | [type="reset"]:not(:disabled), 244 | [type="submit"]:not(:disabled) { 245 | cursor: pointer; 246 | } 247 | 248 | button::-moz-focus-inner, 249 | [type="button"]::-moz-focus-inner, 250 | [type="reset"]::-moz-focus-inner, 251 | [type="submit"]::-moz-focus-inner { 252 | padding: 0; 253 | border-style: none; 254 | } 255 | 256 | input[type="radio"], 257 | input[type="checkbox"] { 258 | box-sizing: border-box; 259 | padding: 0; 260 | } 261 | 262 | textarea { 263 | overflow: auto; 264 | resize: vertical; 265 | } 266 | 267 | fieldset { 268 | min-width: 0; 269 | padding: 0; 270 | margin: 0; 271 | border: 0; 272 | } 273 | 274 | legend { 275 | display: block; 276 | width: 100%; 277 | max-width: 100%; 278 | padding: 0; 279 | margin-bottom: .5rem; 280 | font-size: 1.5rem; 281 | line-height: inherit; 282 | color: inherit; 283 | white-space: normal; 284 | } 285 | 286 | progress { 287 | vertical-align: baseline; 288 | } 289 | 290 | [type="number"]::-webkit-inner-spin-button, 291 | [type="number"]::-webkit-outer-spin-button { 292 | height: auto; 293 | } 294 | 295 | [type="search"] { 296 | outline-offset: -2px; 297 | -webkit-appearance: none; 298 | } 299 | 300 | [type="search"]::-webkit-search-decoration { 301 | -webkit-appearance: none; 302 | } 303 | 304 | ::-webkit-file-upload-button { 305 | font: inherit; 306 | -webkit-appearance: button; 307 | } 308 | 309 | output { 310 | display: inline-block; 311 | } 312 | 313 | summary { 314 | display: list-item; 315 | cursor: pointer; 316 | } 317 | 318 | template { 319 | display: none; 320 | } 321 | 322 | [hidden] { 323 | display: none !important; 324 | } 325 | /*# sourceMappingURL=bootstrap-reboot.css.map */ -------------------------------------------------------------------------------- /certg.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CGV : Online Certificate Verification System 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 179 | 208 | 209 | 210 | 211 |
    212 |
    213 |
    214 | 215 |

    216 |
    217 |
    218 |
    219 | 220 |
       221 | 222 |
    223 |
    224 |
    225 | 226 |
    227 |
    228 | 229 | 239 | 240 | 241 | -------------------------------------------------------------------------------- /login/admin_users.php: -------------------------------------------------------------------------------- 1 | where('user_name', '%' . $search_str . '%', 'like'); 41 | } 42 | // If order direction option selected 43 | if ($order_dir) { 44 | $db->orderBy($order_by, $order_dir); 45 | } 46 | 47 | // Set pagination limit 48 | $db->pageLimit = $pagelimit; 49 | 50 | // Get result of the query 51 | $rows = $db->arraybuilder()->paginate('admin_accounts', $page, $select); 52 | $total_pages = $db->totalPages; 53 | ?> 54 | 55 | 56 |
    57 |
    58 |
    59 |

    Admin users

    60 |
    61 |
    62 | 65 |
    66 |
    67 | 68 | 69 | Successfully deleted
    '; 73 | } 74 | ?> 75 | 76 | 77 |
    78 |
    79 | 80 | 81 | 82 | 90 | 102 | 103 |
    104 |
    105 |
    106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 128 | 129 | 130 | 151 | 152 | 153 | 154 |
    IDUsernameAdmin typeActions
    125 | 126 | 127 |
    155 | 156 | 157 | 158 |
    159 | 160 |
    161 | 162 |
    163 | 164 | 165 | -------------------------------------------------------------------------------- /assets/img/features-2.svg: -------------------------------------------------------------------------------- 1 | verified -------------------------------------------------------------------------------- /certv.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | CGV : Online Certificate Verification System 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 204 | 233 | 234 | 235 | 236 | 237 |
    238 | 239 |
    240 |
    241 | 242 | 246 | 247 | 248 |
    249 | 250 |
    251 | 252 | 253 |
    254 | 255 |
    256 | 257 |
    258 |
    259 | 260 |
    261 |    262 | 263 |
    264 |
    265 |
    266 |
    267 |
    268 |
    269 | 270 |
    271 | 272 | 273 | 274 | -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Template Name: Rapid - v2.2.0 3 | * Template URL: https://bootstrapmade.com/rapid-multipurpose-bootstrap-business-template/ 4 | * Author: BootstrapMade.com 5 | * License: https://bootstrapmade.com/license/ 6 | */ 7 | (function($) { 8 | "use strict"; 9 | 10 | // Preloader (if the #preloader div exists) 11 | $(window).on('load', function() { 12 | if ($('#preloader').length) { 13 | $('#preloader').delay(100).fadeOut('slow', function() { 14 | $(this).remove(); 15 | }); 16 | } 17 | }); 18 | 19 | // Back to top button 20 | $(window).scroll(function() { 21 | if ($(this).scrollTop() > 100) { 22 | $('.back-to-top').fadeIn('slow'); 23 | } else { 24 | $('.back-to-top').fadeOut('slow'); 25 | } 26 | }); 27 | $('.back-to-top').click(function() { 28 | $('html, body').animate({ 29 | scrollTop: 0 30 | }, 1500, 'easeInOutExpo'); 31 | return false; 32 | }); 33 | 34 | // Header scroll class 35 | $(window).scroll(function() { 36 | if ($(this).scrollTop() > 100) { 37 | $('#header').addClass('header-scrolled'); 38 | $('#topbar').addClass('topbar-scrolled '); 39 | } else { 40 | $('#header').removeClass('header-scrolled'); 41 | $('#topbar').removeClass('topbar-scrolled '); 42 | } 43 | }); 44 | 45 | if ($(window).scrollTop() > 100) { 46 | $('#header').addClass('header-scrolled'); 47 | $('#topbar').addClass('topbar-scrolled'); 48 | } 49 | 50 | // Smooth scroll for the navigation and links with .scrollto classes 51 | var scrolltoOffset = $('#header').outerHeight() - 1; 52 | $(document).on('click', '.main-nav a, .mobile-nav a, .scrollto', function(e) { 53 | if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { 54 | var target = $(this.hash); 55 | if (target.length) { 56 | e.preventDefault(); 57 | 58 | var scrollto = target.offset().top - scrolltoOffset; 59 | 60 | if ($(this).attr("href") == '#header') { 61 | scrollto = 0; 62 | } 63 | 64 | $('html, body').animate({ 65 | scrollTop: scrollto 66 | }, 1500, 'easeInOutExpo'); 67 | 68 | if ($(this).parents('.main-nav, .mobile-nav').length) { 69 | $('.main-nav .active, .mobile-nav .active').removeClass('active'); 70 | $(this).closest('li').addClass('active'); 71 | } 72 | 73 | if ($('body').hasClass('mobile-nav-active')) { 74 | $('body').removeClass('mobile-nav-active'); 75 | $('.mobile-nav-toggle i').toggleClass('fa-times fa-bars'); 76 | $('.mobile-nav-overly').fadeOut(); 77 | } 78 | return false; 79 | } 80 | } 81 | }); 82 | 83 | // Activate smooth scroll on page load with hash links in the url 84 | $(document).ready(function() { 85 | if (window.location.hash) { 86 | var initial_nav = window.location.hash; 87 | if ($(initial_nav).length) { 88 | var scrollto = $(initial_nav).offset().top - scrolltoOffset; 89 | $('html, body').animate({ 90 | scrollTop: scrollto 91 | }, 1500, 'easeInOutExpo'); 92 | } 93 | } 94 | }); 95 | 96 | // Mobile Navigation 97 | if ($('.main-nav').length) { 98 | var $mobile_nav = $('.main-nav').clone().prop({ 99 | class: 'mobile-nav d-lg-none' 100 | }); 101 | $('body').append($mobile_nav); 102 | $('body').prepend(''); 103 | $('body').append('
    '); 104 | 105 | $(document).on('click', '.mobile-nav-toggle', function(e) { 106 | $('body').toggleClass('mobile-nav-active'); 107 | $('.mobile-nav-toggle i').toggleClass('fa-times fa-bars'); 108 | $('.mobile-nav-overly').toggle(); 109 | }); 110 | 111 | $(document).on('click', '.mobile-nav .drop-down > a', function(e) { 112 | e.preventDefault(); 113 | $(this).next().slideToggle(300); 114 | $(this).parent().toggleClass('active'); 115 | }); 116 | 117 | $(document).click(function(e) { 118 | var container = $(".mobile-nav, .mobile-nav-toggle"); 119 | if (!container.is(e.target) && container.has(e.target).length === 0) { 120 | if ($('body').hasClass('mobile-nav-active')) { 121 | $('body').removeClass('mobile-nav-active'); 122 | $('.mobile-nav-toggle i').toggleClass('fa-times fa-bars'); 123 | $('.mobile-nav-overly').fadeOut(); 124 | } 125 | } 126 | }); 127 | } else if ($(".mobile-nav, .mobile-nav-toggle").length) { 128 | $(".mobile-nav, .mobile-nav-toggle").hide(); 129 | } 130 | 131 | // Navigation active state on scroll 132 | var nav_sections = $('section'); 133 | var main_nav = $('.main-nav, .mobile-nav'); 134 | var main_nav_height = $('#header').outerHeight(); 135 | 136 | $(window).on('scroll', function() { 137 | var cur_pos = $(this).scrollTop() + 200; 138 | 139 | nav_sections.each(function() { 140 | var top = $(this).offset().top - main_nav_height, 141 | bottom = top + $(this).outerHeight(); 142 | 143 | if (cur_pos >= top && cur_pos <= bottom) { 144 | main_nav.find('li').removeClass('active'); 145 | main_nav.find('a[href="#' + $(this).attr('id') + '"]').parent('li').addClass('active'); 146 | } 147 | 148 | if (cur_pos < 300) { 149 | $(".nav-menu ul:first li:first").addClass('active'); 150 | } 151 | 152 | }); 153 | }); 154 | 155 | // jQuery counterUp (used in Whu Us section) 156 | $('[data-toggle="counter-up"]').counterUp({ 157 | delay: 10, 158 | time: 1000 159 | }); 160 | 161 | // Porfolio isotope and filter 162 | $(window).on('load', function() { 163 | var portfolioIsotope = $('.portfolio-container').isotope({ 164 | itemSelector: '.portfolio-item' 165 | }); 166 | $('#portfolio-flters li').on('click', function() { 167 | $("#portfolio-flters li").removeClass('filter-active'); 168 | $(this).addClass('filter-active'); 169 | 170 | portfolioIsotope.isotope({ 171 | filter: $(this).data('filter') 172 | }); 173 | aos_init(); 174 | }); 175 | }); 176 | 177 | // Initiate venobox (lightbox feature used in portofilo) 178 | $(document).ready(function() { 179 | $('.venobox').venobox({ 180 | 'share': false 181 | }); 182 | }); 183 | 184 | // Testimonials carousel (uses the Owl Carousel library) 185 | $(".testimonials-carousel").owlCarousel({ 186 | autoplay: true, 187 | dots: true, 188 | loop: true, 189 | items: 1 190 | }); 191 | 192 | // Clients carousel (uses the Owl Carousel library) 193 | $(".clients-carousel").owlCarousel({ 194 | autoplay: true, 195 | dots: true, 196 | loop: true, 197 | responsive: { 198 | 0: { 199 | items: 2 200 | }, 201 | 768: { 202 | items: 4 203 | }, 204 | 900: { 205 | items: 6 206 | } 207 | } 208 | }); 209 | 210 | // Portfolio details carousel 211 | $(".portfolio-details-carousel").owlCarousel({ 212 | autoplay: true, 213 | dots: true, 214 | loop: true, 215 | items: 1 216 | }); 217 | 218 | // Init AOS 219 | function aos_init() { 220 | AOS.init({ 221 | duration: 1000, 222 | once: true 223 | }); 224 | } 225 | $(window).on('load', function() { 226 | aos_init(); 227 | }); 228 | 229 | })(jQuery); --------------------------------------------------------------------------------