├── .gitignore
├── .mvn
└── wrapper
│ ├── MavenWrapperDownloader.java
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── Extra code
├── social_media.txt
├── the-bouncer-at-403.zip
└── the-bouncer-at-403
│ ├── README.markdown
│ ├── dist
│ ├── error.css
│ └── error.html
│ ├── license.txt
│ └── src
│ ├── index.haml
│ └── style.less
├── README.md
├── Screenshots
├── Image 1.png
├── Image 2.png
├── Image 3.jpg
├── Image 4.png
├── Image 5.png
├── Image 6.png
└── Image 7.png
├── candidate-photos
├── jyoticpm
│ └── cpim.jpg
└── modibjp
│ └── modi.jpg
├── discuss.txt
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
└── main
├── java
└── net
│ └── codejava
│ ├── SpringBootFormApplication.java
│ ├── config
│ └── mySecurityConfig.java
│ ├── controller
│ ├── CandidateController.java
│ ├── ForgotPasswordController.java
│ ├── HomeController.java
│ ├── MainController.java
│ ├── UserSecurityController.java
│ └── VoteController.java
│ ├── helper
│ ├── EmailTemplate.java
│ └── SHA256.java
│ ├── model
│ ├── Candidate.java
│ ├── CustomUserDetails.java
│ ├── Pending.java
│ ├── User.java
│ └── Votedata.java
│ ├── repository
│ ├── CandidateRepo.java
│ ├── PendingRepo.java
│ ├── UserRepo.java
│ └── VoteRepo.java
│ └── service
│ ├── CandidateService.java
│ ├── CustomUserDetailsService.java
│ ├── EmailService.java
│ ├── UserService.java
│ └── VoteService.java
└── resources
├── application.properties
├── banner.txt
├── static
├── Image upload
│ ├── app.js
│ ├── firebase.txt
│ ├── script.js
│ ├── test.html
│ ├── test0.html
│ └── test2.html
├── SweetAlert
│ ├── README.md
│ ├── registration.html
│ ├── sweetalert2.all.min.js
│ └── sweetalert2.css
├── css
│ ├── .DS_Store
│ ├── Home.css
│ ├── animate.min.css
│ ├── bootstrap-select.min.css
│ ├── bootstrap.min.css
│ ├── bootstrap.min.css.map
│ ├── bootstrap
│ │ └── bootstrap.css
│ ├── candidatepage.css
│ ├── error.css
│ ├── font-awesome.min.css
│ ├── magnific-popup.css
│ ├── material-dashboard.css
│ ├── material-dashboard.css.map
│ ├── material-dashboard.min.css
│ ├── nicepage.css
│ ├── nucleo-icons.css
│ ├── nucleo-svg.css
│ ├── owl.carousel.min.css
│ ├── owl.theme.default.min.css
│ ├── popup.css
│ ├── responsive.css
│ ├── responsive.css.map
│ ├── style.css
│ ├── style.css.map
│ ├── style1.css
│ ├── styleAdmin.css
│ ├── stylead.css
│ ├── stylepage.css
│ ├── styles.css
│ ├── swiper.min.css
│ ├── vegas.min.css
│ └── vote.css
├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── icomoon
│ │ ├── Read Me.txt
│ │ ├── demo-files
│ │ │ ├── demo.css
│ │ │ └── demo.js
│ │ ├── demo.html
│ │ ├── fonts
│ │ │ ├── icomoon.eot
│ │ │ ├── icomoon.svg
│ │ │ ├── icomoon.ttf
│ │ │ └── icomoon.woff
│ │ ├── selection.json
│ │ └── style.css
│ ├── nucleo-icons.eot
│ ├── nucleo-icons.svg
│ ├── nucleo-icons.ttf
│ ├── nucleo-icons.woff
│ ├── nucleo-icons.woff2
│ ├── nucleo.eot
│ ├── nucleo.ttf
│ ├── nucleo.woff
│ └── nucleo.woff2
├── images
│ ├── aap.jpeg
│ ├── adminlogo.jpg
│ ├── apple-icon.png
│ ├── asdasd.png
│ ├── background
│ │ ├── India-2106x1406.webp
│ │ ├── banner-bg-1-1.jpg
│ │ ├── banner-bg-1-2.jpg
│ │ ├── banner-bg-1-3.jpg
│ │ ├── banner-bg-1-4.jpg
│ │ ├── cta-1-1-bg.jpg
│ │ ├── cta-2-1-bg.jpg
│ │ ├── footer-bg.jpg
│ │ ├── inner-banner-bg.jpg
│ │ └── video-bg-1-1.jpg
│ ├── bg-pricing.jpg
│ ├── bg-smart-home-1.jpg
│ ├── bg-smart-home-2.jpg
│ ├── bjp.jpeg
│ ├── blog
│ │ ├── author-1-1.jpg
│ │ ├── blog-1-1.jpg
│ │ ├── blog-1-2.jpg
│ │ ├── blog-1-3.jpg
│ │ ├── blog-1-4.jpg
│ │ ├── blog-1-5.jpg
│ │ ├── blog-1-6.jpg
│ │ ├── blog-d-1-1.jpg
│ │ ├── comment-1-1.jpg
│ │ ├── comment-1-2.jpg
│ │ ├── lp-1-1.jpg
│ │ ├── lp-1-2.jpg
│ │ └── lp-1-3.jpg
│ ├── bruce-mars.jpg
│ ├── campain
│ │ ├── campain-1-1.jpg
│ │ ├── campain-1-2.jpg
│ │ └── campain-1-3.jpg
│ ├── congress.jpeg
│ ├── cpm.jpeg
│ ├── down-arrow-dark.svg
│ ├── down-arrow-white.svg
│ ├── down-arrow.svg
│ ├── drake.jpg
│ ├── event
│ │ ├── event-1-1.gif
│ │ ├── event-1-1.jpg
│ │ ├── event-1-2.jpg
│ │ ├── event-1-3.jpg
│ │ ├── event-1-3.png
│ │ ├── event-2-1.jpg
│ │ ├── event-2-2.jpg
│ │ ├── event-2-3.jpg
│ │ ├── event-2-4.jpg
│ │ ├── event-2-5.jpg
│ │ └── event-2-6.jpg
│ ├── favicon.png
│ ├── favicons
│ │ ├── android-chrome-192x192.png
│ │ ├── android-chrome-512x512.png
│ │ ├── apple-touch-icon.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon.ico
│ │ └── site.webmanifest
│ ├── flags copy 2
│ │ ├── AU.png
│ │ ├── BR.png
│ │ ├── DE.png
│ │ ├── GB.png
│ │ └── US.png
│ ├── flags copy
│ │ ├── AU.png
│ │ ├── BR.png
│ │ ├── DE.png
│ │ ├── GB.png
│ │ └── US.png
│ ├── flags
│ │ ├── AU.png
│ │ ├── BR.png
│ │ ├── DE.png
│ │ ├── GB.png
│ │ └── US.png
│ ├── home-decor-1.jpg
│ ├── home-decor-2.jpg
│ ├── home-decor-3.jpg
│ ├── icons
│ │ └── flags
│ │ │ ├── AU.png
│ │ │ ├── BR.png
│ │ │ ├── DE.png
│ │ │ ├── GB.png
│ │ │ └── US.png
│ ├── illustrations copy 2
│ │ ├── chat.png
│ │ ├── danger-chat-ill.png
│ │ ├── dark-lock-ill.png
│ │ ├── error-404.png
│ │ ├── error-500.png
│ │ ├── illustration-lock.jpg
│ │ ├── illustration-reset.jpg
│ │ ├── illustration-signin.jpg
│ │ ├── illustration-signup.jpg
│ │ ├── illustration-verification.jpg
│ │ ├── lock.png
│ │ ├── pattern-tree.svg
│ │ └── rocket-white.png
│ ├── illustrations copy
│ │ ├── chat.png
│ │ ├── danger-chat-ill.png
│ │ ├── dark-lock-ill.png
│ │ ├── error-404.png
│ │ ├── error-500.png
│ │ ├── illustration-lock.jpg
│ │ ├── illustration-reset.jpg
│ │ ├── illustration-signin.jpg
│ │ ├── illustration-signup.jpg
│ │ ├── illustration-verification.jpg
│ │ ├── lock.png
│ │ ├── pattern-tree.svg
│ │ └── rocket-white.png
│ ├── illustrations
│ │ ├── chat.png
│ │ ├── danger-chat-ill.png
│ │ ├── dark-lock-ill.png
│ │ ├── error-404.png
│ │ ├── error-500.png
│ │ ├── illustration-lock.jpg
│ │ ├── illustration-reset.jpg
│ │ ├── illustration-signin.jpg
│ │ ├── illustration-signup.jpg
│ │ ├── illustration-verification.jpg
│ │ ├── lock.png
│ │ ├── pattern-tree.svg
│ │ └── rocket-white.png
│ ├── ivana-square.jpg
│ ├── ivana-squares.jpg
│ ├── ivancik.jpg
│ ├── kal-visuals-square.jpg
│ ├── loader.png
│ ├── loader1.png
│ ├── logo-ct-dark.png
│ ├── logo-ct.png
│ ├── logo-dark.png
│ ├── logo-full-light.png
│ ├── logo-light.png
│ ├── logos copy
│ │ ├── gray-logos
│ │ │ ├── logo-coinbase.svg
│ │ │ ├── logo-nasa.svg
│ │ │ ├── logo-netflix.svg
│ │ │ ├── logo-pinterest.svg
│ │ │ ├── logo-spotify.svg
│ │ │ └── logo-vodafone.svg
│ │ ├── mastercard.png
│ │ └── visa.png
│ ├── logos
│ │ ├── gray-logos
│ │ │ ├── logo-coinbase.svg
│ │ │ ├── logo-nasa.svg
│ │ │ ├── logo-netflix.svg
│ │ │ ├── logo-pinterest.svg
│ │ │ ├── logo-spotify.svg
│ │ │ └── logo-vodafone.svg
│ │ ├── mastercard.png
│ │ └── visa.png
│ ├── marie.jpg
│ ├── meeting.jpg
│ ├── office-dark.jpg
│ ├── our-team-cover-background.png
│ ├── product-12.jpg
│ ├── products
│ │ ├── product-1-min.jpg
│ │ ├── product-11.jpg
│ │ ├── product-2-min.jpg
│ │ ├── product-3-min.jpg
│ │ ├── product-4-min.jpg
│ │ ├── product-5-min.jpg
│ │ ├── product-6-min.jpg
│ │ ├── product-7-min.jpg
│ │ ├── product-details-1.jpg
│ │ ├── product-details-2.jpg
│ │ ├── product-details-3.jpg
│ │ ├── product-details-4.jpg
│ │ └── product-details-5.jpg
│ ├── resources
│ │ ├── about-1-1.jpg
│ │ ├── about-2-1.png
│ │ ├── about-2-2.png
│ │ ├── brand-1-1.png
│ │ ├── decor-lines.png
│ │ ├── decor-star-1-1.png
│ │ ├── decor-star-1-2.png
│ │ ├── dot-pattern-1-1.png
│ │ ├── event-1-1.gif
│ │ ├── event-details.jpg
│ │ ├── footer-post-1-1.png
│ │ ├── footer-post-1-2.png
│ │ ├── gallery-1-1.png
│ │ ├── gallery-1-2.png
│ │ ├── history-1-1.jpg
│ │ ├── history-1-2.jpg
│ │ ├── history-1-3.jpg
│ │ ├── history-1-4.jpg
│ │ ├── menu-active-star.png
│ │ ├── mission-vision.jpg
│ │ ├── sec-title-star.png
│ │ ├── service-1-1.jpg
│ │ ├── service-1-2.jpg
│ │ ├── service-1-3.jpg
│ │ ├── sign.png
│ │ ├── team-1-1.jpg
│ │ ├── team-1-2.jpg
│ │ ├── team-1-3.jpg
│ │ ├── video-1-1.jpg
│ │ ├── video-arrow.png
│ │ ├── volun-1-1.jpg
│ │ └── volun-1-2.jpg
│ ├── shapes
│ │ ├── pattern-lines.svg
│ │ └── waves-white.svg
│ ├── slider
│ │ ├── slider-1-1.jpg
│ │ ├── slider-1-2.jpg
│ │ └── slider-1-3.jpg
│ ├── small-logos
│ │ ├── bootstrap.svg
│ │ ├── creative-tim.svg
│ │ ├── devto.svg
│ │ ├── github.svg
│ │ ├── google-webdev.svg
│ │ ├── icon-bulb.svg
│ │ ├── icon-sun-cloud.png
│ │ ├── logo-asana.svg
│ │ ├── logo-atlassian.svg
│ │ ├── logo-invision.svg
│ │ ├── logo-jira.svg
│ │ ├── logo-slack.svg
│ │ ├── logo-spotify.svg
│ │ └── logo-xd.svg
│ ├── social
│ │ ├── facebook.png
│ │ ├── linkedin.png
│ │ └── twitter.png
│ ├── team-1.jpg
│ ├── team-2.jpg
│ ├── team-3.jpg
│ ├── team-4.jpg
│ ├── team-5.jpg
│ ├── tesla-model-s.png
│ ├── testimonials
│ │ ├── testimonials-1-bg.jpg
│ │ ├── testimonials-1-thumb.jpg
│ │ ├── testimonials-2-bg.jpg
│ │ ├── testimonials-2-thumb.jpg
│ │ ├── testimonials-3-bg.jpg
│ │ ├── testimonials-3-thumb.jpg
│ │ ├── testimonials-4-bg.jpg
│ │ └── testimonials-4-thumb.jpg
│ ├── tmc.jpeg
│ ├── users
│ │ ├── arvind.jfif
│ │ ├── cpim.jfif
│ │ ├── cpim.jpg
│ │ ├── mamata.jfif
│ │ ├── modi.jpg
│ │ ├── rahul.jfif
│ │ ├── user1.jpg
│ │ ├── user2.jpg
│ │ ├── user3.jpg
│ │ ├── user4.jpg
│ │ ├── user5.jpg
│ │ ├── user6.jpg
│ │ ├── user7.jpg
│ │ └── user8.jpg
│ └── vr-bg.jpg
├── inc
│ ├── mailchimp
│ │ ├── MCAPI.class.php
│ │ └── subscribe.php
│ └── sendemail.php
├── js
│ ├── TweenMax.min.js
│ ├── bootstrap-select.min.js
│ ├── bootstrap.bundle.min.js
│ ├── bootstrap.min.js
│ ├── confetti.js
│ ├── core
│ │ ├── bootstrap.bundle.min.js
│ │ ├── bootstrap.min.js
│ │ └── popper.min.js
│ ├── countdown.min.js
│ ├── jquery-3.3.1.min.js
│ ├── jquery.ajaxchimp.min.js
│ ├── jquery.counterup.min.js
│ ├── jquery.js
│ ├── jquery.magnific-popup.min.js
│ ├── jquery.min.js
│ ├── jquery.validate.min.js
│ ├── main.js
│ ├── material-dashboard.js
│ ├── material-dashboard.js.map
│ ├── material-dashboard.min.js
│ ├── nicepage.js
│ ├── owl.carousel.min.js
│ ├── plugins
│ │ ├── Chart.extension.js
│ │ ├── bootstrap-notify.js
│ │ ├── chartjs.min.js
│ │ ├── perfect-scrollbar.min.js
│ │ ├── smooth-scrollbar.min.js
│ │ └── world.js
│ ├── popper.min.js
│ ├── registration.js
│ ├── scriptadmin.js
│ ├── scriptpage.js
│ ├── swiper.min.js
│ ├── theme.js
│ ├── typed-2.0.11.js
│ ├── vegas.min.js
│ ├── waypoints.min.js
│ └── wow.js
├── plugins
│ └── potisen-icons
│ │ ├── Read Me.txt
│ │ ├── demo-files
│ │ ├── demo.css
│ │ └── demo.js
│ │ ├── demo.html
│ │ ├── fonts
│ │ ├── potisen-icon.eot
│ │ ├── potisen-icon.svg
│ │ ├── potisen-icon.ttf
│ │ └── potisen-icon.woff
│ │ ├── selection.json
│ │ └── style.css
├── scss
│ ├── _about.scss
│ ├── _accrodion.scss
│ ├── _blog.scss
│ ├── _brand.scss
│ ├── _campaign.scss
│ ├── _common.scss
│ ├── _contact.scss
│ ├── _countdown.scss
│ ├── _cta.scss
│ ├── _event.scss
│ ├── _fact.scss
│ ├── _footer.scss
│ ├── _header.scss
│ ├── _helper.scss
│ ├── _history.scss
│ ├── _inner-banner.scss
│ ├── _service.scss
│ ├── _sidebar.scss
│ ├── _slider.scss
│ ├── _social-shares.scss
│ ├── _team.scss
│ ├── _testimonials.scss
│ ├── _video.scss
│ ├── responsive.scss
│ └── style.scss
└── videos
│ ├── Home Page Video.mp4
│ ├── Registration Video.mp4
│ └── RegistrationVideo.mp4
└── templates
├── PendingUsers.html
├── account.html
├── admin.html
├── candidate.html
├── candidatesetting.html
├── contact.html
├── databasepart.html
├── email.html
├── error1.html
├── exist.html
├── faceverification.html
├── index.html
├── index2.html
├── newpassword.html
├── news.html
├── notifications.html
├── out.txt
├── pendingrequest.html
├── popup.html
├── register_new.html
├── result.html
├── sendotp.html
├── users.html
├── verifyVote.html
├── verify_OTP.html
├── verifyotp.html
├── vote.html
└── vote1.html
/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | target/
3 | !.mvn/wrapper/maven-wrapper.jar
4 | !**/src/main/**
5 | !**/src/test/**
6 |
7 | ### STS ###
8 | .apt_generated
9 | .classpath
10 | .factorypath
11 | .project
12 | .settings
13 | .springBeans
14 | .sts4-cache
15 |
16 | ### IntelliJ IDEA ###
17 | .idea
18 | *.iws
19 | *.iml
20 | *.ipr
21 |
22 | ### NetBeans ###
23 | /nbproject/private/
24 | /nbbuild/
25 | /dist/
26 | /nbdist/
27 | /.nb-gradle/
28 | build/
29 |
30 | ### VS Code ###
31 | .vscode/
32 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
3 |
--------------------------------------------------------------------------------
/Extra code/the-bouncer-at-403.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/Extra code/the-bouncer-at-403.zip
--------------------------------------------------------------------------------
/Extra code/the-bouncer-at-403/README.markdown:
--------------------------------------------------------------------------------
1 | # The Bouncer at 403
2 |
3 | A Pen created on CodePen.io. Original URL: [https://codepen.io/cassidoo/pen/rZQQrj](https://codepen.io/cassidoo/pen/rZQQrj).
4 |
5 | A 403 Forbidden page in pure CSS!
6 |
7 | Elements inspired by: https://dribbble.com/shots/3901100-Invite
8 |
--------------------------------------------------------------------------------
/Extra code/the-bouncer-at-403/dist/error.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CodePen - The Bouncer at 403
6 |
7 |
8 |
9 |
10 |
11 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Extra code/the-bouncer-at-403/license.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2022 by Cassidy (https://codepen.io/cassidoo/pen/rZQQrj)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
9 |
--------------------------------------------------------------------------------
/Extra code/the-bouncer-at-403/src/index.haml:
--------------------------------------------------------------------------------
1 | .hover
2 | .background
3 | .door 403
4 | .rug
5 | .foreground
6 | .bouncer
7 | .head
8 | .neck
9 | .eye.left
10 | .eye.right
11 | .ear
12 | .body
13 | .arm
14 | .poles
15 | .pole.left
16 | .pole.right
17 | .rope
--------------------------------------------------------------------------------
/Screenshots/Image 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/Screenshots/Image 1.png
--------------------------------------------------------------------------------
/Screenshots/Image 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/Screenshots/Image 2.png
--------------------------------------------------------------------------------
/Screenshots/Image 3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/Screenshots/Image 3.jpg
--------------------------------------------------------------------------------
/Screenshots/Image 4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/Screenshots/Image 4.png
--------------------------------------------------------------------------------
/Screenshots/Image 5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/Screenshots/Image 5.png
--------------------------------------------------------------------------------
/Screenshots/Image 6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/Screenshots/Image 6.png
--------------------------------------------------------------------------------
/Screenshots/Image 7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/Screenshots/Image 7.png
--------------------------------------------------------------------------------
/candidate-photos/jyoticpm/cpim.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/candidate-photos/jyoticpm/cpim.jpg
--------------------------------------------------------------------------------
/candidate-photos/modibjp/modi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/candidate-photos/modibjp/modi.jpg
--------------------------------------------------------------------------------
/discuss.txt:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Jyoti Basu
12 |
Left Front
13 |
14 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
Arvind Kejriwal
33 |
Aam Admi Party
34 |
35 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
Mamata Banerjee
53 |
Trinomool Congress
54 |
55 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | org.springframework.boot
7 | spring-boot-starter-parent
8 | 2.2.4.RELEASE
9 |
10 |
11 | net.codejava
12 | SpringBootForm
13 | 1.0
14 | SpringBootForm
15 | Form handling with Spring Boot and Thymeleaf
16 |
17 |
18 | 1.8
19 |
20 |
21 |
22 |
23 | org.springframework.boot
24 | spring-boot-starter-thymeleaf
25 |
26 |
27 | org.springframework.boot
28 | spring-boot-starter-web
29 |
30 |
31 |
32 | org.springframework.boot
33 | spring-boot-devtools
34 | runtime
35 | true
36 |
37 |
38 |
39 | mysql
40 | mysql-connector-java
41 | runtime
42 |
43 |
44 |
45 | org.springframework.boot
46 | spring-boot-starter-data-jpa
47 |
48 |
49 |
50 | org.springframework.boot
51 | spring-boot-starter-security
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | org.springframework.boot
60 | spring-boot-maven-plugin
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/SpringBootFormApplication.java:
--------------------------------------------------------------------------------
1 | package net.codejava;
2 |
3 | import java.util.Date;
4 |
5 | import org.springframework.beans.factory.annotation.Autowired;
6 | import org.springframework.boot.CommandLineRunner;
7 | import org.springframework.boot.SpringApplication;
8 | import org.springframework.boot.autoconfigure.SpringBootApplication;
9 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
10 |
11 | import net.codejava.model.Block;
12 | import net.codejava.model.User;
13 | import net.codejava.model.Votedata;
14 | import net.codejava.repository.UserRepo;
15 | import net.codejava.repository.VoteRepo;
16 |
17 | @SpringBootApplication
18 | public class SpringBootFormApplication implements CommandLineRunner {
19 |
20 | public static void main(String[] args) {
21 | SpringApplication.run(SpringBootFormApplication.class, args);
22 | }
23 |
24 | @Autowired
25 | UserRepo userRepo;
26 |
27 | @Autowired
28 | VoteRepo voteRepo;
29 |
30 | @Autowired
31 | private BCryptPasswordEncoder passwordEncoder;
32 |
33 | @Override
34 | public void run(String... args) throws Exception {
35 |
36 | // Admin id and password
37 |
38 | User user1 = new User();
39 | user1.setUsername("admin");
40 |
41 | user1.setEmail("admin@gmail.com");
42 | user1.setPassword(passwordEncoder.encode("1234"));
43 | user1.setRole("ROLE_ADMIN");
44 | user1.setVotestatus("0");
45 |
46 | // this.userRepo.save(user1);
47 |
48 | // -------------------first block --------------------- //
49 |
50 | String[] initialValues = { "admin", null, "cpm" };
51 | String candidateHash = "0";
52 | Block candidate = new Block(initialValues, candidateHash);
53 | candidateHash = candidate.getBlockHash();
54 |
55 | Votedata initialvote = new Votedata();
56 | initialvote.setUsername("admin");
57 | initialvote.setPrevhash("0");
58 | initialvote.setCurrhash(candidateHash);
59 | Date date = new Date();
60 | initialvote.setDate(date);
61 |
62 | // this.voteRepo.save(initialvote);
63 | // voteRepo.copyData();
64 | // voteRepo.copyData(initialvote.getUsername(), initialvote.getCurrhash(), initialvote.getDate(), initialvote.getPrevhash());
65 |
66 | // System.out.println(firstPartyBlock.hashCode());
67 | // blockchain1.add(candidate);
68 |
69 | }
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/config/mySecurityConfig.java:
--------------------------------------------------------------------------------
1 | package net.codejava.config;
2 |
3 | import org.springframework.beans.factory.annotation.Autowired;
4 | import org.springframework.context.annotation.Bean;
5 | import org.springframework.context.annotation.Configuration;
6 | import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
7 | import org.springframework.security.config.annotation.web.builders.HttpSecurity;
8 | import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
9 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
10 | import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
11 | import net.codejava.service.CustomUserDetailsService;
12 |
13 |
14 |
15 | @Configuration
16 |
17 | public class mySecurityConfig extends WebSecurityConfigurerAdapter{
18 |
19 | @Override
20 | protected void configure(HttpSecurity http) throws Exception {
21 |
22 | http
23 | .csrf().disable()
24 | .authorizeRequests()
25 | .antMatchers("/index","/register","/js/**","/css/**","/fonts/**","/images/**","/inc/**","/scss/**","/plugin/**","/templates/register","/SweetAlert/**","/Register","/error","/forgotpassword/**","/news","/contact", "/sendemail","/videos/**","/getGraphData/**","/verify/**").permitAll()
26 | .antMatchers("/public/**","/vote/**").hasRole("USER")//only people with role user can access these pages
27 | .antMatchers("/admin/**").hasRole("ADMIN")
28 | //.antMatchers("/public/**").permitAll() doesnt authenticate these pages
29 | .anyRequest()
30 | .authenticated()
31 | .and()
32 | //.httpBasic();
33 | .formLogin()
34 | .loginPage("/index")
35 | .loginProcessingUrl("/dologin")
36 | .defaultSuccessUrl("/default",true)
37 | // if login is successfull, system will be redirected to this url(/default)
38 | .and()
39 | .logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/index");
40 |
41 | }
42 |
43 | @Autowired
44 | private CustomUserDetailsService userDetailsService;
45 |
46 | @Override
47 | protected void configure(AuthenticationManagerBuilder auth) throws Exception {
48 |
49 | auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
50 | // spring security provides authentication
51 | }
52 |
53 | @Bean
54 | public BCryptPasswordEncoder passwordEncoder() {
55 | //for encrypting the password using Bcryt object
56 | return new BCryptPasswordEncoder(10);
57 | }
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/controller/CandidateController.java:
--------------------------------------------------------------------------------
1 | package net.codejava.controller;
2 |
3 | import org.springframework.ui.Model;
4 | import org.springframework.web.bind.annotation.GetMapping;
5 | import org.springframework.web.bind.annotation.PostMapping;
6 |
7 | import java.util.*;
8 |
9 |
10 | public class CandidateController {
11 |
12 |
13 |
14 | }
--------------------------------------------------------------------------------
/src/main/java/net/codejava/helper/SHA256.java:
--------------------------------------------------------------------------------
1 | package net.codejava.helper;
2 |
3 | import java.io.UnsupportedEncodingException;
4 | import java.nio.charset.StandardCharsets;
5 | import java.security.MessageDigest;
6 | import java.security.NoSuchAlgorithmException;
7 | // import com.google.common.hash.Hashing;
8 |
9 |
10 |
11 | public class SHA256 {
12 |
13 | public static String getSHA(String[] input, String prevHash) throws NoSuchAlgorithmException {
14 |
15 | String password="";
16 | for(String str:input){
17 | password+=str;
18 | }
19 |
20 | password+=prevHash;
21 |
22 | //System.out.println(password.toString());
23 | MessageDigest md = MessageDigest.getInstance("SHA-256");
24 | byte[] hashInBytes = md.digest(password.getBytes(StandardCharsets.UTF_8));
25 |
26 | StringBuilder sb = new StringBuilder();
27 | for (byte b : hashInBytes) {
28 | sb.append(String.format("%02x", b));
29 | }
30 | return sb.toString();
31 | }
32 | }
--------------------------------------------------------------------------------
/src/main/java/net/codejava/model/Candidate.java:
--------------------------------------------------------------------------------
1 | package net.codejava.model;
2 |
3 | import java.beans.Transient;
4 |
5 | import javax.persistence.Entity;
6 | import javax.persistence.Id;
7 |
8 | @Entity
9 | public class Candidate{
10 |
11 | @Id
12 | //@GeneratedValue(strategy = GenerationType.AUTO)
13 | private String username;
14 |
15 | private String firstname;
16 | private String lastname;
17 |
18 | private String party;
19 |
20 | private String partypic;
21 | private String candidatepic;
22 |
23 | public String getUsername() {
24 | return username;
25 | }
26 | public void setUsername(String username) {
27 | this.username = username;
28 | }
29 | public String getFirstname() {
30 | return firstname;
31 | }
32 | public void setFirstname(String firstname) {
33 | this.firstname = firstname;
34 | }
35 | public String getLastname() {
36 | return lastname;
37 | }
38 | public void setLastname(String lastname) {
39 | this.lastname = lastname;
40 | }
41 |
42 |
43 | public String getParty() {
44 | return party;
45 | }
46 | public void setParty(String party) {
47 | this.party = party;
48 | }
49 | public String getPartypic() {
50 | return partypic;
51 | }
52 | public void setPartypic(String partypic) {
53 | this.partypic = partypic;
54 | }
55 | public String getCandiatepic() {
56 | return candidatepic;
57 | }
58 | public void setCandidatepic(String canidatepic) {
59 | this.candidatepic = canidatepic;
60 | }
61 |
62 | @Transient
63 | public String getCandidateImagePath() {
64 | if (candidatepic == null || username == null)
65 | return null;
66 |
67 | return "/candidate-photos/" + username + "/" + candidatepic;
68 | }
69 |
70 | @Transient
71 | public String getCandidatePicImagePath() {
72 | if (candidatepic == null || username == null)
73 | return null;
74 |
75 | return candidatepic;
76 | }
77 |
78 |
79 |
80 | }
--------------------------------------------------------------------------------
/src/main/java/net/codejava/model/CustomUserDetails.java:
--------------------------------------------------------------------------------
1 | package net.codejava.model;
2 |
3 | import java.util.Collection;
4 | import java.util.HashSet;
5 |
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.security.core.GrantedAuthority;
8 | import org.springframework.security.core.authority.SimpleGrantedAuthority;
9 | import org.springframework.security.core.userdetails.UserDetails;
10 |
11 | public class CustomUserDetails implements UserDetails{
12 |
13 | /**
14 | *
15 | */
16 | //private static final long serialVersionUID = 1L;
17 | @Autowired
18 | private User user;
19 |
20 | public CustomUserDetails(User userSecurity) {
21 | super();
22 | this.user = userSecurity;
23 | }
24 |
25 | @Override
26 | public Collection extends GrantedAuthority> getAuthorities() {
27 | // TODO Auto-generated method stub
28 | HashSet set = new HashSet<>();
29 | set.add(new SimpleGrantedAuthority(this.user.getRole()));
30 |
31 | return set;
32 | }
33 |
34 |
35 | @Override
36 | public String getUsername() {
37 | // TODO Auto-generated method stub
38 | return this.user.getUsername();
39 | }
40 |
41 | @Override
42 | public String getPassword() {
43 | // TODO Auto-generated method stub
44 | return this.user.getPassword();
45 | }
46 |
47 |
48 | @Override
49 | public boolean isAccountNonExpired() {
50 | // TODO Auto-generated method stub
51 | return true;
52 | }
53 |
54 | @Override
55 | public boolean isAccountNonLocked() {
56 | // TODO Auto-generated method stub
57 | return true;
58 | }
59 |
60 | @Override
61 | public boolean isCredentialsNonExpired() {
62 | // TODO Auto-generated method stub
63 | return true;
64 | }
65 |
66 | @Override
67 | public boolean isEnabled() {
68 | // TODO Auto-generated method stub
69 | return true;
70 | }
71 |
72 | }
73 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/model/Votedata.java:
--------------------------------------------------------------------------------
1 | package net.codejava.model;
2 |
3 | import java.util.*;
4 | import javax.persistence.Entity;
5 | import javax.persistence.Id;
6 |
7 | @Entity
8 | public class Votedata {
9 |
10 | @Id
11 | String username;
12 |
13 | String prevhash;
14 | String currhash;
15 | Date date;
16 |
17 | public String getUsername() {
18 | return username;
19 | }
20 |
21 | public void setUsername(String username) {
22 | this.username = username;
23 | }
24 |
25 | public String getPrevhash() {
26 | return prevhash;
27 | }
28 |
29 | public void setPrevhash(String prevhash) {
30 | this.prevhash = prevhash;
31 | }
32 |
33 | public String getCurrhash() {
34 | return currhash;
35 | }
36 |
37 | public void setCurrhash(String currhash) {
38 | this.currhash = currhash;
39 | }
40 |
41 | public Date getDate() {
42 | return date;
43 | }
44 |
45 | public void setDate(Date date) {
46 |
47 | this.date = date;
48 | }
49 |
50 | @Override
51 | public String toString() {
52 | return "Votedata [currhash=" + currhash + ", prevhash=" + prevhash + ", username=" + username + "]";
53 | }
54 |
55 | }
--------------------------------------------------------------------------------
/src/main/java/net/codejava/repository/CandidateRepo.java:
--------------------------------------------------------------------------------
1 | package net.codejava.repository;
2 |
3 | import org.springframework.data.jpa.repository.JpaRepository;
4 | import org.springframework.stereotype.Repository;
5 | import net.codejava.model.Candidate;
6 |
7 |
8 | @Repository
9 | public interface CandidateRepo extends JpaRepository {
10 |
11 | public Candidate findByFirstname(String firstname);
12 |
13 | public Candidate findByParty(String partyname);
14 | }
--------------------------------------------------------------------------------
/src/main/java/net/codejava/repository/PendingRepo.java:
--------------------------------------------------------------------------------
1 | package net.codejava.repository;
2 |
3 | import org.springframework.data.jpa.repository.JpaRepository;
4 | import org.springframework.data.jpa.repository.Query;
5 | import net.codejava.model.Pending;
6 |
7 | public interface PendingRepo extends JpaRepository{
8 |
9 |
10 | @Query("SELECT u FROM Pending u WHERE u.username = :username")
11 | public Pending findByUsername(String username);
12 | /*
13 | @Query("delete from User e where e.username =:username and fileName =:fileName")
14 | public void deleteEmployeeWithFile(String username, String fileName);
15 | */
16 |
17 | @Query(value = "SELECT count(*) FROM pending", nativeQuery = true)
18 | public Long findPendingCount();
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/repository/UserRepo.java:
--------------------------------------------------------------------------------
1 | package net.codejava.repository;
2 |
3 | import org.springframework.data.jpa.repository.JpaRepository;
4 | import org.springframework.data.jpa.repository.Query;
5 | import net.codejava.model.User;
6 |
7 | public interface UserRepo extends JpaRepository{
8 |
9 | @Query("SELECT u FROM User u WHERE u.username = :username")
10 | public User findByUsername(String username);
11 |
12 | @Query("delete from User e where e.username =:username and fileName =:fileName")
13 | public void deleteEmployeeWithFile(String username, String fileName);
14 |
15 | @Query(value = "SELECT count(*) FROM user", nativeQuery = true)
16 | public Long findUserCount();
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/repository/VoteRepo.java:
--------------------------------------------------------------------------------
1 | package net.codejava.repository;
2 |
3 | import java.util.Date;
4 |
5 | import org.springframework.data.jpa.repository.JpaRepository;
6 | import org.springframework.data.jpa.repository.Modifying;
7 | import org.springframework.data.jpa.repository.Query;
8 | import org.springframework.data.repository.query.Param;
9 | import org.springframework.transaction.annotation.Transactional;
10 |
11 | import net.codejava.model.Votedata;
12 |
13 | public interface VoteRepo extends JpaRepository {
14 |
15 | @Query("SELECT u FROM Votedata u WHERE u.username = :username")
16 | public Votedata findByUsername(String username);
17 |
18 | @Query(value = "SELECT * FROM votedata WHERE date = (SELECT date FROM votedata order by date desc limit 1)", nativeQuery = true)
19 | public Votedata findLastEntry();
20 |
21 | @Modifying
22 | @Transactional
23 | @Query(value = "INSERT INTO votecopy(username,currhash,date,prevhash) values(:username,:currhash,:date,:prevhash) ", nativeQuery = true)
24 | public void copyData(@Param("username") String username,@Param("currhash")String currhash,@Param("date")Date date,@Param("prevhash")String prevhash);
25 | //public Votedata copyData(String username,String currhash, Date date, String prevhash);
26 |
27 | @Modifying
28 | @Transactional
29 | @Query(value="INSERT INTO votedata SELECT * FROM votecopy;",nativeQuery=true)
30 | public void copyData();
31 |
32 | @Query(value = "SELECT count(*) FROM votecopy", nativeQuery = true)
33 | public Long findcount();
34 |
35 | public Votedata findByCurrhash(String currhash);
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/service/CandidateService.java:
--------------------------------------------------------------------------------
1 | package net.codejava.service;
2 | import java.io.File;
3 | import java.util.*;
4 |
5 | import org.apache.tomcat.util.http.fileupload.FileUtils;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.stereotype.Service;
8 | import net.codejava.model.Candidate;
9 | import net.codejava.repository.CandidateRepo;
10 |
11 | @Service
12 | public class CandidateService {
13 |
14 | @Autowired
15 | CandidateRepo candidateRepo;
16 |
17 | public List getAllCandidates() {
18 |
19 | return candidateRepo.findAll();
20 | }
21 |
22 | public Candidate getCandidate(String firstname) {
23 | return candidateRepo.findByFirstname(firstname);
24 | }
25 |
26 | public boolean deleteCandidates(String username, String filename, String path) {
27 | boolean status = false;
28 | try {
29 | if (username != null && filename != null) {
30 | System.out.println("deleting user " + username);
31 |
32 | candidateRepo.deleteById(username);
33 | FileUtils.deleteDirectory(new File(path));
34 | System.out.println();
35 | return status;
36 | }
37 | } catch (Exception e) {
38 | e.printStackTrace();
39 | return status;
40 | }
41 | return status;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/service/CustomUserDetailsService.java:
--------------------------------------------------------------------------------
1 | package net.codejava.service;
2 |
3 | import org.springframework.beans.factory.annotation.Autowired;
4 | import org.springframework.security.core.userdetails.UserDetails;
5 | import org.springframework.security.core.userdetails.UserDetailsService;
6 | import org.springframework.security.core.userdetails.UsernameNotFoundException;
7 | import org.springframework.stereotype.Service;
8 |
9 |
10 | import net.codejava.model.CustomUserDetails;
11 | import net.codejava.model.User;
12 | import net.codejava.repository.UserRepo;
13 |
14 | @Service
15 | public class CustomUserDetailsService implements UserDetailsService {
16 |
17 | @Autowired
18 | private UserRepo repo;
19 |
20 | @Override
21 | public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
22 |
23 | // TODO Auto-generated method stub
24 |
25 | User user = this.repo.findByUsername(username);
26 |
27 | if(user==null)
28 | throw new UsernameNotFoundException("User not found!!!");
29 |
30 | return new CustomUserDetails(user);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/service/EmailService.java:
--------------------------------------------------------------------------------
1 | package net.codejava.service;
2 |
3 | import javax.mail.*;
4 | import javax.mail.internet.InternetAddress;
5 | import javax.mail.internet.MimeMessage;
6 | import java.util.Properties;
7 |
8 | import org.springframework.stereotype.Service;
9 |
10 | @Service
11 | public class EmailService {
12 | public boolean sendEmail(String subject, String message, String to) {
13 | boolean f = false;
14 | String from = "donotreplysovs@gmail.com";
15 | String host = "smtp.gmail.com";
16 | Properties properties = System.getProperties();
17 | System.out.println("Properties" + properties);
18 | properties.put("mail.smtp.host", host);
19 | properties.put("mail.smtp.port", "465");
20 | properties.put("mail.smtp.ssl.enable", "true");
21 | properties.put("mail.smtp.auth", "true");
22 | Session session = Session.getInstance(properties, new Authenticator() {
23 | @Override
24 | protected PasswordAuthentication getPasswordAuthentication() {
25 | return new PasswordAuthentication("donotreplysovs@gmail.com", "hcnzzzanqlgdyhbn");
26 | }
27 |
28 | });
29 |
30 | session.setDebug(true);
31 |
32 | // step 2 : compose message
33 | MimeMessage m = new MimeMessage(session);
34 |
35 | try {
36 | m.setFrom(from);
37 | m.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
38 | m.setSubject(subject);
39 | // m.setText(message);
40 |
41 | m.setContent(message,"text/html");
42 |
43 | // step 3 : send message
44 | Transport.send(m);
45 | System.out.println("sent success");
46 | f = true;
47 | } catch (Exception e) {
48 | e.printStackTrace();
49 | }
50 | return f;
51 |
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/main/java/net/codejava/service/UserService.java:
--------------------------------------------------------------------------------
1 | package net.codejava.service;
2 |
3 | import java.io.File;
4 | import java.util.*;
5 |
6 | import org.apache.tomcat.util.http.fileupload.FileUtils;
7 | import org.springframework.beans.factory.annotation.Autowired;
8 | import org.springframework.stereotype.Service;
9 |
10 | import net.codejava.model.Pending;
11 | import net.codejava.model.User;
12 | import net.codejava.repository.PendingRepo;
13 | import net.codejava.repository.UserRepo;
14 |
15 | @Service
16 | public class UserService {
17 |
18 | @Autowired
19 | UserRepo repo;
20 |
21 | @Autowired
22 | PendingRepo pending;
23 |
24 | List list = new ArrayList<>();
25 |
26 | /*public UserSecurityService() {
27 | list.add(new User("abc","1234","abc@gmail.com"));
28 | list.add(new User("xyz","1234","xyz@gmail.com"));
29 |
30 | }*/
31 |
32 | //get all users
33 | public List getAllUsers(){
34 | return repo.findAll();
35 | }
36 |
37 | public List getAllPendingUsers(){
38 | return pending.findAll();
39 | }
40 | public Pending getPendingUser(String username){
41 | Pending user = pending.findByUsername(username);
42 | return user;
43 | }
44 |
45 | //get single user
46 | public User getUser(String username) {
47 |
48 | User user = repo.findByUsername(username);
49 | return user;
50 | }
51 |
52 | public boolean userExists(String username) {
53 | Pending user = pending.findByUsername(username);
54 | if (user != null) {
55 | return true;
56 | }
57 | return false;
58 | }
59 |
60 | public boolean deleteUser(String username, String filename, String path) {
61 | boolean status = false;
62 | try {
63 | if (username != null && filename != null) {
64 | System.out.println("deleting user " + username);
65 |
66 | repo.deleteById(username);
67 | //repo.deleteEmployeeWithFile(username, filename);
68 | //File fileToDelete = new File(path);
69 | //FileUtils fileToDelete = new FileUtils();
70 | //status = fileToDelete.deleteDirectory(path);
71 | FileUtils.deleteDirectory(new File(path));
72 | System.out.println();
73 | return status;
74 | }
75 | } catch (Exception e) {
76 | e.printStackTrace();
77 | return status;
78 | }
79 | return status;
80 | }
81 |
82 | public boolean deletePendingUser(String username, String filename, String path) {
83 | boolean status = false;
84 | try {
85 | if (username != null && filename != null) {
86 | System.out.println("deleting user " + username);
87 |
88 | pending.deleteById(username);
89 |
90 | FileUtils.deleteDirectory(new File(path));
91 | System.out.println();
92 | return status;
93 | }
94 | } catch (Exception e) {
95 | e.printStackTrace();
96 | return status;
97 | }
98 | return status;
99 | }
100 |
101 | /*//add user
102 | public Usersecurity addUser(Usersecurity user) {
103 | list.add(user);
104 |
105 | return user;
106 | }*/
107 |
108 | }
109 |
--------------------------------------------------------------------------------
/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 | server.port=4000
2 |
3 | spring.datasource.url=jdbc:mysql://localhost:3306/collegeproject
4 | spring.datasource.platform=mysql
5 | spring.datasource.username=root
6 | spring.datasource.password=
7 |
8 |
9 | spring.jpa.show-sql=true
10 | spring.jpa.hibernate.ddl-auto=update
11 | spring.jpa.properties.hibernate.format.sql=true
12 |
13 | spring.servlet.multipart.max-file-size=-1
14 | spring.servlet.multipart.max-request-size=-1
15 |
16 | server.servlet.session.timeout=600s
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/resources/banner.txt:
--------------------------------------------------------------------------------
1 | ,#@@@ :;*?%%?*+: +@@@@@$ +@@@@@$ #@@@@
2 | :%#@@@@* +$@@@@@@@@@@$*, +@@@@@$ :@@@@@@, :?#@@@@@
3 | *@@@@@@@@; :$@@@@@@@@@@@@@@#+ *@@@@@$ :@@@@@#, *@@@@@@@@;
4 | ;@@@@@@?;;: ;@@@@@@@#%%$@@@@@@@* *@@@@@? :@@@@@#, :@@@@@@?;;:
5 | +@@@@@# ,#@@@@@%: ,*@@@@@@; ?@@@@@* :@@@@@#, ;@@@@@#,
6 | ,#@@@@@%, *@@@@@? ;@@@@@$ +@@@@@? +@@@@@% ,#@@@@@%,
7 | :$@@@@@$: %@@@@@: $@@@@#, ,$@@@@@; :#@@@@#: :$@@@@@#:
8 | ,?@@@@@@: %@@@@@: $@@@@#, ,#@@@@#: ,$@@@@@+ ,?@@@@@@;
9 | %@@@@@% *@@@@@? +@@@@@$ ;@@@@@$:%@@@@@* ?@@@@@$
10 | :$@@@@@$ ,*%$?; ,#@@@@@%: :?@@@@@@; ,*%$?; +@@@@@@@@@@@? ,@@@%; ,$@@@@@#,
11 | ,*?$@@@@@@@+ :#@@@@@+ ;#@@@@@@#%%$@@@@@@@* ,#@@@@@+ *@@@@@@@@@%, :#@@@@@+ *?$@@@@@@@*
12 | ?@@@@@@@@+ +@@@@@@% :$@@@@@@@@@@@@@@#+ ;@@@@@@$ ?@@@@@@@$, +@@@@@@$ ?@@@@@@@@*
13 | ,%@@@@#*: ,$@@@@@; ;%@@@@@@@@@@$*, ,$@@@@@+ ,$@@@@@#: ,$@@@@@; ?@@@@#?:
14 | ,*?+:, ,+??*: ,;*??%?*+: ,+??*: ,+++++: ,+??*: *?+:,
--------------------------------------------------------------------------------
/src/main/resources/static/Image upload/app.js:
--------------------------------------------------------------------------------
1 | const firebaseConfig = {
2 | apiKey: "AIzaSyBlURLnoIf03EtL9_4-sO2P5JUNey0fwas",
3 | authDomain: "votingsystem-50457.firebaseapp.com",
4 | projectId: "votingsystem-50457",
5 | storageBucket: "votingsystem-50457.appspot.com",
6 | messagingSenderId: "921649283781",
7 | appId: "1:921649283781:web:2282753d762b4aed5a26ac",
8 | measurementId: "G-1NBGH772J9"
9 | };
10 |
11 | // Initialize Firebase
12 | const app = initializeApp(firebaseConfig);
--------------------------------------------------------------------------------
/src/main/resources/static/Image upload/firebase.txt:
--------------------------------------------------------------------------------
1 | // Import the functions you need from the SDKs you need
2 | import { initializeApp } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-storage.js";
3 | import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-analytics.js";
4 | // TODO: Add SDKs for Firebase products that you want to use
5 | // https://firebase.google.com/docs/web/setup#available-libraries
6 |
7 | // Your web app's Firebase configuration
8 | // For Firebase JS SDK v7.20.0 and later, measurementId is optional
9 | const firebaseConfig = {
10 | apiKey: "AIzaSyBlURLnoIf03EtL9_4-sO2P5JUNey0fwas",
11 | authDomain: "votingsystem-50457.firebaseapp.com",
12 | projectId: "votingsystem-50457",
13 | storageBucket: "votingsystem-50457.appspot.com",
14 | messagingSenderId: "921649283781",
15 | appId: "1:921649283781:web:2282753d762b4aed5a26ac",
16 | measurementId: "G-1NBGH772J9"
17 | };
18 |
19 | // Initialize Firebase
20 | const app = initializeApp(firebaseConfig);
21 | const analytics = getAnalytics(app);
--------------------------------------------------------------------------------
/src/main/resources/static/Image upload/script.js:
--------------------------------------------------------------------------------
1 | // Import the functions you need from the SDKs you need
2 | import { initializeApp } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-storage.js";
3 | import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-analytics.js";
4 | // TODO: Add SDKs for Firebase products that you want to use
5 | // https://firebase.google.com/docs/web/setup#available-libraries
6 |
7 | // Your web app's Firebase configuration
8 | // For Firebase JS SDK v7.20.0 and later, measurementId is optional
9 | const firebaseConfig = {
10 | apiKey: "AIzaSyBlURLnoIf03EtL9_4-sO2P5JUNey0fwas",
11 | authDomain: "votingsystem-50457.firebaseapp.com",
12 | projectId: "votingsystem-50457",
13 | storageBucket: "votingsystem-50457.appspot.com",
14 | messagingSenderId: "921649283781",
15 | appId: "1:921649283781:web:2282753d762b4aed5a26ac",
16 | measurementId: "G-1NBGH772J9"
17 | };
18 |
19 | // Initialize Firebase
20 | const app = initializeApp(firebaseConfig);
21 | const analytics = getAnalytics(app);
22 | console.log(firebase)
23 | function uploadImage() {
24 | const ref = firebase.storage().ref();
25 | const file = document.querySelector("#photo").files[0];
26 | const name = new Date() + "-" + file.name;
27 | const metadata = {
28 | contentType: file.type
29 | };
30 | const task = ref.child(name).put(file, metadata);
31 | task
32 | .then(snapshot => snapshot.ref.getDownloadURL())
33 | .then(url => {
34 | console.log(url);
35 | alert("Image Upload Successful")
36 |
37 | document.querySelector("#image").src = url;
38 | })
39 | .catch(console.error);
40 | }
--------------------------------------------------------------------------------
/src/main/resources/static/Image upload/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Firebase Image Upload in Javascript
8 |
9 |
10 |
11 |
12 | Upload Image
13 |
14 |
15 |
16 |
17 |
18 |
63 |
--------------------------------------------------------------------------------
/src/main/resources/static/Image upload/test2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | ImageUpload
8 |
9 |
10 |
11 |
12 | Upload Image
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
65 |
66 |
--------------------------------------------------------------------------------
/src/main/resources/static/SweetAlert/README.md:
--------------------------------------------------------------------------------
1 | # SweetAlert
2 | Registration Successful msg with SweetAlert
3 |
--------------------------------------------------------------------------------
/src/main/resources/static/SweetAlert/registration.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | HTML Forms
11 |
12 |
19 |
20 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/css/.DS_Store
--------------------------------------------------------------------------------
/src/main/resources/static/css/nucleo-svg.css:
--------------------------------------------------------------------------------
1 | /* Generated using nucleoapp.com */
2 | /* --------------------------------
3 |
4 | Icon colors
5 |
6 | -------------------------------- */
7 |
8 | .icon {
9 | display: inline-block;
10 | /* icon primary color */
11 | color: #111111;
12 | height: 1em;
13 | width: 1em;
14 | }
15 |
16 | .icon use {
17 | /* icon secondary color - fill */
18 | fill: #7ea6f6;
19 | }
20 |
21 | .icon.icon-outline use {
22 | /* icon secondary color - stroke */
23 | stroke: #7ea6f6;
24 | }
25 |
26 | /* --------------------------------
27 |
28 | Change icon size
29 |
30 | -------------------------------- */
31 |
32 | .icon-xs {
33 | height: 0.5em;
34 | width: 0.5em;
35 | }
36 |
37 | .icon-sm {
38 | height: 0.8em;
39 | width: 0.8em;
40 | }
41 |
42 | .icon-lg {
43 | height: 1.6em;
44 | width: 1.6em;
45 | }
46 |
47 | .icon-xl {
48 | height: 2em;
49 | width: 2em;
50 | }
51 |
52 | /* --------------------------------
53 |
54 | Align icon and text
55 |
56 | -------------------------------- */
57 |
58 | .icon-text-aligner {
59 | /* add this class to parent element that contains icon + text */
60 | display: flex;
61 | align-items: center;
62 | }
63 |
64 | .icon-text-aligner .icon {
65 | color: inherit;
66 | margin-right: 0.4em;
67 | }
68 |
69 | .icon-text-aligner .icon use {
70 | color: inherit;
71 | fill: currentColor;
72 | }
73 |
74 | .icon-text-aligner .icon.icon-outline use {
75 | stroke: currentColor;
76 | }
77 |
78 | /* --------------------------------
79 |
80 | Icon reset values - used to enable color customizations
81 |
82 | -------------------------------- */
83 |
84 | .icon {
85 | fill: currentColor;
86 | stroke: none;
87 | }
88 |
89 | .icon.icon-outline {
90 | fill: none;
91 | stroke: currentColor;
92 | }
93 |
94 | .icon use {
95 | stroke: none;
96 | }
97 |
98 | .icon.icon-outline use {
99 | fill: none;
100 | }
101 |
102 | /* --------------------------------
103 |
104 | Stroke effects - Nucleo outline icons
105 |
106 | - 16px icons -> up to 1px stroke (16px outline icons do not support stroke changes)
107 | - 24px, 32px icons -> up to 2px stroke
108 | - 48px, 64px icons -> up to 4px stroke
109 |
110 | -------------------------------- */
111 |
112 | .icon-outline.icon-stroke-1 {
113 | stroke-width: 1px;
114 | }
115 |
116 | .icon-outline.icon-stroke-2 {
117 | stroke-width: 2px;
118 | }
119 |
120 | .icon-outline.icon-stroke-3 {
121 | stroke-width: 3px;
122 | }
123 |
124 | .icon-outline.icon-stroke-4 {
125 | stroke-width: 4px;
126 | }
127 |
128 | .icon-outline.icon-stroke-1 use,
129 | .icon-outline.icon-stroke-3 use {
130 | -webkit-transform: translateX(0.5px) translateY(0.5px);
131 | -moz-transform: translateX(0.5px) translateY(0.5px);
132 | -ms-transform: translateX(0.5px) translateY(0.5px);
133 | -o-transform: translateX(0.5px) translateY(0.5px);
134 | transform: translateX(0.5px) translateY(0.5px);
135 | }
--------------------------------------------------------------------------------
/src/main/resources/static/css/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}
--------------------------------------------------------------------------------
/src/main/resources/static/css/style1.css:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap");
2 | body {
3 | background: #f9f9f9;
4 | font-family: "Roboto", sans-serif;
5 | }
6 |
7 | .shadow {
8 | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1) !important;
9 | }
10 |
11 | .profile-tab-nav {
12 | min-width: 250px;
13 | }
14 |
15 | .tab-content {
16 | flex: 1;
17 | }
18 |
19 | .form-group {
20 | margin-bottom: 1.5rem;
21 | }
22 |
23 | .nav-pills a.nav-link {
24 | padding: 15px 20px;
25 | border-bottom: 1px solid #ddd;
26 | border-radius: 0;
27 | color: #333;
28 | }
29 | .nav-pills a.nav-link i {
30 | width: 20px;
31 | }
32 |
33 | .img-circle img {
34 | height: 100px;
35 | width: 100px;
36 | border-radius: 100%;
37 | border: 5px solid #fff;
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/resources/static/css/stylead.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: "Roboto", -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";
3 | background-color: #ffffff;
4 |
5 | line-height: 2; }
6 |
7 | h1, h2, h3, h4, h5, h6,
8 | .h1, .h2, .h3, .h4, .h5, .h6 {
9 | font-family: "Poppins", sans-serif;
10 | color: #000; }
11 |
12 | a {
13 | -webkit-transition: .3s all ease;
14 | -o-transition: .3s all ease;
15 | transition: .3s all ease; }
16 | a, a:hover {
17 | text-decoration: none !important; }
18 |
19 | .text-black {
20 | color: #000; }
21 |
22 | .content {
23 | padding: 7rem 0; }
24 |
25 | h2 {
26 | font-size: 3.5rem;
27 | font-weight: 700; }
28 |
29 | h3 {
30 | font-size: 2rem;
31 | font-weight: 700;
32 | color: #fff; }
33 |
34 | .form-control {
35 | border: none;
36 | border: 1px solid #ccc;
37 | border-radius: 4px; }
38 | .form-control:active, .form-control:focus {
39 | outline: none;
40 | -webkit-box-shadow: none;
41 | box-shadow: none;
42 | border-color: #000; }
43 |
44 | .col-form-label {
45 | color: #000; }
46 |
47 | .btn, .form-control, .custom-select {
48 | height: 50px; }
49 |
50 | .custom-select:active, .custom-select:focus {
51 | outline: none;
52 | -webkit-box-shadow: none;
53 | box-shadow: none;
54 | border-color: #000; }
55 |
56 | .heading {
57 | color: #888;
58 | letter-spacing: .05rem;
59 | text-transform: uppercase;
60 | font-weight: 400; }
61 |
62 | .btn {
63 | color: #fff;
64 | border: none;
65 | border-radius: 4px !important;
66 | -webkit-box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.1) !important;
67 | box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.1) !important; }
68 | .btn:hover {
69 | color: #fff; }
70 | .btn:active, .btn:focus {
71 | outline: none;
72 | -webkit-box-shadow: none;
73 | box-shadow: none; }
74 |
75 | .box {
76 | padding: 40px;
77 | background: #fff;
78 | -webkit-box-shadow: -30px 30px 0px 0 rgba(0, 0, 0, 0.08);
79 | box-shadow: -30px 30px 0px 0 rgba(0, 0, 0, 0.08); }
80 | .box h3 {
81 | font-size: 14px;
82 | margin-bottom: 30px;
83 | text-align: center; }
84 |
85 | label.error {
86 | font-size: 12px;
87 | color: red; }
88 |
89 | #message {
90 | resize: vertical; }
91 |
92 | #form-message-warning, #form-message-success {
93 | display: none; }
94 |
95 | #form-message-warning {
96 | color: #B90B0B; }
97 |
98 | #form-message-success {
99 |
100 | font-size: 18px;
101 | font-weight: bold;
102 | text-align: center; }
103 |
104 | .submitting {
105 | text-align: center;
106 | float: left;
107 | width: 100%;
108 | padding: 10px 0;
109 | display: none;
110 | font-weight: bold;
111 | font-size: 12px;
112 | color: #000; }
113 |
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/icomoon/Read Me.txt:
--------------------------------------------------------------------------------
1 | Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures.
2 |
3 | To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts
4 |
5 | You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects.
6 |
7 | You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection.
8 |
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/icomoon/demo-files/demo.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding: 0;
3 | margin: 0;
4 | font-family: sans-serif;
5 | font-size: 1em;
6 | line-height: 1.5;
7 | color: #555;
8 | background: #fff;
9 | }
10 | h1 {
11 | font-size: 1.5em;
12 | font-weight: normal;
13 | }
14 | small {
15 | font-size: .66666667em;
16 | }
17 | a {
18 | color: #e74c3c;
19 | text-decoration: none;
20 | }
21 | a:hover, a:focus {
22 | box-shadow: 0 1px #e74c3c;
23 | }
24 | .bshadow0, input {
25 | box-shadow: inset 0 -2px #e7e7e7;
26 | }
27 | input:hover {
28 | box-shadow: inset 0 -2px #ccc;
29 | }
30 | input, fieldset {
31 | font-family: sans-serif;
32 | font-size: 1em;
33 | margin: 0;
34 | padding: 0;
35 | border: 0;
36 | }
37 | input {
38 | color: inherit;
39 | line-height: 1.5;
40 | height: 1.5em;
41 | padding: .25em 0;
42 | }
43 | input:focus {
44 | outline: none;
45 | box-shadow: inset 0 -2px #449fdb;
46 | }
47 | .glyph {
48 | font-size: 16px;
49 | width: 15em;
50 | padding-bottom: 1em;
51 | margin-right: 4em;
52 | margin-bottom: 1em;
53 | float: left;
54 | overflow: hidden;
55 | }
56 | .liga {
57 | width: 80%;
58 | width: calc(100% - 2.5em);
59 | }
60 | .talign-right {
61 | text-align: right;
62 | }
63 | .talign-center {
64 | text-align: center;
65 | }
66 | .bgc1 {
67 | background: #f1f1f1;
68 | }
69 | .fgc1 {
70 | color: #999;
71 | }
72 | .fgc0 {
73 | color: #000;
74 | }
75 | p {
76 | margin-top: 1em;
77 | margin-bottom: 1em;
78 | }
79 | .mvm {
80 | margin-top: .75em;
81 | margin-bottom: .75em;
82 | }
83 | .mtn {
84 | margin-top: 0;
85 | }
86 | .mtl, .mal {
87 | margin-top: 1.5em;
88 | }
89 | .mbl, .mal {
90 | margin-bottom: 1.5em;
91 | }
92 | .mal, .mhl {
93 | margin-left: 1.5em;
94 | margin-right: 1.5em;
95 | }
96 | .mhmm {
97 | margin-left: 1em;
98 | margin-right: 1em;
99 | }
100 | .mls {
101 | margin-left: .25em;
102 | }
103 | .ptl {
104 | padding-top: 1.5em;
105 | }
106 | .pbs, .pvs {
107 | padding-bottom: .25em;
108 | }
109 | .pvs, .pts {
110 | padding-top: .25em;
111 | }
112 | .unit {
113 | float: left;
114 | }
115 | .unitRight {
116 | float: right;
117 | }
118 | .size1of2 {
119 | width: 50%;
120 | }
121 | .size1of1 {
122 | width: 100%;
123 | }
124 | .clearfix:before, .clearfix:after {
125 | content: " ";
126 | display: table;
127 | }
128 | .clearfix:after {
129 | clear: both;
130 | }
131 | .hidden-true {
132 | display: none;
133 | }
134 | .textbox0 {
135 | width: 3em;
136 | background: #f1f1f1;
137 | padding: .25em .5em;
138 | line-height: 1.5;
139 | height: 1.5em;
140 | }
141 | #testDrive {
142 | display: block;
143 | padding-top: 24px;
144 | line-height: 1.5;
145 | }
146 | .fs0 {
147 | font-size: 16px;
148 | }
149 | .fs1 {
150 | font-size: 28px;
151 | }
152 | .fs2 {
153 | font-size: 24px;
154 | }
155 |
156 |
--------------------------------------------------------------------------------
/src/main/resources/static/fonts/icomoon/demo-files/demo.js:
--------------------------------------------------------------------------------
1 | if (!('boxShadow' in document.body.style)) {
2 | document.body.setAttribute('class', 'noBoxShadow');
3 | }
4 |
5 | document.body.addEventListener("click", function(e) {
6 | var target = e.target;
7 | if (target.tagName === "INPUT" &&
8 | target.getAttribute('class').indexOf('liga') === -1) {
9 | target.select();
10 | }
11 | });
12 |
13 | (function() {
14 | var fontSize = document.getElementById('fontSize'),
15 | testDrive = document.getElementById('testDrive'),
16 | testText = document.getElementById('testText');
17 | function updateTest() {
18 | testDrive.innerHTML = testText.value || String.fromCharCode(160);
19 | if (window.icomoonLiga) {
20 | window.icomoonLiga(testDrive);
21 | }
22 | }
23 | function updateSize() {
24 | testDrive.style.fontSize = fontSize.value + 'px';
25 | }
26 | fontSize.addEventListener('change', updateSize, false);
27 | testText.addEventListener('input', updateTest, false);
28 | testText.addEventListener('change', updateTest, false);
29 | updateSize();
30 | }());
31 |
--------------------------------------------------------------------------------
/src/main/resources/static/images/aap.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/aap.jpeg
--------------------------------------------------------------------------------
/src/main/resources/static/images/adminlogo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/adminlogo.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/apple-icon.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/India-2106x1406.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/India-2106x1406.webp
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/banner-bg-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/banner-bg-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/banner-bg-1-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/banner-bg-1-2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/banner-bg-1-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/banner-bg-1-3.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/banner-bg-1-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/banner-bg-1-4.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/cta-1-1-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/cta-1-1-bg.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/cta-2-1-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/cta-2-1-bg.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/footer-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/footer-bg.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/inner-banner-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/inner-banner-bg.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/background/video-bg-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/background/video-bg-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/bg-pricing.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/bg-pricing.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/bg-smart-home-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/bg-smart-home-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/bg-smart-home-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/bg-smart-home-2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/bjp.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/bjp.jpeg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/author-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/author-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/blog-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/blog-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/blog-1-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/blog-1-2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/blog-1-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/blog-1-3.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/blog-1-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/blog-1-4.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/blog-1-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/blog-1-5.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/blog-1-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/blog-1-6.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/blog-d-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/blog-d-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/comment-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/comment-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/comment-1-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/comment-1-2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/lp-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/lp-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/lp-1-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/lp-1-2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/blog/lp-1-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/blog/lp-1-3.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/bruce-mars.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/bruce-mars.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/campain/campain-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/campain/campain-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/campain/campain-1-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/campain/campain-1-2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/campain/campain-1-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/campain/campain-1-3.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/congress.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/congress.jpeg
--------------------------------------------------------------------------------
/src/main/resources/static/images/cpm.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/cpm.jpeg
--------------------------------------------------------------------------------
/src/main/resources/static/images/down-arrow-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 | down-arrow
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/main/resources/static/images/down-arrow-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/main/resources/static/images/down-arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 | down-arrow
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/main/resources/static/images/drake.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/drake.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-1-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-1-1.gif
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-1-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-1-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-1-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-1-2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-1-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-1-3.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-1-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-1-3.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-2-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-2-1.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-2-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-2-2.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-2-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-2-3.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-2-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-2-4.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-2-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-2-5.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/event/event-2-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/event/event-2-6.jpg
--------------------------------------------------------------------------------
/src/main/resources/static/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/favicon.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/favicons/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/favicons/android-chrome-192x192.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/favicons/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/favicons/android-chrome-512x512.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/favicons/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/favicons/apple-touch-icon.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/favicons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/favicons/favicon-16x16.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/favicons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/favicons/favicon-32x32.png
--------------------------------------------------------------------------------
/src/main/resources/static/images/favicons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Themysticlees/Secure-Online-Voting-System-using-Face-Recognition-and-BlockChain/fba933878c01188395e1a23040ee7bcf08dfa909/src/main/resources/static/images/favicons/favicon.ico
--------------------------------------------------------------------------------
/src/main/resources/static/images/favicons/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"}
--------------------------------------------------------------------------------
/src/main/resources/static/images/flags copy 2/AU.png:
--------------------------------------------------------------------------------
1 | �PNG
2 |
3 |
IHDR 6s7� sRGB ��� �IDAT8�T]l�U~����k��2��6��b;�a��H�L�1C�I�pc�P��Z��Bo��
4 | o�a �(1!�D�� �,����V�֮?_������79�i�{��=��ex̘:rD5����0w�n��fi�ҭ��tS
5 | W��VoD�,��� �=�2�� r�J1M��=�Aj�P���i��m����=7aYv�n�2$�DLm�4�������������;��ݙ��NԌҹ��#�`l�[�o�7��Ѿ����HŴ�Ӎ���_E��-����
<3�D����(7C��š��W.9��U�;]������k��0VnA��)���1���H�u��u�.Z8���f�C,����p\BB9<=
%ͼhX�rs��<���2��*��u��U��Dk�oᬹ��OA��ʸ2S���<,�4�
6 | p�@�����1V���� KU�}�40jD�9uLQ�D�C�:&mrC�C@�lz�����W�s�O�7P&��yI`Gn�6����a��g���Hm\��9�-s�q_�yǁ!�xk��x�T�w�.�I����B2�����,еbv��hLFe1���,�K��,|}��K�^ά�x��g�~@��g8n/TP*� H b(������-�`!�U��y$'�&̐X�Є�Jh֛8{c�2�с��:Ѝj͂���b���
7 | �h�h�%�S蜤�ir��W]}CX��|Db&^�D}��)�%*��!Z�h��(߇C��6��:8�eCC,����,�j ��B1dt(�\w�t�zJ�+ ���9=U�h�Y�F1B.��N?
8 | ���8$�@��������C�x�z.C@�`mЇ�Lֶ]�k��x�6<������.Jtw>���l� �0Ȼ{���-�q�*���w�P&
#��*�`�V� Q������`��̨/��t���yjL�ً�����N�A�����8-�aӽ1�����5Q�lMb��hhJ�gV'*�)Q��a�_;���"$=�_�_ ��П�1��[B�l5�z�X��Y��}���m6/�j�����5�+�����#]꒮�yƃ[�m���]�\���w��Ҽ�O�7���F�Ք��
��7��&)\�\O��TQu��ӿ��ſ��,S/�� IEND�B`�
--------------------------------------------------------------------------------
/src/main/resources/static/images/flags copy 2/BR.png:
--------------------------------------------------------------------------------
1 | �PNG
2 |
3 |
IHDR 6s7� sRGB ��� NIDAT8�S]hU��ܹ�3��M�M��h����W�C� %�*�|�Q�
4 | ���CA�7}���胐`E! �R��V���I�&���d��^όI|�Ü��;�����a��qsz��\_/���n벰�V7pr�����Z����4��eP`o\�?b�-��Mb���)L��/-+���QpET��W[P�/�hQ���C^
9aXs���>Wq�[zn�h�w��S����9x`�l�T^���2���aJ���J1W������
5 | �fb@�F���<�\��C�Є�Z����Ftt|f����=�L�Q� ����"K�:N=�<����3�����{�C(
:I�1
�T��*����� �A�a3�FK��)7#��ă�M�=����2�t ���]LVm0"�Q@�`���߰i�,Ң�c��!���$�s}6^�o�י1���1����~�����;x���j�'�];�t�ݠ��U*��ܞ
���4���+g`�Q췰���\��61��ć�%\(uP`R�N�c����p����^�����N�~��=�^�c�+�mXi����6�^�9���\,�l��y��I�Ӯ�s>^�q�� �S��V�_�G�R8ǐ�q�T�{d�F`�25���t�픩K&g�tK���s.�O/�����K���
��װ|#@a�6��f�~<���S��̀3���]S�qKxj���э4?��}�b�m{����m��q������!���1YFwY�=��Z�I��ML���ɸ�g�m\83�ʼ�����G��o����a��5��!�nz�ipZ�A���S^����*r݀i�#��0��B.�Ċ
�IZH4$��7AEH�3?'�l��$�.����L���k� ZQ����s�y����M��e3��jB=�,qB7�a&xA���s��$6�T���o��d�o;��v��7��S�;�Uq��������K��ir�HM![��n�G���n��Ͽ ���E�: IEND�B`�
--------------------------------------------------------------------------------
/src/main/resources/static/images/flags copy 2/DE.png:
--------------------------------------------------------------------------------
1 | �PNG
2 |
3 |
IHDR 6s7� sRGB ��� YIDAT8���n#E�O�ܶc;ƙ��0(i�,"Y��([6Y��!x�$+y��C4l�2�D�i���k��M,$�@E�����N�S��g;;;k]]]��4����l֙N��j��(*��j8�O&��=���x�����urr����t���~~~_^^n!4@h��>�QUU�eYdY��\.G�oC��[w:�w�^�%��O���'���ŻV���ޮ�z}Ķ{����(����Yf�6,��3��
���I��$��G9j�ۆ�A�8�nDd�B����g�bK|�յ���l����Ad��VD�a��� �(�JD$�����Ѐy*�cK�$���K~^�"�Z#@�
s�c>b}�C|?���d0�^B#~�@���k�@[�!�ç 1�1�`�M�x �wZ��Q��_�6���: G�@s��VaP���5�f�Օӷ�B�`�bS