diff --git a/meetupdao/UI/abi.js b/meetupdao/UI/abi.js
new file mode 100644
index 0000000..4b448e9
--- /dev/null
+++ b/meetupdao/UI/abi.js
@@ -0,0 +1,7 @@
+
+
+var address="0xDad4c8889D99e7d2b4a64028b7Fd029A8F3c7D3E";
+
+var abi =
+[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"proposals","outputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"description","type":"string"},{"name":"votingDeadline","type":"uint256"},{"name":"executed","type":"bool"},{"name":"proposalPassed","type":"bool"},{"name":"numberOfVotes","type":"uint256"},{"name":"currentResult","type":"int256"},{"name":"proposalHash","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"targetMember","type":"address"}],"name":"removeMember","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"proposalNumber","type":"uint256"},{"name":"transactionBytecode","type":"bytes"}],"name":"executeProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"memberId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numProposals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"members","outputs":[{"name":"member","type":"address"},{"name":"name","type":"string"},{"name":"memberSince","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"debatingPeriodInMinutes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMembers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimumQuorum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_token","type":"address"},{"name":"_extraData","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalProposals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"majorityMargin","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"weiAmount","type":"uint256"},{"name":"jobDescription","type":"string"},{"name":"transactionBytecode","type":"bytes"}],"name":"newProposal","outputs":[{"name":"proposalID","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"etherAmount","type":"uint256"},{"name":"jobDescription","type":"string"},{"name":"transactionBytecode","type":"bytes"}],"name":"newProposalInEther","outputs":[{"name":"proposalID","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"minimumQuorumForProposals","type":"uint256"},{"name":"minutesForDebate","type":"uint256"},{"name":"marginOfVotesForMajority","type":"int256"}],"name":"changeVotingRules","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"targetMember","type":"address"},{"name":"memberName","type":"string"}],"name":"addMember","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"proposalNumber","type":"uint256"},{"name":"supportsProposal","type":"bool"},{"name":"justificationText","type":"string"}],"name":"vote","outputs":[{"name":"voteID","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"memberName","type":"string"}],"name":"becomeMember","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"proposalNumber","type":"uint256"},{"name":"beneficiary","type":"address"},{"name":"weiAmount","type":"uint256"},{"name":"transactionBytecode","type":"bytes"}],"name":"checkProposalCode","outputs":[{"name":"codeChecksOut","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"description","type":"string"}],"name":"ProposalAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"position","type":"bool"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"justification","type":"string"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"proposalID","type":"uint256"},{"indexed":false,"name":"result","type":"int256"},{"indexed":false,"name":"quorum","type":"uint256"},{"indexed":false,"name":"active","type":"bool"}],"name":"ProposalTallied","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"member","type":"address"},{"indexed":false,"name":"isMember","type":"bool"}],"name":"MembershipChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newMinimumQuorum","type":"uint256"},{"indexed":false,"name":"newDebatingPeriodInMinutes","type":"uint256"},{"indexed":false,"name":"newMajorityMargin","type":"int256"}],"name":"ChangeOfRules","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"receivedEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"},{"indexed":false,"name":"_token","type":"address"},{"indexed":false,"name":"_extraData","type":"bytes"}],"name":"receivedTokens","type":"event"}]
+
diff --git a/meetupdao/UI/css/app.css b/meetupdao/UI/css/app.css
new file mode 100755
index 0000000..a657a70
--- /dev/null
+++ b/meetupdao/UI/css/app.css
@@ -0,0 +1,367 @@
+body{
+ overflow-x: hidden;
+}
+
+h3{
+ font-family: 'Bitter', serif;
+}
+
+p{
+ font-family: 'Gothic A1', sans-serif;
+}
+
+
+.brand-header{
+ background-color: rgb(63, 45, 115, 0.55);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: cover;
+ background-image: url(../img/back.jpeg);
+ background-attachment: fixed;
+ height : 720px !important;
+ background-blend-mode: multiply;
+ background-color: rgba(63, 19, 107, 0.76);
+ overflow: hidden;
+
+}
+
+
+
+.header-1 {
+ position: absolute;
+ top : 32%;
+ color : #fff;
+}
+
+
+.header-1 h3 {
+ font-size: 50px;
+ font-weight: 600;
+ animation: type 8s steps(31) ;
+ overflow : hidden;
+ white-space: nowrap;
+ border-right : 2px solid #fff;
+ font-family: 'IBM Plex Mono', monospace;
+}
+
+@keyframes type {
+ 0% {
+ width : 0ch;
+ }
+ 100% {
+ width : 31ch;
+ }
+}
+
+.header-1 p{
+ font-size: 25px;
+ text-align: left;
+ word-spacing: 5px;
+}
+
+.header-1 .btn-1 {
+ width : 200px;
+ height : 58px;
+ margin-top: 10px;
+ font-size: 16px;
+ background-color: transparent;
+ border : 1px solid whitesmoke;
+
+}
+
+
+.header-1 .btn-2 {
+ width : 200px;
+ height : 58px;
+ margin-top: 10px;
+ font-size: 16px;
+ background-color: transparent;
+ border : 1px solid whitesmoke;
+ background-color: rgba(0, 0, 10, 0.86);
+ color : #fff;
+ margin-left: 8px;
+}
+
+
+/* ================== navbar ========= */
+
+
+
+
+
+
+.nav-extended {
+ background-color: rgba(0, 0, 10, 0.36);
+ color : #fff !important;
+
+}
+
+
+.nav-extended a {
+ color : #fff;
+ transition: all 300ms ease;
+}
+
+.nav-extended a:hover{
+ border-bottom: 2px solid #fff;
+ background-color: #1a237e;
+}
+
+.brand-logo{
+ font-size: 22px !important;
+}
+
+.brand-logo:hover {
+ border-bottom : none !important;
+ background-color: transparent !important;
+}
+
+.button-collapse{
+ border-bottom : none !important;
+ background-color: transparent !important;
+}
+
+.side-nav {
+ background-color: #fff !important;
+}
+
+.side-nav a:hover{
+ border-bottom: none;
+ background-color: rgb(29, 5, 43) !important;
+ color: #fff;
+
+}
+
+/* =========================== what is doa ======================== */
+
+.whatIsDao{
+ margin-top: 40px !important;
+ padding: 10px 10px;
+ background-color: #fff;
+}
+
+.header-2 h3{
+ text-align: left;
+ font-weight: 600;
+ font-size: 25px;
+ padding-left: 10px;
+}
+
+.info-col p{
+ text-align: left;
+ font-size: 15px;
+ opacity: 0.8;
+ line-height: 1.7;
+}
+
+/* ======================== How its works ================================= */
+
+.HowItWork{
+ margin-top: 20px !important;
+ padding: 10px 10px;
+ background-color: #fff;
+ margin-bottom: 60px;
+}
+
+.header-3 h3{
+ text-align: left;
+ font-weight: 600;
+ font-size: 25px;
+ padding: 10px 0;
+ padding-left: 10px;
+}
+
+
+
+/* ============================== parallax ======================== */
+
+.parallax-header{
+ background-color: rgba(0, 0, 0, 0.76);
+}
+
+.parallax-container{
+ height : 450px !important;
+}
+
+.parallax-container .container{
+ text-align: center;
+ color : #fff;
+}
+
+.content{
+ padding: 30px 10px;
+ margin-top: 100px;
+
+}
+
+.parallax-container .content h3{
+
+ font-size: 40px;
+ font-weight: 600;
+ word-spacing: 10px;
+}
+
+.parallax-container .content p{
+ font-size: 17px;
+ font-weight: 400;
+ opacity: 0.6;
+
+}
+
+.parallax-container .content .border-1{
+ border: 2px solid #fff;
+ width : 300px;
+ margin: 0px auto;
+ margin-top: 30px !important;
+}
+
+
+/* =========================== Feature ================================== */
+
+.feature{
+ padding: 30px 10px;
+ margin-top: 60px;
+ margin: 30px 0;
+}
+
+.header-4 h3{
+ text-align: left;
+ font-weight: 600;
+ font-size: 25px;
+
+}
+
+.header-4 p{
+ text-align: left;
+ font-size: 14px;
+
+ opacity: 0.6;
+ line-height: 2;
+}
+
+.card{
+ margin-top:30px !important;
+}
+
+.card .btn-floating{
+ background-color: rgb(94, 2, 131) !important;
+}
+
+.card:hover{
+ -webkit-box-shadow: 0px 0px 30px -1px rgba(0,0,0,0.51);
+-moz-box-shadow: 0px 0px 30px -1px rgba(0,0,0,0.51);
+box-shadow: 0px 0px 30px -1px rgba(0,0,0,0.51);
+}
+
+
+
+
+/* ===================================== Contact us ==================== */
+
+.contact-us{
+ padding: 60px 10px !important;
+ padding-bottom : 20px !important;
+ margin: 20px 0;
+ margin-bottom: 0;
+ background: linear-gradient(132deg, #000, #7a0d63);
+ background-size: 400% 400%;
+ animation: BackgroundGradient 25s ease infinite;
+ position: relative;
+
+}
+
+
+@keyframes BackgroundGradient {
+ 0% {
+ background-position: 0% 50%;
+ }
+ 50% {
+ background-position: 100% 50%;
+ }
+ 100% {
+ background-position: 0% 50%;
+ }
+}
+
+.header-5 h3{
+
+ font-weight: 600;
+ font-size: 40px;
+ padding-left: 10px;
+ color: #fff;
+ text-align: center;
+
+}
+
+.form-content{
+ margin-top: 40px;
+ padding: 30px;
+ color: #fff;
+}
+
+.form-content span{
+ font-size: 15px;
+ opacity: 0.6;
+}
+
+.form-content .material-icons{
+ font-size: 45px !important;
+ color: #42a5f5 !important;
+}
+
+.form-content strong p{
+ font-size: 17px;
+}
+
+.form-input{
+ margin-top: 20px !important;
+ padding: 0px 30px;
+}
+
+.input-field input{
+ color : #fff;
+}
+
+
+
+
+.input-field .active{
+ color : #42a5f5 !important;
+}
+
+.form-input .btn{
+ background-color : #42a5f5 !important;
+ margin-left: 10px;
+ margin-top: 20px;
+ border-radius: 50px;
+}
+
+
+input:not([type]):focus:not([readonly]),
+input[type=text]:not(.browser-default):focus:not([readonly]),
+input[type=password]:not(.browser-default):focus:not([readonly]),
+input[type=email]:not(.browser-default):focus:not([readonly]),
+input[type=url]:not(.browser-default):focus:not([readonly]),
+input[type=time]:not(.browser-default):focus:not([readonly]),
+input[type=date]:not(.browser-default):focus:not([readonly]),
+input[type=datetime]:not(.browser-default):focus:not([readonly]),
+input[type=datetime-local]:not(.browser-default):focus:not([readonly]),
+input[type=tel]:not(.browser-default):focus:not([readonly]),
+input[type=number]:not(.browser-default):focus:not([readonly]),
+input[type=search]:not(.browser-default):focus:not([readonly]),
+textarea.materialize-textarea:focus:not([readonly]) {
+ border-bottom: 1px solid #42a5f5 !important;
+
+}
+
+
+/* ======================== footer ============================ */
+
+.footer{
+ padding: 20px 0;
+ text-align: center;
+ color: #fff;
+ background-color: rgb(42, 4, 38);
+ font-size: 13px;
+
+}
diff --git a/meetupdao/UI/css/member.css b/meetupdao/UI/css/member.css
new file mode 100644
index 0000000..4bb25a8
--- /dev/null
+++ b/meetupdao/UI/css/member.css
@@ -0,0 +1,117 @@
+body {
+ margin : 0;
+ padding: 0;
+ overflow-x: hidden;
+}
+.main-containe{
+ margin: 10px;
+ height : 100%;
+ width : 100%;
+ position: relative;
+ left : 10%;
+ right : 10%;
+}
+.card{
+ display: inline-block;
+ width : 300px;
+ height : 250px;
+ background-color: #fff;
+ border-top : 4px solid #1a237e;
+ color : #000;
+ text-align: center;
+ margin : 10px;
+ margin-left: 25px;
+ font-size: 20px;
+ margin-top : 80px;
+ margin-bottom : 60px;
+ -webkit-box-shadow: 0px 6px 26px 1px rgba(0,0,0,0.26);
+-moz-box-shadow: 0px 6px 26px 1px rgba(0,0,0,0.26);
+box-shadow: 0px 6px 26px 1px rgba(0,0,0,0.26);
+transition: transform 300ms ease-in;
+}
+
+.card:hover{
+ transform: scale(1.05);
+}
+
+.card h2{
+ font-size: 25px;
+ text-transform: uppercase;
+}
+
+.header {
+ padding: 50px 0;
+ padding-left: 30px !important;
+ height : 300px;
+ background-image: url(../img/back3.jpeg);
+ background-attachment: fixed;
+ background-position: center;
+ background-size : cover;
+
+
+}
+
+.header h3{
+ font-size : 50px;
+ text-align: left;
+ color : #fff;
+}
+
+.card p {
+ font-size: 18px;
+ opacity: 0.8;
+ margin-top: 50px;
+ word-spacing: 5px;
+}
+.nav-extended {
+background-color: rgba(0, 0, 10, 1);
+color : #fff !important;
+
+}
+
+
+.nav-extended a {
+color : #fff;
+transition: all 300ms ease;
+}
+
+.nav-extended a:hover{
+border-bottom: 2px solid #fff;
+background-color: #1a237e;
+}
+
+.brand-logo{
+font-size: 22px !important;
+}
+
+.brand-logo:hover {
+border-bottom : none !important;
+background-color: transparent !important;
+}
+
+.button-collapse{
+border-bottom : none !important;
+background-color: transparent !important;
+}
+
+.side-nav {
+background-color: #fff !important;
+}
+
+.side-nav a:hover{
+border-bottom: none;
+background-color: rgb(29, 5, 43) !important;
+color: #fff;
+
+}
+
+
+/* =========== Footer ======= */
+
+.footer{
+ padding: 10px 0;
+ color : #fff;
+ text-align: center;
+ font-size : 15px;
+ background-color: hsl(271, 70%, 21%);
+}
\ No newline at end of file
diff --git a/meetupdao/UI/css/responsive.css b/meetupdao/UI/css/responsive.css
new file mode 100755
index 0000000..190f866
--- /dev/null
+++ b/meetupdao/UI/css/responsive.css
@@ -0,0 +1,289 @@
+@media (max-width: 1287px) {
+ .header-1 h3 {
+ font-size: 35px;
+ }
+}
+
+@media (max-width: 880px) {
+ .brand-header {
+ height: 580px !important;
+ }
+ .header-1 {
+ text-align: center;
+ position: absolute;
+ top: 30%;
+ left: 0%;
+ right: 0%;
+ }
+ .header-1 h3 {
+ font-size: 25px;
+ animation: none;
+ white-space: normal;
+ border: none;
+ line-height: 2;
+ }
+ .header-1 p {
+ font-size: 20px;
+ text-align: center;
+ }
+ .header-1 .btn-1 {
+ width: 58%;
+ height: 40px;
+ margin-top: 10px;
+ font-size: 15px;
+ display: block;
+ position: relative;
+ right: 21%;
+ left: 21%;
+ }
+ .header-1 .btn-2 {
+ width: 50%;
+ height: 40px;
+ margin-top: 10px;
+ font-size: 15px;
+ display: block;
+ position: relative;
+ right: 25%;
+ left: 25%;
+ }
+
+
+ /* home page responsive style */
+
+ .header-2 h3{
+ text-align: left;
+ font-weight: 600;
+ font-size: 20px;
+ padding-left: 10px;
+ }
+
+ .header-3 h3{
+ text-align: left;
+ font-weight: 600;
+ font-size: 20px;
+ padding-left: 10px;
+ }
+
+ .info-col p{
+ text-align: left;
+ font-size: 14px;
+ opacity: 0.8;
+ line-height: 1.8;
+ }
+
+ /* ==== Parallex ====== */
+
+ .content{
+ padding: 20px;
+ margin-top: 120px;
+ }
+
+ .parallax-container .content h3{
+ font-size: 30px;
+ }
+
+ .parallax-container .content p{
+ font-size: 15px;
+ }
+
+ /* =========== feature ====== */
+
+ .header-4 h3{
+ font-size: 20px;
+ }
+
+ .header-4 p{
+ font-size: 12px;
+ }
+
+ .header-5 h3{
+ font-weight: 600;
+ font-size: 30px;
+
+ }
+
+ /* ===== form ====== */
+
+ .form-content strong p{
+ font-size: 14px;
+ }
+
+
+ .form-content .material-icons{
+ font-size: 40px !important;
+
+ }
+}
+
+/* ===================== Proposal ====================== */
+
+@media (max-width: 1005px) {
+ .step-1 .header p {
+ line-height: 1.6 !important;
+ font-size: 15px;
+ opacity: 0.6;
+ }
+ .step-2 .header-2 p {
+ line-height: 1.6 !important;
+ font-size: 15px;
+ opacity: 0.6;
+ }
+}
+
+@media (max-width: 992px) {
+ .step-1 {
+ padding: 5% !important;
+ height: 500px;
+ margin: 10px 0;
+ }
+ .step-1 .header p {
+ line-height: 1.6 !important;
+ font-size: 15px;
+ opacity: 0.6;
+ }
+ .step1-img img {
+ width: 90%;
+ height: 100%;
+ position: relative;
+ left: 5%;
+ right: 5%;
+ margin: 30px 0;
+ }
+ .step-2 {
+ padding: 5% !important;
+ height: 500px;
+ margin: 30px 0;
+ }
+ .step-2 .header p {
+ line-height: 1.6 !important;
+ font-size: 15px;
+ opacity: 0.6;
+ }
+ .step2-img img {
+ width: 90%;
+ height: 100%;
+ position: relative;
+ left: 5%;
+ right: 5%;
+ margin: 80px 0;
+ }
+ span .material-icons {
+ display: none !important;
+ }
+ /* ======= join us button ======== */
+ .button-1 a {
+ top: 20px;
+ }
+}
+
+@media (max-width: 604px) {
+ .proposal {
+ padding: 20px;
+
+ }
+ .proposal-2 {
+ padding: 20px;
+ }
+ .step-1 {
+ margin: 30px 0;
+ position: relative;
+ top: -30% !important;
+ bottom: 20px;
+ height: 450px;
+ padding: 5% 8% !important;
+ }
+ .step1-img {
+ padding: 20px 4px !important;
+ }
+ .step1-img img {
+ width: 100%;
+ height: 50%;
+ position: relative;
+ left: 0;
+ right: 0;
+ }
+ .step-2 {
+ margin: 30px 0;
+ margin-bottom: 0px !important;
+ position: relative;
+ top: 0px !important;
+ bottom: 0px;
+ height: 450px;
+ padding: 5% 8% !important;
+ }
+ .step2-img {
+ padding: 20px 4px !important;
+ }
+ .step2-img img {
+ width: 100%;
+ height: 50%;
+ position: relative;
+ left: 0;
+ right: 0;
+ margin-top: -10px;
+ margin-bottom: 40px;
+ }
+
+ /* ====== respo ===== */
+ span .material-icons {
+ display: none !important;
+ }
+ /* ===== join us button ===== */
+ .button-1 a {
+ top: 20px;
+ }
+
+ /* ====== home ===== */
+
+ .content{
+ padding: 30px 10px;
+ margin-top: 70px;
+
+ }
+
+ .parallax-container .content .border-1{
+ width : 200px;
+ margin-top: 20px !important;
+ }
+
+ .parallax-container .content h3{
+
+ font-size: 25px;
+ font-weight: 600;
+ word-spacing: 10px;
+ line-height: 1.7;
+ }
+
+ .parallax-container .content p{
+ font-size: 14px;
+ font-weight: 400;
+ opacity: 0.6;
+
+ }
+
+ /* ====== contact form home page === */
+
+ .form-input {
+ margin-top: 60px !important;
+ }
+
+ .form-input .btn{
+ margin-left: 0px;
+ }
+}
+
+
+@media (max-width : 455px) {
+ .header-1 .btn-1 {
+ width: 80%;
+ left: 10%;
+ right: 10%;
+ }
+ .header-1 .btn-2 {
+ width: 80%;
+ height: 40px;
+ left: 10%;
+ right: 10%;
+ margin-left: 0px;
+ }
+}
diff --git a/meetupdao/UI/css/step.css b/meetupdao/UI/css/step.css
new file mode 100755
index 0000000..2d1c4c7
--- /dev/null
+++ b/meetupdao/UI/css/step.css
@@ -0,0 +1,421 @@
+body{
+ overflow-x: hidden;
+}
+
+h3{
+ font-family: 'Bitter', serif;
+}
+
+p{
+ font-family: 'Gothic A1', sans-serif;
+}
+
+
+.brand{
+ background-image: url(../img/back4.png);
+ background-position: center;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+ background-color: rgba(0, 0, 0, 0.26);
+ background-blend-mode: multiply;
+ padding: 160px 0;
+ color : #fff;
+ margin-bottom: 100px;
+
+}
+
+
+
+.brand h3 {
+ font-size: 50px;
+ font-weight: 600;
+ animation: type 5s steps(16) ;
+ overflow : hidden;
+ white-space: nowrap;
+ border-right : 2px solid #fff;
+ width : 16ch;
+ font-family: 'IBM Plex Mono', monospace;
+}
+
+@keyframes type {
+ 0% {
+ width : 0ch;
+ }
+ 100% {
+ width : 16ch;
+ }
+}
+
+@media (max-width: 1287px) {
+ .brand h3 {
+ font-size: 35px;
+ }
+}
+
+@media (max-width: 770px) {
+
+ .brand h3 {
+ font-size: 28px;
+ animation: none;
+ white-space: normal;
+ border: none;
+ line-height: 2;
+ }
+
+ .proposal{
+ margin-top: 20px !important;
+
+ }
+}
+
+
+
+/* ================== navbar ========= */
+
+
+
+
+
+
+.nav-extended {
+ background-color: rgba(0, 0, 10, 1);
+ color : #fff !important;
+
+}
+
+
+.nav-extended a {
+ color : #fff;
+ transition: all 300ms ease;
+}
+
+.nav-extended a:hover{
+ border-bottom: 2px solid #fff;
+ background-color: #1a237e;
+}
+
+.brand-logo{
+ font-size: 22px !important;
+}
+
+.brand-logo:hover {
+ border-bottom : none !important;
+ background-color: transparent !important;
+}
+
+.button-collapse{
+ border-bottom : none !important;
+ background-color: transparent !important;
+}
+
+.side-nav {
+ background-color: #fff !important;
+}
+
+.side-nav a:hover{
+ border-bottom: none;
+ background-color: rgb(29, 5, 43) !important;
+ color: #fff;
+
+}
+
+
+
+/* ================================ Create Propasal ================== */
+
+.proposal{
+ height: 100%;
+ background-color: #fff;
+ position:relative;
+ padding: 40px 0;
+
+}
+
+.proposal .container-fluid .row{
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+.step-1{
+ position: relative;
+ border-top : 6px solid #a119bd;
+ border-top-right-radius: 4px;
+ height : 540px;
+ padding: 8% 5% !important;
+ background-color: #fff;
+ -webkit-box-shadow: 18px 2px 69px -1px rgba(0,0,0,0.25);
+ -moz-box-shadow: 18px 2px 69px -1px rgba(0,0,0,0.25);
+ box-shadow: 18px 2px 69px -1px rgba(0,0,0,0.25);
+
+}
+
+
+
+.step-1 .header h3{
+ font-size: 22px;
+ font-weight: 450;
+ word-spacing: 3px;
+}
+
+.step-1 .header h4{
+ font-size: 16px;
+ font-weight: 350;
+ opacity: 0.8;
+ text-transform: uppercase;
+ word-spacing: 3px;
+ line-height : 2;
+}
+
+.step-1 .header span a {
+ padding: 10px;
+ margin-top: 5px;
+ display: inline-block;
+ transition: border 200ms ease-in;
+ border-bottom: 2px solid #000;
+}
+
+.step-1 .header a:hover{
+ display: inline-block;
+ padding: 10px;
+ border : 2px solid #000;
+}
+
+
+.step-1 .header p{
+ line-height: 2;
+ font-size: 14px;
+ opacity: 0.6;
+}
+
+.step-1 .header span .material-icons {
+ position :absolute;
+ right : -10%;
+ top : 50%;
+ display : inline-block;
+ width : 100px;
+ font-size: 30px;
+ text-align: right;
+ padding: 15px;
+ color: #fff;
+ background-color: rgb(40, 156, 181, 0.65);
+ transition: right 250ms ease;
+
+}
+
+.step-1:hover .header .material-icons {
+ right: -20%;
+
+}
+
+
+
+.step1-img{
+ margin: 0px;
+ margin-bottom: 0 !important
+ position: relative;
+ padding: 5% 20px !important;
+
+}
+
+.step1-img img{
+ width : 70%;
+ height: 30%;
+ position: relative;
+ left: 15%;
+ right: 15%;
+ bottom: 0%;
+ transition: transform 300ms ease-in;
+ -webkit-box-shadow: 1px 1px 54px 1px rgba(0,0,0,0.43);
+ -moz-box-shadow: 1px 1px 54px 1px rgba(0,0,0,0.43);
+ box-shadow: 1px 1px 54px 1px rgba(0,0,0,0.43);
+}
+
+.step1-img img:hover{
+ transform: scale(1.05) !important;
+}
+
+/* =============================== propasal-2 ==================================== */
+
+.proposal-2{
+ height: 100%;
+ background-color: #fff;
+ position:relative;
+ padding: 40px 0;
+}
+
+.proposal-2 .container-fluid .row{
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+.step-2{
+
+ position: relative;
+ border-top : 6px solid #289cb5;
+ border-top-left-radius: 4px;
+ height : 540px;
+ padding: 8% 5% !important;
+ background-color: #fff;
+ -webkit-box-shadow: -22px 2px 69px -1px rgba(0,0,0,0.25);
+ -moz-box-shadow: -22px 2px 69px -1px rgba(0,0,0,0.25);
+ box-shadow: -22px 2px 69px -1px rgba(0,0,0,0.25);
+}
+
+.step-2 .header-2 h3{
+ font-size: 22px;
+ font-weight: 450;
+ word-spacing: 3px;
+}
+
+.step-2 .header-2 h4{
+ font-size: 16px;
+ font-weight: 350;
+ opacity: 0.8;
+ text-transform: uppercase;
+ word-spacing: 3px;
+ line-height : 2;
+}
+
+.step-2 .header-2 span a {
+ padding: 10px;
+ margin-top: 5px;
+ display: inline-block;
+ transition: border 200ms ease-in;
+ border-bottom: 2px solid #000;
+}
+
+.step-2 .header-2 a:hover{
+ display: inline-block;
+ padding: 10px;
+ border : 2px solid #000;
+}
+
+
+.step-2 .header-2 p{
+ line-height: 2;
+ font-size: 14px;
+ opacity: 0.6;
+}
+
+
+.step-2 .header-2 span .material-icons {
+ position :absolute;
+ left : -10%;
+ top : 50%;
+ display : inline-block;
+ width : 100px;
+ font-size: 30px;
+ text-align: left;
+ padding: 15px;
+ color: #fff;
+ background-color: rgba(161, 25, 189, 0.65);
+ transition: left 250ms ease;
+
+}
+
+.step-2:hover .header-2 .material-icons {
+ left: -20%;
+}
+
+
+
+.step2-img{
+
+ position: relative;
+ border-bottom: none;
+ padding: 5% 20px !important;
+}
+
+.step2-img img{
+ width : 70%;
+ height: 30%;
+ position: relative;
+ left: 15%;
+ right: 15%;
+ bottom: 0%;
+ transition: transform 400ms ease;
+ -webkit-box-shadow: 1px 1px 54px 1px rgba(0,0,0,0.43);
+ -moz-box-shadow: 1px 1px 54px 1px rgba(0,0,0,0.43);
+ box-shadow: 1px 1px 54px 1px rgba(0,0,0,0.43);
+}
+
+.step2-img img:hover{
+ transform: scale(1.05) !important;
+}
+
+/* ============================== join us ====================== */
+
+
+
+
+.download-button {
+ padding: 60px 20px;
+ color : #000;
+ text-align : center;
+ background-color: #f5f5f5;
+ background-image: url(../img/back.jpeg);
+ background-position: center;
+ background-size: cover;
+ background-blend-mode: multiply;
+ background-color: rgba(63, 19, 107, 0.76);
+ background-attachment: fixed;
+}
+
+.button-1 {
+ background-color: #fff;
+ padding: 50px 20px;
+ border-radius: 6px;
+ border-top: 4px solid rgba(161, 25, 189, 0.65);
+ margin-top: 20px;
+
+}
+
+
+.button-1 a {
+ display : inline-block;
+ width : 200px;
+ padding : 15px 0 !important;
+ color : whitesmoke;
+ background-color: rgb(2, 179, 228);
+ text-decoration : none;
+ font-size : 15px;
+ -webkit-transition : all 0.3s ease-in-out;
+ transition : all 0.3s ease-in-out;
+ text-transform: uppercase;
+ position : relative;
+ top: 50px;
+ border-radius: 6px;
+ box-shadow : 0px 6px 30px rgba(0, 0, 0, 0.32);
+}
+
+
+
+.button-1 a:focus,
+.button-1 a:hover {
+ background-color: rgb(15, 156, 195);
+}
+
+.heading h3{
+ color : rgb(2, 179, 228);
+ font-size: 35px !important;
+ line-height: 50px;
+}
+
+.button-1 p{
+ color: rgb(147, 154, 159);
+ font-size: 20px;
+ text-align: center;
+ line-height: 40px;
+ word-spacing: 10px;
+}
+
+/* =================== footer ==================== */
+
+.footer {
+ padding: 20px 0;
+ color : #fff;
+ font-size: 13px;
+ text-align: center;
+ background-color: rgb(5, 7, 38);
+}
diff --git a/meetupdao/UI/css/style.css b/meetupdao/UI/css/style.css
new file mode 100755
index 0000000..c275511
--- /dev/null
+++ b/meetupdao/UI/css/style.css
@@ -0,0 +1,257 @@
+@import url(https://fonts.googleapis.com/css?family=Archivo+Narrow);
+.cube-folding {
+ width: 50px;
+ height: 50px;
+ display: inline-block;
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg);
+ font-size: 0;
+}
+.cube-folding span {
+ position: relative;
+ width: 25px;
+ height: 25px;
+ -moz-transform: scale(1.1);
+ -ms-transform: scale(1.1);
+ -webkit-transform: scale(1.1);
+ transform: scale(1.1);
+ display: inline-block;
+}
+.cube-folding span::before {
+ content: '';
+ background-color: white;
+ position: absolute;
+ left: 0;
+ top: 0;
+ display: block;
+ width: 25px;
+ height: 25px;
+ -moz-transform-origin: 100% 100%;
+ -ms-transform-origin: 100% 100%;
+ -webkit-transform-origin: 100% 100%;
+ transform-origin: 100% 100%;
+ -moz-animation: folding 2.5s infinite linear both;
+ -webkit-animation: folding 2.5s infinite linear both;
+ animation: folding 2.5s infinite linear both;
+}
+.cube-folding .leaf2 {
+ -moz-transform: rotateZ(90deg) scale(1.1);
+ -ms-transform: rotateZ(90deg) scale(1.1);
+ -webkit-transform: rotateZ(90deg) scale(1.1);
+ transform: rotateZ(90deg) scale(1.1);
+}
+.cube-folding .leaf2::before {
+ -moz-animation-delay: 0.3s;
+ -webkit-animation-delay: 0.3s;
+ animation-delay: 0.3s;
+ background-color: #f2f2f2;
+}
+.cube-folding .leaf3 {
+ -moz-transform: rotateZ(270deg) scale(1.1);
+ -ms-transform: rotateZ(270deg) scale(1.1);
+ -webkit-transform: rotateZ(270deg) scale(1.1);
+ transform: rotateZ(270deg) scale(1.1);
+}
+.cube-folding .leaf3::before {
+ -moz-animation-delay: 0.9s;
+ -webkit-animation-delay: 0.9s;
+ animation-delay: 0.9s;
+ background-color: #f2f2f2;
+}
+.cube-folding .leaf4 {
+ -moz-transform: rotateZ(180deg) scale(1.1);
+ -ms-transform: rotateZ(180deg) scale(1.1);
+ -webkit-transform: rotateZ(180deg) scale(1.1);
+ transform: rotateZ(180deg) scale(1.1);
+}
+.cube-folding .leaf4::before {
+ -moz-animation-delay: 0.6s;
+ -webkit-animation-delay: 0.6s;
+ animation-delay: 0.6s;
+ background-color: #e6e6e6;
+}
+
+@-moz-keyframes folding {
+ 0%, 10% {
+ -moz-transform: perspective(140px) rotateX(-180deg);
+ transform: perspective(140px) rotateX(-180deg);
+ opacity: 0;
+ }
+ 25%, 75% {
+ -moz-transform: perspective(140px) rotateX(0deg);
+ transform: perspective(140px) rotateX(0deg);
+ opacity: 1;
+ }
+ 90%, 100% {
+ -moz-transform: perspective(140px) rotateY(180deg);
+ transform: perspective(140px) rotateY(180deg);
+ opacity: 0;
+ }
+}
+@-webkit-keyframes folding {
+ 0%, 10% {
+ -webkit-transform: perspective(140px) rotateX(-180deg);
+ transform: perspective(140px) rotateX(-180deg);
+ opacity: 0;
+ }
+ 25%, 75% {
+ -webkit-transform: perspective(140px) rotateX(0deg);
+ transform: perspective(140px) rotateX(0deg);
+ opacity: 1;
+ }
+ 90%, 100% {
+ -webkit-transform: perspective(140px) rotateY(180deg);
+ transform: perspective(140px) rotateY(180deg);
+ opacity: 0;
+ }
+}
+@keyframes folding {
+ 0%, 10% {
+ -moz-transform: perspective(140px) rotateX(-180deg);
+ -ms-transform: perspective(140px) rotateX(-180deg);
+ -webkit-transform: perspective(140px) rotateX(-180deg);
+ transform: perspective(140px) rotateX(-180deg);
+ opacity: 0;
+ }
+ 25%, 75% {
+ -moz-transform: perspective(140px) rotateX(0deg);
+ -ms-transform: perspective(140px) rotateX(0deg);
+ -webkit-transform: perspective(140px) rotateX(0deg);
+ transform: perspective(140px) rotateX(0deg);
+ opacity: 1;
+ }
+ 90%, 100% {
+ -moz-transform: perspective(140px) rotateY(180deg);
+ -ms-transform: perspective(140px) rotateY(180deg);
+ -webkit-transform: perspective(140px) rotateY(180deg);
+ transform: perspective(140px) rotateY(180deg);
+ opacity: 0;
+ }
+}
+.cube-wrapper {
+ position: fixed;
+ left: 50%;
+ top: 50%;
+ margin-top: -50px;
+ margin-left: -50px;
+ width: 100px;
+ height: 100px;
+ text-align: center;
+}
+.cube-wrapper:after {
+ content: '';
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: -20px;
+ margin: auto;
+ width: 90px;
+ height: 6px;
+ background-color: rgba(0, 0, 0, 0.1);
+ -webkit-filter: blur(2px);
+ filter: blur(2px);
+ -moz-border-radius: 100%;
+ -webkit-border-radius: 100%;
+ border-radius: 100%;
+ z-index: 1;
+ -moz-animation: shadow 0.5s ease infinite alternate;
+ -webkit-animation: shadow 0.5s ease infinite alternate;
+ animation: shadow 0.5s ease infinite alternate;
+}
+.cube-wrapper .loading {
+ font-size: 12px;
+ letter-spacing: 0.1em;
+ display: block;
+ color: white;
+ position: relative;
+ top: 25px;
+ z-index: 2;
+ -moz-animation: text 0.5s ease infinite alternate;
+ -webkit-animation: text 0.5s ease infinite alternate;
+ animation: text 0.5s ease infinite alternate;
+}
+
+@-moz-keyframes text {
+ 100% {
+ top: 35px;
+ }
+}
+@-webkit-keyframes text {
+ 100% {
+ top: 35px;
+ }
+}
+@keyframes text {
+ 100% {
+ top: 35px;
+ }
+}
+@-moz-keyframes shadow {
+ 100% {
+ bottom: -18px;
+ width: 100px;
+ }
+}
+@-webkit-keyframes shadow {
+ 100% {
+ bottom: -18px;
+ width: 100px;
+ }
+}
+@keyframes shadow {
+ 100% {
+ bottom: -18px;
+ width: 100px;
+ }
+}
+html, body {
+ min-height: 100%;
+}
+
+body {
+ background: #00c6ff;
+ /* fallback for old browsers */
+ background: -webkit-linear-gradient(to left, #00c6ff, #0072ff);
+ /* Chrome 10-25, Safari 5.1-6 */
+ background: linear-gradient(to left, #00c6ff, #0072ff);
+ /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+ font-family: arial;
+}
+
+h1 {
+ font-size: 26px;
+ display: block;
+ text-align: center;
+ color: #fff;
+ padding: 50px 20px;
+ font-weight: 300;
+ font-family: 'Archivo Narrow', sans-serif;
+}
+
+.made-with-love {
+ position: fixed;
+ left: 0;
+ width: 100%;
+ bottom: 10px;
+ text-align: center;
+ font-size: 10px;
+ z-index: 9999;
+ font-family: arial;
+ color: #fff;
+}
+.made-with-love i {
+ font-style: normal;
+ color: #F50057;
+ font-size: 14px;
+ position: relative;
+ top: 2px;
+}
+.made-with-love a {
+ color: #fff;
+ text-decoration: none;
+}
+.made-with-love a:hover {
+ text-decoration: underline;
+}
diff --git a/meetupdao/UI/web3/images/1.jpg b/meetupdao/UI/img/1.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from meetupdao/UI/web3/images/1.jpg
rename to meetupdao/UI/img/1.jpg
diff --git a/meetupdao/UI/web3/images/arrow.jpg b/meetupdao/UI/img/arrow.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from meetupdao/UI/web3/images/arrow.jpg
rename to meetupdao/UI/img/arrow.jpg
diff --git a/meetupdao/UI/img/back.jpeg b/meetupdao/UI/img/back.jpeg
new file mode 100755
index 0000000..8587357
Binary files /dev/null and b/meetupdao/UI/img/back.jpeg differ
diff --git a/meetupdao/UI/img/back.png b/meetupdao/UI/img/back.png
new file mode 100755
index 0000000..f2ad50c
Binary files /dev/null and b/meetupdao/UI/img/back.png differ
diff --git a/meetupdao/UI/img/back2.jpeg b/meetupdao/UI/img/back2.jpeg
new file mode 100755
index 0000000..542f448
Binary files /dev/null and b/meetupdao/UI/img/back2.jpeg differ
diff --git a/meetupdao/UI/img/back3.jpeg b/meetupdao/UI/img/back3.jpeg
new file mode 100755
index 0000000..fee3680
Binary files /dev/null and b/meetupdao/UI/img/back3.jpeg differ
diff --git a/meetupdao/UI/img/back4.jpeg b/meetupdao/UI/img/back4.jpeg
new file mode 100755
index 0000000..cb46db2
Binary files /dev/null and b/meetupdao/UI/img/back4.jpeg differ
diff --git a/meetupdao/UI/img/back4.png b/meetupdao/UI/img/back4.png
new file mode 100755
index 0000000..0520197
Binary files /dev/null and b/meetupdao/UI/img/back4.png differ
diff --git a/meetupdao/UI/web3/images/ethereum.png b/meetupdao/UI/img/ethereum.png
old mode 100644
new mode 100755
similarity index 100%
rename from meetupdao/UI/web3/images/ethereum.png
rename to meetupdao/UI/img/ethereum.png
diff --git a/meetupdao/UI/img/feature.jpeg b/meetupdao/UI/img/feature.jpeg
new file mode 100755
index 0000000..33d8bec
Binary files /dev/null and b/meetupdao/UI/img/feature.jpeg differ
diff --git a/meetupdao/UI/web3/images/step1.jpg b/meetupdao/UI/img/step1.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from meetupdao/UI/web3/images/step1.jpg
rename to meetupdao/UI/img/step1.jpg
diff --git a/meetupdao/UI/web3/images/step2.jpg b/meetupdao/UI/img/step2.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from meetupdao/UI/web3/images/step2.jpg
rename to meetupdao/UI/img/step2.jpg
diff --git a/meetupdao/UI/web3/images/step3.jpg b/meetupdao/UI/img/step3.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from meetupdao/UI/web3/images/step3.jpg
rename to meetupdao/UI/img/step3.jpg
diff --git a/meetupdao/UI/index.html b/meetupdao/UI/index.html
new file mode 100755
index 0000000..8c79c11
--- /dev/null
+++ b/meetupdao/UI/index.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+ Meetup DAO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/meetupdao/UI/index1.html b/meetupdao/UI/index1.html
new file mode 100755
index 0000000..167123a
--- /dev/null
+++ b/meetupdao/UI/index1.html
@@ -0,0 +1,346 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
In the Ethereum ecosystem, there is no discrimination against robots or humans and contracts can create arbitrary actions like any other account would. Contracts can own tokens, participate in crowdsales, and even be voting members of other
+ contracts. DAO is a business or organization whose decisions are made electronically by a written computer code or through the vote of its members. In essence it is a system of hard coded rules that define which actions an organization will
+ take
+
+
DAOs aim to hard-code certain rules that a company would from the get-go. This could be setting aside a certain percentage of earnings for a cause or determining a process by which such a rule could be changed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The way this particular democracy works is that it has an Owner which works like an administrator, CEO or a President. The Owner can add (or remove) voting members to the organization. Any member can make a proposal, which is in the form of
+ an ethereum transaction to either send ether or execute some contract, and other members can vote in support or against the proposal. Once a predetermined amount of time and a certain number of members has voted, the proposal can be executed:
+ the contract counts the votes and if there are enough votes it will execute the given transaction.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Card Title
+
add
+
+
+
I am a very simple card. I am good at containing small bits of information.
+
+
+
+
+
+
+
+
+
Card Title
+
add
+
+
+
I am a very simple card. I am good at containing small bits of information.
+
+
+
+
+
+
+
+
Card Title
+
add
+
+
+
I am a very simple card. I am good at containing small bits of information.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/meetupdao/UI/js/custom.js b/meetupdao/UI/js/custom.js
new file mode 100755
index 0000000..4ed942f
--- /dev/null
+++ b/meetupdao/UI/js/custom.js
@@ -0,0 +1,35 @@
+
+
+ // -------------------- / --------------
+ // partical js
+
+ particlesJS.load('particles-js', 'js/particles.json', function() {
+ console.log('callback - particles.js config loaded');
+ });
+
+
+ // navigation bar
+
+ $(".button-collapse").sideNav();
+
+
+
+// ==================== effects ======
+
+
+$('.parallax').parallax();
+$('.materialboxed').materialbox();
+
+
+// pop up form
+
+$('.modal').modal({
+ dismissible: true, // Modal can be dismissed by clicking outside of the modal
+ opacity: .7, // Opacity of modal background
+ inDuration: 200, // Transition in duration
+ outDuration: 200, // Transition out duration
+ startingTop: '4%', // Starting top style attribute
+ endingTop: '30%', // Ending top style attribute
+
+ }
+);
diff --git a/meetupdao/UI/js/particles.json b/meetupdao/UI/js/particles.json
new file mode 100755
index 0000000..c39e450
--- /dev/null
+++ b/meetupdao/UI/js/particles.json
@@ -0,0 +1,110 @@
+{
+ "particles": {
+ "number": {
+ "value": 90,
+ "density": {
+ "enable": true,
+ "value_area": 800
+ }
+ },
+ "color": {
+ "value": "#ffffff"
+ },
+ "shape": {
+ "type": "circle",
+ "stroke": {
+ "width": 0,
+ "color": "#000000"
+ },
+ "polygon": {
+ "nb_sides": 5
+ },
+ "image": {
+ "src": "img/github.svg",
+ "width": 100,
+ "height": 100
+ }
+ },
+ "opacity": {
+ "value": 0.5,
+ "random": false,
+ "anim": {
+ "enable": false,
+ "speed": 1,
+ "opacity_min": 0.1,
+ "sync": false
+ }
+ },
+ "size": {
+ "value": 3.5,
+ "random": false,
+ "anim": {
+ "enable": false,
+ "speed": 80,
+ "size_min": 0.1,
+ "sync": false
+ }
+ },
+ "line_linked": {
+ "enable": true,
+ "distance": 150,
+ "color": "#ffffff",
+ "opacity": 0.4,
+ "width": 1
+ },
+ "move": {
+ "enable": true,
+ "speed": 5,
+ "direction": "none",
+ "random": false,
+ "straight": false,
+ "out_mode": "out",
+ "bounce": false,
+ "attract": {
+ "enable": false,
+ "rotateX": 600,
+ "rotateY": 1200
+ }
+ }
+ },
+ "interactivity": {
+ "detect_on": "canvas",
+ "events": {
+ "onhover": {
+ "enable": false,
+ "mode": "repulse"
+ },
+ "onclick": {
+ "enable": true,
+ "mode": "push"
+ },
+ "resize": true
+ },
+ "modes": {
+ "grab": {
+ "distance": 800,
+ "line_linked": {
+ "opacity": 1
+ }
+ },
+ "bubble": {
+ "distance": 800,
+ "size": 80,
+ "duration": 2,
+ "opacity": 0.8,
+ "speed": 3
+ },
+ "repulse": {
+ "distance": 400,
+ "duration": 0.4
+ },
+ "push": {
+ "particles_nb": 4
+ },
+ "remove": {
+ "particles_nb": 2
+ }
+ }
+ },
+ "retina_detect": true
+}
diff --git a/meetupdao/UI/js/particles.min.js b/meetupdao/UI/js/particles.min.js
new file mode 100755
index 0000000..b3d46d1
--- /dev/null
+++ b/meetupdao/UI/js/particles.min.js
@@ -0,0 +1,9 @@
+/* -----------------------------------------------
+/* Author : Vincent Garreau - vincentgarreau.com
+/* MIT license: http://opensource.org/licenses/MIT
+/* Demo / Generator : vincentgarreau.com/particles.js
+/* GitHub : github.com/VincentGarreau/particles.js
+/* How to use? : Check the GitHub README
+/* v2.0.0
+/* ----------------------------------------------- */
+function hexToRgb(e){var a=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(a,function(e,a,t,i){return a+a+t+t+i+i});var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function clamp(e,a,t){return Math.min(Math.max(e,a),t)}function isInArray(e,a){return a.indexOf(e)>-1}var pJS=function(e,a){var t=document.querySelector("#"+e+" > .particles-js-canvas-el");this.pJS={canvas:{el:t,w:t.offsetWidth,h:t.offsetHeight},particles:{number:{value:400,density:{enable:!0,value_area:800}},color:{value:"#fff"},shape:{type:"circle",stroke:{width:0,color:"#ff0000"},polygon:{nb_sides:5},image:{src:"",width:100,height:100}},opacity:{value:1,random:!1,anim:{enable:!1,speed:2,opacity_min:0,sync:!1}},size:{value:20,random:!1,anim:{enable:!1,speed:20,size_min:0,sync:!1}},line_linked:{enable:!0,distance:100,color:"#fff",opacity:1,width:1},move:{enable:!0,speed:2,direction:"none",random:!1,straight:!1,out_mode:"out",bounce:!1,attract:{enable:!1,rotateX:3e3,rotateY:3e3}},array:[]},interactivity:{detect_on:"canvas",events:{onhover:{enable:!0,mode:"grab"},onclick:{enable:!0,mode:"push"},resize:!0},modes:{grab:{distance:100,line_linked:{opacity:1}},bubble:{distance:200,size:80,duration:.4},repulse:{distance:200,duration:.4},push:{particles_nb:4},remove:{particles_nb:2}},mouse:{}},retina_detect:!1,fn:{interact:{},modes:{},vendors:{}},tmp:{}};var i=this.pJS;a&&Object.deepExtend(i,a),i.tmp.obj={size_value:i.particles.size.value,size_anim_speed:i.particles.size.anim.speed,move_speed:i.particles.move.speed,line_linked_distance:i.particles.line_linked.distance,line_linked_width:i.particles.line_linked.width,mode_grab_distance:i.interactivity.modes.grab.distance,mode_bubble_distance:i.interactivity.modes.bubble.distance,mode_bubble_size:i.interactivity.modes.bubble.size,mode_repulse_distance:i.interactivity.modes.repulse.distance},i.fn.retinaInit=function(){i.retina_detect&&window.devicePixelRatio>1?(i.canvas.pxratio=window.devicePixelRatio,i.tmp.retina=!0):(i.canvas.pxratio=1,i.tmp.retina=!1),i.canvas.w=i.canvas.el.offsetWidth*i.canvas.pxratio,i.canvas.h=i.canvas.el.offsetHeight*i.canvas.pxratio,i.particles.size.value=i.tmp.obj.size_value*i.canvas.pxratio,i.particles.size.anim.speed=i.tmp.obj.size_anim_speed*i.canvas.pxratio,i.particles.move.speed=i.tmp.obj.move_speed*i.canvas.pxratio,i.particles.line_linked.distance=i.tmp.obj.line_linked_distance*i.canvas.pxratio,i.interactivity.modes.grab.distance=i.tmp.obj.mode_grab_distance*i.canvas.pxratio,i.interactivity.modes.bubble.distance=i.tmp.obj.mode_bubble_distance*i.canvas.pxratio,i.particles.line_linked.width=i.tmp.obj.line_linked_width*i.canvas.pxratio,i.interactivity.modes.bubble.size=i.tmp.obj.mode_bubble_size*i.canvas.pxratio,i.interactivity.modes.repulse.distance=i.tmp.obj.mode_repulse_distance*i.canvas.pxratio},i.fn.canvasInit=function(){i.canvas.ctx=i.canvas.el.getContext("2d")},i.fn.canvasSize=function(){i.canvas.el.width=i.canvas.w,i.canvas.el.height=i.canvas.h,i&&i.interactivity.events.resize&&window.addEventListener("resize",function(){i.canvas.w=i.canvas.el.offsetWidth,i.canvas.h=i.canvas.el.offsetHeight,i.tmp.retina&&(i.canvas.w*=i.canvas.pxratio,i.canvas.h*=i.canvas.pxratio),i.canvas.el.width=i.canvas.w,i.canvas.el.height=i.canvas.h,i.particles.move.enable||(i.fn.particlesEmpty(),i.fn.particlesCreate(),i.fn.particlesDraw(),i.fn.vendors.densityAutoParticles()),i.fn.vendors.densityAutoParticles()})},i.fn.canvasPaint=function(){i.canvas.ctx.fillRect(0,0,i.canvas.w,i.canvas.h)},i.fn.canvasClear=function(){i.canvas.ctx.clearRect(0,0,i.canvas.w,i.canvas.h)},i.fn.particle=function(e,a,t){if(this.radius=(i.particles.size.random?Math.random():1)*i.particles.size.value,i.particles.size.anim.enable&&(this.size_status=!1,this.vs=i.particles.size.anim.speed/100,i.particles.size.anim.sync||(this.vs=this.vs*Math.random())),this.x=t?t.x:Math.random()*i.canvas.w,this.y=t?t.y:Math.random()*i.canvas.h,this.x>i.canvas.w-2*this.radius?this.x=this.x-this.radius:this.x<2*this.radius&&(this.x=this.x+this.radius),this.y>i.canvas.h-2*this.radius?this.y=this.y-this.radius:this.y<2*this.radius&&(this.y=this.y+this.radius),i.particles.move.bounce&&i.fn.vendors.checkOverlap(this,t),this.color={},"object"==typeof e.value)if(e.value instanceof Array){var s=e.value[Math.floor(Math.random()*i.particles.color.value.length)];this.color.rgb=hexToRgb(s)}else void 0!=e.value.r&&void 0!=e.value.g&&void 0!=e.value.b&&(this.color.rgb={r:e.value.r,g:e.value.g,b:e.value.b}),void 0!=e.value.h&&void 0!=e.value.s&&void 0!=e.value.l&&(this.color.hsl={h:e.value.h,s:e.value.s,l:e.value.l});else"random"==e.value?this.color.rgb={r:Math.floor(256*Math.random())+0,g:Math.floor(256*Math.random())+0,b:Math.floor(256*Math.random())+0}:"string"==typeof e.value&&(this.color=e,this.color.rgb=hexToRgb(this.color.value));this.opacity=(i.particles.opacity.random?Math.random():1)*i.particles.opacity.value,i.particles.opacity.anim.enable&&(this.opacity_status=!1,this.vo=i.particles.opacity.anim.speed/100,i.particles.opacity.anim.sync||(this.vo=this.vo*Math.random()));var n={};switch(i.particles.move.direction){case"top":n={x:0,y:-1};break;case"top-right":n={x:.5,y:-.5};break;case"right":n={x:1,y:-0};break;case"bottom-right":n={x:.5,y:.5};break;case"bottom":n={x:0,y:1};break;case"bottom-left":n={x:-.5,y:1};break;case"left":n={x:-1,y:0};break;case"top-left":n={x:-.5,y:-.5};break;default:n={x:0,y:0}}i.particles.move.straight?(this.vx=n.x,this.vy=n.y,i.particles.move.random&&(this.vx=this.vx*Math.random(),this.vy=this.vy*Math.random())):(this.vx=n.x+Math.random()-.5,this.vy=n.y+Math.random()-.5),this.vx_i=this.vx,this.vy_i=this.vy;var r=i.particles.shape.type;if("object"==typeof r){if(r instanceof Array){var c=r[Math.floor(Math.random()*r.length)];this.shape=c}}else this.shape=r;if("image"==this.shape){var o=i.particles.shape;this.img={src:o.image.src,ratio:o.image.width/o.image.height},this.img.ratio||(this.img.ratio=1),"svg"==i.tmp.img_type&&void 0!=i.tmp.source_svg&&(i.fn.vendors.createSvgImg(this),i.tmp.pushing&&(this.img.loaded=!1))}},i.fn.particle.prototype.draw=function(){function e(){i.canvas.ctx.drawImage(r,a.x-t,a.y-t,2*t,2*t/a.img.ratio)}var a=this;if(void 0!=a.radius_bubble)var t=a.radius_bubble;else var t=a.radius;if(void 0!=a.opacity_bubble)var s=a.opacity_bubble;else var s=a.opacity;if(a.color.rgb)var n="rgba("+a.color.rgb.r+","+a.color.rgb.g+","+a.color.rgb.b+","+s+")";else var n="hsla("+a.color.hsl.h+","+a.color.hsl.s+"%,"+a.color.hsl.l+"%,"+s+")";switch(i.canvas.ctx.fillStyle=n,i.canvas.ctx.beginPath(),a.shape){case"circle":i.canvas.ctx.arc(a.x,a.y,t,0,2*Math.PI,!1);break;case"edge":i.canvas.ctx.rect(a.x-t,a.y-t,2*t,2*t);break;case"triangle":i.fn.vendors.drawShape(i.canvas.ctx,a.x-t,a.y+t/1.66,2*t,3,2);break;case"polygon":i.fn.vendors.drawShape(i.canvas.ctx,a.x-t/(i.particles.shape.polygon.nb_sides/3.5),a.y-t/.76,2.66*t/(i.particles.shape.polygon.nb_sides/3),i.particles.shape.polygon.nb_sides,1);break;case"star":i.fn.vendors.drawShape(i.canvas.ctx,a.x-2*t/(i.particles.shape.polygon.nb_sides/4),a.y-t/1.52,2*t*2.66/(i.particles.shape.polygon.nb_sides/3),i.particles.shape.polygon.nb_sides,2);break;case"image":if("svg"==i.tmp.img_type)var r=a.img.obj;else var r=i.tmp.img_obj;r&&e()}i.canvas.ctx.closePath(),i.particles.shape.stroke.width>0&&(i.canvas.ctx.strokeStyle=i.particles.shape.stroke.color,i.canvas.ctx.lineWidth=i.particles.shape.stroke.width,i.canvas.ctx.stroke()),i.canvas.ctx.fill()},i.fn.particlesCreate=function(){for(var e=0;e
=i.particles.opacity.value&&(a.opacity_status=!1),a.opacity+=a.vo):(a.opacity<=i.particles.opacity.anim.opacity_min&&(a.opacity_status=!0),a.opacity-=a.vo),a.opacity<0&&(a.opacity=0)),i.particles.size.anim.enable&&(1==a.size_status?(a.radius>=i.particles.size.value&&(a.size_status=!1),a.radius+=a.vs):(a.radius<=i.particles.size.anim.size_min&&(a.size_status=!0),a.radius-=a.vs),a.radius<0&&(a.radius=0)),"bounce"==i.particles.move.out_mode)var s={x_left:a.radius,x_right:i.canvas.w,y_top:a.radius,y_bottom:i.canvas.h};else var s={x_left:-a.radius,x_right:i.canvas.w+a.radius,y_top:-a.radius,y_bottom:i.canvas.h+a.radius};switch(a.x-a.radius>i.canvas.w?(a.x=s.x_left,a.y=Math.random()*i.canvas.h):a.x+a.radius<0&&(a.x=s.x_right,a.y=Math.random()*i.canvas.h),a.y-a.radius>i.canvas.h?(a.y=s.y_top,a.x=Math.random()*i.canvas.w):a.y+a.radius<0&&(a.y=s.y_bottom,a.x=Math.random()*i.canvas.w),i.particles.move.out_mode){case"bounce":a.x+a.radius>i.canvas.w?a.vx=-a.vx:a.x-a.radius<0&&(a.vx=-a.vx),a.y+a.radius>i.canvas.h?a.vy=-a.vy:a.y-a.radius<0&&(a.vy=-a.vy)}if(isInArray("grab",i.interactivity.events.onhover.mode)&&i.fn.modes.grabParticle(a),(isInArray("bubble",i.interactivity.events.onhover.mode)||isInArray("bubble",i.interactivity.events.onclick.mode))&&i.fn.modes.bubbleParticle(a),(isInArray("repulse",i.interactivity.events.onhover.mode)||isInArray("repulse",i.interactivity.events.onclick.mode))&&i.fn.modes.repulseParticle(a),i.particles.line_linked.enable||i.particles.move.attract.enable)for(var n=e+1;n0){var c=i.particles.line_linked.color_rgb_line;i.canvas.ctx.strokeStyle="rgba("+c.r+","+c.g+","+c.b+","+r+")",i.canvas.ctx.lineWidth=i.particles.line_linked.width,i.canvas.ctx.beginPath(),i.canvas.ctx.moveTo(e.x,e.y),i.canvas.ctx.lineTo(a.x,a.y),i.canvas.ctx.stroke(),i.canvas.ctx.closePath()}}},i.fn.interact.attractParticles=function(e,a){var t=e.x-a.x,s=e.y-a.y,n=Math.sqrt(t*t+s*s);if(n<=i.particles.line_linked.distance){var r=t/(1e3*i.particles.move.attract.rotateX),c=s/(1e3*i.particles.move.attract.rotateY);e.vx-=r,e.vy-=c,a.vx+=r,a.vy+=c}},i.fn.interact.bounceParticles=function(e,a){var t=e.x-a.x,i=e.y-a.y,s=Math.sqrt(t*t+i*i),n=e.radius+a.radius;n>=s&&(e.vx=-e.vx,e.vy=-e.vy,a.vx=-a.vx,a.vy=-a.vy)},i.fn.modes.pushParticles=function(e,a){i.tmp.pushing=!0;for(var t=0;e>t;t++)i.particles.array.push(new i.fn.particle(i.particles.color,i.particles.opacity.value,{x:a?a.pos_x:Math.random()*i.canvas.w,y:a?a.pos_y:Math.random()*i.canvas.h})),t==e-1&&(i.particles.move.enable||i.fn.particlesDraw(),i.tmp.pushing=!1)},i.fn.modes.removeParticles=function(e){i.particles.array.splice(0,e),i.particles.move.enable||i.fn.particlesDraw()},i.fn.modes.bubbleParticle=function(e){function a(){e.opacity_bubble=e.opacity,e.radius_bubble=e.radius}function t(a,t,s,n,c){if(a!=t)if(i.tmp.bubble_duration_end){if(void 0!=s){var o=n-p*(n-a)/i.interactivity.modes.bubble.duration,l=a-o;d=a+l,"size"==c&&(e.radius_bubble=d),"opacity"==c&&(e.opacity_bubble=d)}}else if(r<=i.interactivity.modes.bubble.distance){if(void 0!=s)var v=s;else var v=n;if(v!=a){var d=n-p*(n-a)/i.interactivity.modes.bubble.duration;"size"==c&&(e.radius_bubble=d),"opacity"==c&&(e.opacity_bubble=d)}}else"size"==c&&(e.radius_bubble=void 0),"opacity"==c&&(e.opacity_bubble=void 0)}if(i.interactivity.events.onhover.enable&&isInArray("bubble",i.interactivity.events.onhover.mode)){var s=e.x-i.interactivity.mouse.pos_x,n=e.y-i.interactivity.mouse.pos_y,r=Math.sqrt(s*s+n*n),c=1-r/i.interactivity.modes.bubble.distance;if(r<=i.interactivity.modes.bubble.distance){if(c>=0&&"mousemove"==i.interactivity.status){if(i.interactivity.modes.bubble.size!=i.particles.size.value)if(i.interactivity.modes.bubble.size>i.particles.size.value){var o=e.radius+i.interactivity.modes.bubble.size*c;o>=0&&(e.radius_bubble=o)}else{var l=e.radius-i.interactivity.modes.bubble.size,o=e.radius-l*c;o>0?e.radius_bubble=o:e.radius_bubble=0}if(i.interactivity.modes.bubble.opacity!=i.particles.opacity.value)if(i.interactivity.modes.bubble.opacity>i.particles.opacity.value){var v=i.interactivity.modes.bubble.opacity*c;v>e.opacity&&v<=i.interactivity.modes.bubble.opacity&&(e.opacity_bubble=v)}else{var v=e.opacity-(i.particles.opacity.value-i.interactivity.modes.bubble.opacity)*c;v=i.interactivity.modes.bubble.opacity&&(e.opacity_bubble=v)}}}else a();"mouseleave"==i.interactivity.status&&a()}else if(i.interactivity.events.onclick.enable&&isInArray("bubble",i.interactivity.events.onclick.mode)){if(i.tmp.bubble_clicking){var s=e.x-i.interactivity.mouse.click_pos_x,n=e.y-i.interactivity.mouse.click_pos_y,r=Math.sqrt(s*s+n*n),p=((new Date).getTime()-i.interactivity.mouse.click_time)/1e3;p>i.interactivity.modes.bubble.duration&&(i.tmp.bubble_duration_end=!0),p>2*i.interactivity.modes.bubble.duration&&(i.tmp.bubble_clicking=!1,i.tmp.bubble_duration_end=!1)}i.tmp.bubble_clicking&&(t(i.interactivity.modes.bubble.size,i.particles.size.value,e.radius_bubble,e.radius,"size"),t(i.interactivity.modes.bubble.opacity,i.particles.opacity.value,e.opacity_bubble,e.opacity,"opacity"))}},i.fn.modes.repulseParticle=function(e){function a(){var a=Math.atan2(d,p);if(e.vx=u*Math.cos(a),e.vy=u*Math.sin(a),"bounce"==i.particles.move.out_mode){var t={x:e.x+e.vx,y:e.y+e.vy};t.x+e.radius>i.canvas.w?e.vx=-e.vx:t.x-e.radius<0&&(e.vx=-e.vx),t.y+e.radius>i.canvas.h?e.vy=-e.vy:t.y-e.radius<0&&(e.vy=-e.vy)}}if(i.interactivity.events.onhover.enable&&isInArray("repulse",i.interactivity.events.onhover.mode)&&"mousemove"==i.interactivity.status){var t=e.x-i.interactivity.mouse.pos_x,s=e.y-i.interactivity.mouse.pos_y,n=Math.sqrt(t*t+s*s),r={x:t/n,y:s/n},c=i.interactivity.modes.repulse.distance,o=100,l=clamp(1/c*(-1*Math.pow(n/c,2)+1)*c*o,0,50),v={x:e.x+r.x*l,y:e.y+r.y*l};"bounce"==i.particles.move.out_mode?(v.x-e.radius>0&&v.x+e.radius0&&v.y+e.radius=m&&a()}else 0==i.tmp.repulse_clicking&&(e.vx=e.vx_i,e.vy=e.vy_i)},i.fn.modes.grabParticle=function(e){if(i.interactivity.events.onhover.enable&&"mousemove"==i.interactivity.status){var a=e.x-i.interactivity.mouse.pos_x,t=e.y-i.interactivity.mouse.pos_y,s=Math.sqrt(a*a+t*t);if(s<=i.interactivity.modes.grab.distance){var n=i.interactivity.modes.grab.line_linked.opacity-s/(1/i.interactivity.modes.grab.line_linked.opacity)/i.interactivity.modes.grab.distance;if(n>0){var r=i.particles.line_linked.color_rgb_line;i.canvas.ctx.strokeStyle="rgba("+r.r+","+r.g+","+r.b+","+n+")",i.canvas.ctx.lineWidth=i.particles.line_linked.width,i.canvas.ctx.beginPath(),i.canvas.ctx.moveTo(e.x,e.y),i.canvas.ctx.lineTo(i.interactivity.mouse.pos_x,i.interactivity.mouse.pos_y),i.canvas.ctx.stroke(),i.canvas.ctx.closePath()}}}},i.fn.vendors.eventsListeners=function(){"window"==i.interactivity.detect_on?i.interactivity.el=window:i.interactivity.el=i.canvas.el,(i.interactivity.events.onhover.enable||i.interactivity.events.onclick.enable)&&(i.interactivity.el.addEventListener("mousemove",function(e){if(i.interactivity.el==window)var a=e.clientX,t=e.clientY;else var a=e.offsetX||e.clientX,t=e.offsetY||e.clientY;i.interactivity.mouse.pos_x=a,i.interactivity.mouse.pos_y=t,i.tmp.retina&&(i.interactivity.mouse.pos_x*=i.canvas.pxratio,i.interactivity.mouse.pos_y*=i.canvas.pxratio),i.interactivity.status="mousemove"}),i.interactivity.el.addEventListener("mouseleave",function(e){i.interactivity.mouse.pos_x=null,i.interactivity.mouse.pos_y=null,i.interactivity.status="mouseleave"})),i.interactivity.events.onclick.enable&&i.interactivity.el.addEventListener("click",function(){if(i.interactivity.mouse.click_pos_x=i.interactivity.mouse.pos_x,i.interactivity.mouse.click_pos_y=i.interactivity.mouse.pos_y,i.interactivity.mouse.click_time=(new Date).getTime(),i.interactivity.events.onclick.enable)switch(i.interactivity.events.onclick.mode){case"push":i.particles.move.enable?i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb,i.interactivity.mouse):1==i.interactivity.modes.push.particles_nb?i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb,i.interactivity.mouse):i.interactivity.modes.push.particles_nb>1&&i.fn.modes.pushParticles(i.interactivity.modes.push.particles_nb);break;case"remove":i.fn.modes.removeParticles(i.interactivity.modes.remove.particles_nb);break;case"bubble":i.tmp.bubble_clicking=!0;break;case"repulse":i.tmp.repulse_clicking=!0,i.tmp.repulse_count=0,i.tmp.repulse_finish=!1,setTimeout(function(){i.tmp.repulse_clicking=!1},1e3*i.interactivity.modes.repulse.duration)}})},i.fn.vendors.densityAutoParticles=function(){if(i.particles.number.density.enable){var e=i.canvas.el.width*i.canvas.el.height/1e3;i.tmp.retina&&(e/=2*i.canvas.pxratio);var a=e*i.particles.number.value/i.particles.number.density.value_area,t=i.particles.array.length-a;0>t?i.fn.modes.pushParticles(Math.abs(t)):i.fn.modes.removeParticles(t)}},i.fn.vendors.checkOverlap=function(e,a){for(var t=0;tv;v++)e.lineTo(i,0),e.translate(i,0),e.rotate(l);e.fill(),e.restore()},i.fn.vendors.exportImg=function(){window.open(i.canvas.el.toDataURL("image/png"),"_blank")},i.fn.vendors.loadImg=function(e){if(i.tmp.img_error=void 0,""!=i.particles.shape.image.src)if("svg"==e){var a=new XMLHttpRequest;a.open("GET",i.particles.shape.image.src),a.onreadystatechange=function(e){4==a.readyState&&(200==a.status?(i.tmp.source_svg=e.currentTarget.response,i.fn.vendors.checkBeforeDraw()):(console.log("Error pJS - Image not found"),i.tmp.img_error=!0))},a.send()}else{var t=new Image;t.addEventListener("load",function(){i.tmp.img_obj=t,i.fn.vendors.checkBeforeDraw()}),t.src=i.particles.shape.image.src}else console.log("Error pJS - No image.src"),i.tmp.img_error=!0},i.fn.vendors.draw=function(){"image"==i.particles.shape.type?"svg"==i.tmp.img_type?i.tmp.count_svg>=i.particles.number.value?(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame)):i.tmp.img_error||(i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw)):void 0!=i.tmp.img_obj?(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame)):i.tmp.img_error||(i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw)):(i.fn.particlesDraw(),i.particles.move.enable?i.fn.drawAnimFrame=requestAnimFrame(i.fn.vendors.draw):cancelRequestAnimFrame(i.fn.drawAnimFrame))},i.fn.vendors.checkBeforeDraw=function(){"image"==i.particles.shape.type?"svg"==i.tmp.img_type&&void 0==i.tmp.source_svg?i.tmp.checkAnimFrame=requestAnimFrame(check):(cancelRequestAnimFrame(i.tmp.checkAnimFrame),i.tmp.img_error||(i.fn.vendors.init(),i.fn.vendors.draw())):(i.fn.vendors.init(),i.fn.vendors.draw())},i.fn.vendors.init=function(){i.fn.retinaInit(),i.fn.canvasInit(),i.fn.canvasSize(),i.fn.canvasPaint(),i.fn.particlesCreate(),i.fn.vendors.densityAutoParticles(),i.particles.line_linked.color_rgb_line=hexToRgb(i.particles.line_linked.color)},i.fn.vendors.start=function(){isInArray("image",i.particles.shape.type)?(i.tmp.img_type=i.particles.shape.image.src.substr(i.particles.shape.image.src.length-3),i.fn.vendors.loadImg(i.tmp.img_type)):i.fn.vendors.checkBeforeDraw()},i.fn.vendors.eventsListeners(),i.fn.vendors.start()};Object.deepExtend=function(e,a){for(var t in a)a[t]&&a[t].constructor&&a[t].constructor===Object?(e[t]=e[t]||{},arguments.callee(e[t],a[t])):e[t]=a[t];return e},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)}}(),window.cancelRequestAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout}(),window.pJSDom=[],window.particlesJS=function(e,a){"string"!=typeof e&&(a=e,e="particles-js"),e||(e="particles-js");var t=document.getElementById(e),i="particles-js-canvas-el",s=t.getElementsByClassName(i);if(s.length)for(;s.length>0;)t.removeChild(s[0]);var n=document.createElement("canvas");n.className=i,n.style.width="100%",n.style.height="100%";var r=document.getElementById(e).appendChild(n);null!=r&&pJSDom.push(new pJS(e,a))},window.particlesJS.load=function(e,a,t){var i=new XMLHttpRequest;i.open("GET",a),i.onreadystatechange=function(a){if(4==i.readyState)if(200==i.status){var s=JSON.parse(a.currentTarget.response);window.particlesJS(e,s),t&&t()}else console.log("Error pJS - XMLHttpRequest status: "+i.status),console.log("Error pJS - File config not found")},i.send()};
\ No newline at end of file
diff --git a/meetupdao/UI/js/scrollAnimation.js b/meetupdao/UI/js/scrollAnimation.js
new file mode 100755
index 0000000..df8b59d
--- /dev/null
+++ b/meetupdao/UI/js/scrollAnimation.js
@@ -0,0 +1,98 @@
+// JavaScript
+window.sr = ScrollReveal();
+
+
+// Customizing a reveal set
+
+// what is dao section
+
+
+
+sr.reveal('.header-2', {
+ duration: 3000,
+ origin: 'left',
+ distance: '100px',
+});
+
+
+sr.reveal('.header-3', {
+ duration: 3000,
+ origin: 'left',
+ distance: '100px',
+});
+
+
+sr.reveal('.info-col', {
+ duration: 3000,
+ origin: 'left',
+ distance: '50px',
+});
+
+sr.reveal('.foo', {
+ duration: 3000,
+ origin: 'left',
+ distance: '50px',
+});
+
+
+// content Parallex
+
+sr.reveal('.content', {
+ duration: 3000,
+ origin: 'bottom',
+ distance: '50px',
+});
+
+// Feature Section
+
+sr.reveal('.card-1', {
+ duration: 4000,
+ origin: 'bottom',
+ distance: '250px',
+});
+
+sr.reveal('.card-2', {
+ duration: 4000,
+ origin: 'bottom',
+ distance: '250px',
+});
+
+sr.reveal('.card-3', {
+ duration: 4000,
+ origin: 'bottom',
+ distance: '250px',
+});
+
+sr.reveal('.header-4', {
+ duration: 3000,
+ origin: 'bottom',
+ distance: '300px',
+});
+
+// contact Us
+
+sr.reveal('.header-5', {
+ duration: 2000,
+ origin: 'bottom',
+ distance: '0px',
+});
+
+sr.reveal('.form-content', {
+ duration: 2000,
+ origin: 'left',
+ distance: '50px',
+});
+
+sr.reveal('.form-input', {
+ duration: 2000,
+ origin: 'right',
+ distance: '50px',
+});
+
+// footer
+
+sr.reveal('.bar', {
+ duration: 2000,
+ origin: 'bottom',
+ distance: '50px',
+});
diff --git a/meetupdao/UI/js/scrollAnimation2.js b/meetupdao/UI/js/scrollAnimation2.js
new file mode 100755
index 0000000..4702ead
--- /dev/null
+++ b/meetupdao/UI/js/scrollAnimation2.js
@@ -0,0 +1,59 @@
+// JavaScript
+window.sr = ScrollReveal();
+
+
+// Customizing a reveal set
+sr.reveal('.foo', {
+ duration: 3000,
+ distance : '50px',
+ origin : 'left'
+
+});
+
+
+sr.reveal('.step-1', {
+ duration: 2000,
+ distance : '50px',
+ origin : 'bottom'
+});
+
+sr.reveal('.step1-img', {
+ duration: 2000,
+ distance : '50px',
+ origin : 'bottom'
+
+});
+
+sr.reveal('.step-2', {
+ duration: 2000,
+ distance : '50px',
+ origin : 'bottom'
+});
+
+sr.reveal('.step2-img', {
+ duration: 2000,
+ distance : '50px',
+ origin : 'bottom'
+
+});
+
+sr.reveal('.left-text', {
+ duration: 3000,
+ distance : '200px',
+ origin : 'left'
+
+});
+
+sr.reveal('.right-btn', {
+ duration: 3000,
+ distance : '20px',
+ origin : 'right'
+});
+
+
+
+sr.reveal('.foot-anime', {
+ duration: 3000,
+ distance : '20px',
+ origin : 'bottom'
+});
diff --git a/meetupdao/UI/js/typed.js b/meetupdao/UI/js/typed.js
new file mode 100755
index 0000000..49a8b93
--- /dev/null
+++ b/meetupdao/UI/js/typed.js
@@ -0,0 +1,417 @@
+import { initializer } from './initializer.js';
+import { htmlParser } from './html-parser.js';
+
+/**
+ * Welcome to Typed.js!
+ * @param {string} elementId HTML element ID _OR_ HTML element
+ * @param {object} options options object
+ * @returns {object} a new Typed object
+ */
+export default class Typed {
+ constructor(elementId, options) {
+ // Initialize it up
+ initializer.load(this, options, elementId);
+ // All systems go!
+ this.begin();
+ }
+
+ /**
+ * Toggle start() and stop() of the Typed instance
+ * @public
+ */
+ toggle() {
+ this.pause.status ? this.start() : this.stop();
+ }
+
+ /**
+ * Stop typing / backspacing and enable cursor blinking
+ * @public
+ */
+ stop() {
+ if (this.typingComplete) return;
+ if (this.pause.status) return;
+ this.toggleBlinking(true);
+ this.pause.status = true;
+ this.options.onStop(this.arrayPos, this);
+ }
+
+ /**
+ * Start typing / backspacing after being stopped
+ * @public
+ */
+ start() {
+ if (this.typingComplete) return;
+ if (!this.pause.status) return;
+ this.pause.status = false;
+ if (this.pause.typewrite) {
+ this.typewrite(this.pause.curString, this.pause.curStrPos);
+ } else {
+ this.backspace(this.pause.curString, this.pause.curStrPos);
+ }
+ this.options.onStart(this.arrayPos, this);
+ }
+
+ /**
+ * Destroy this instance of Typed
+ * @public
+ */
+ destroy() {
+ this.reset(false);
+ this.options.onDestroy(this);
+ }
+
+ /**
+ * Reset Typed and optionally restarts
+ * @param {boolean} restart
+ * @public
+ */
+ reset(restart = true) {
+ clearInterval(this.timeout);
+ this.replaceText('');
+ if (this.cursor && this.cursor.parentNode) {
+ this.cursor.parentNode.removeChild(this.cursor);
+ this.cursor = null;
+ }
+ this.strPos = 0;
+ this.arrayPos = 0;
+ this.curLoop = 0;
+ if (restart) {
+ this.insertCursor();
+ this.options.onReset(this);
+ this.begin();
+ }
+ }
+
+ /**
+ * Begins the typing animation
+ * @private
+ */
+ begin() {
+ this.typingComplete = false;
+ this.shuffleStringsIfNeeded(this);
+ this.insertCursor();
+ if (this.bindInputFocusEvents) this.bindFocusEvents();
+ this.timeout = setTimeout(() => {
+ // Check if there is some text in the element, if yes start by backspacing the default message
+ if (!this.currentElContent || this.currentElContent.length === 0) {
+ this.typewrite(this.strings[this.sequence[this.arrayPos]], this.strPos);
+ } else {
+ // Start typing
+ this.backspace(this.currentElContent, this.currentElContent.length);
+ }
+ }, this.startDelay);
+ }
+
+ /**
+ * Called for each character typed
+ * @param {string} curString the current string in the strings array
+ * @param {number} curStrPos the current position in the curString
+ * @private
+ */
+ typewrite(curString, curStrPos) {
+ if (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) {
+ this.el.classList.remove(this.fadeOutClass);
+ if (this.cursor) this.cursor.classList.remove(this.fadeOutClass);
+ }
+
+ const humanize = this.humanizer(this.typeSpeed);
+ let numChars = 1;
+
+ if (this.pause.status === true) {
+ this.setPauseStatus(curString, curStrPos, true);
+ return;
+ }
+
+ // contain typing function in a timeout humanize'd delay
+ this.timeout = setTimeout(() => {
+ // skip over any HTML chars
+ curStrPos = htmlParser.typeHtmlChars(curString, curStrPos, this);
+
+ let pauseTime = 0;
+ let substr = curString.substr(curStrPos);
+ // check for an escape character before a pause value
+ // format: \^\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^
+ // single ^ are removed from string
+ if (substr.charAt(0) === '^') {
+ if (/^\^\d+/.test(substr)) {
+ let skip = 1; // skip at least 1
+ substr = /\d+/.exec(substr)[0];
+ skip += substr.length;
+ pauseTime = parseInt(substr);
+ this.temporaryPause = true;
+ this.options.onTypingPaused(this.arrayPos, this);
+ // strip out the escape character and pause value so they're not printed
+ curString = curString.substring(0, curStrPos) + curString.substring(curStrPos + skip);
+ this.toggleBlinking(true);
+ }
+ }
+
+ // check for skip characters formatted as
+ // "this is a `string to print NOW` ..."
+ if (substr.charAt(0) === '`') {
+ while (curString.substr(curStrPos + numChars).charAt(0) !== '`') {
+ numChars++;
+ if (curStrPos + numChars > curString.length) break;
+ }
+ // strip out the escape characters and append all the string in between
+ const stringBeforeSkip = curString.substring(0, curStrPos);
+ const stringSkipped = curString.substring(stringBeforeSkip.length + 1, curStrPos + numChars);
+ const stringAfterSkip = curString.substring(curStrPos + numChars + 1);
+ curString = stringBeforeSkip + stringSkipped + stringAfterSkip;
+ numChars--;
+ }
+
+ // timeout for any pause after a character
+ this.timeout = setTimeout(() => {
+ // Accounts for blinking while paused
+ this.toggleBlinking(false);
+
+ // We're done with this sentence!
+ if (curStrPos === curString.length) {
+ this.doneTyping(curString, curStrPos);
+ } else {
+ this.keepTyping(curString, curStrPos, numChars);
+ }
+ // end of character pause
+ if (this.temporaryPause) {
+ this.temporaryPause = false;
+ this.options.onTypingResumed(this.arrayPos, this);
+ }
+ }, pauseTime);
+
+ // humanized value for typing
+ }, humanize);
+ }
+
+ /**
+ * Continue to the next string & begin typing
+ * @param {string} curString the current string in the strings array
+ * @param {number} curStrPos the current position in the curString
+ * @private
+ */
+ keepTyping(curString, curStrPos, numChars) {
+ // call before functions if applicable
+ if (curStrPos === 0) {
+ this.toggleBlinking(false);
+ this.options.preStringTyped(this.arrayPos, this);
+ }
+ // start typing each new char into existing string
+ // curString: arg, this.el.html: original text inside element
+ curStrPos += numChars;
+ const nextString = curString.substr(0, curStrPos);
+ this.replaceText(nextString);
+ // loop the function
+ this.typewrite(curString, curStrPos);
+ }
+
+ /**
+ * We're done typing all strings
+ * @param {string} curString the current string in the strings array
+ * @param {number} curStrPos the current position in the curString
+ * @private
+ */
+ doneTyping(curString, curStrPos) {
+ // fires callback function
+ this.options.onStringTyped(this.arrayPos, this);
+ this.toggleBlinking(true);
+ // is this the final string
+ if (this.arrayPos === this.strings.length - 1) {
+ // callback that occurs on the last typed string
+ this.complete();
+ // quit if we wont loop back
+ if (this.loop === false || this.curLoop === this.loopCount) {
+ return;
+ }
+ }
+ this.timeout = setTimeout(() => {
+ this.backspace(curString, curStrPos);
+ }, this.backDelay);
+ }
+
+ /**
+ * Backspaces 1 character at a time
+ * @param {string} curString the current string in the strings array
+ * @param {number} curStrPos the current position in the curString
+ * @private
+ */
+ backspace(curString, curStrPos) {
+ if (this.pause.status === true) {
+ this.setPauseStatus(curString, curStrPos, true);
+ return;
+ }
+ if (this.fadeOut) return this.initFadeOut();
+
+ this.toggleBlinking(false);
+ const humanize = this.humanizer(this.backSpeed);
+
+ this.timeout = setTimeout(() => {
+ curStrPos = htmlParser.backSpaceHtmlChars(curString, curStrPos, this);
+ // replace text with base text + typed characters
+ const curStringAtPosition = curString.substr(0, curStrPos);
+ this.replaceText(curStringAtPosition);
+
+ // if smartBack is enabled
+ if (this.smartBackspace) {
+ // the remaining part of the current string is equal of the same part of the new string
+ let nextString = this.strings[this.arrayPos + 1];
+ if (nextString && curStringAtPosition === nextString.substr(0, curStrPos)) {
+ this.stopNum = curStrPos;
+ } else {
+ this.stopNum = 0;
+ }
+ }
+
+ // if the number (id of character in current string) is
+ // less than the stop number, keep going
+ if (curStrPos > this.stopNum) {
+ // subtract characters one by one
+ curStrPos--;
+ // loop the function
+ this.backspace(curString, curStrPos);
+ } else if (curStrPos <= this.stopNum) {
+ // if the stop number has been reached, increase
+ // array position to next string
+ this.arrayPos++;
+ // When looping, begin at the beginning after backspace complete
+ if (this.arrayPos === this.strings.length) {
+ this.arrayPos = 0;
+ this.options.onLastStringBackspaced();
+ this.shuffleStringsIfNeeded();
+ this.begin();
+ } else {
+ this.typewrite(this.strings[this.sequence[this.arrayPos]], curStrPos);
+ }
+ }
+ // humanized value for typing
+ }, humanize);
+ }
+
+ /**
+ * Full animation is complete
+ * @private
+ */
+ complete() {
+ this.options.onComplete(this);
+ if (this.loop) {
+ this.curLoop++;
+ } else {
+ this.typingComplete = true;
+ }
+ }
+
+ /**
+ * Has the typing been stopped
+ * @param {string} curString the current string in the strings array
+ * @param {number} curStrPos the current position in the curString
+ * @param {boolean} isTyping
+ * @private
+ */
+ setPauseStatus(curString, curStrPos, isTyping) {
+ this.pause.typewrite = isTyping;
+ this.pause.curString = curString;
+ this.pause.curStrPos = curStrPos;
+ }
+
+ /**
+ * Toggle the blinking cursor
+ * @param {boolean} isBlinking
+ * @private
+ */
+ toggleBlinking(isBlinking) {
+ if (!this.cursor) return;
+ // if in paused state, don't toggle blinking a 2nd time
+ if (this.pause.status) return;
+ if (this.cursorBlinking === isBlinking) return;
+ this.cursorBlinking = isBlinking;
+ const status = isBlinking ? 'infinite' : 0;
+ this.cursor.style.animationIterationCount = status;
+ }
+
+ /**
+ * Speed in MS to type
+ * @param {number} speed
+ * @private
+ */
+ humanizer(speed) {
+ return Math.round(Math.random() * speed / 2) + speed;
+ }
+
+ /**
+ * Shuffle the sequence of the strings array
+ * @private
+ */
+ shuffleStringsIfNeeded() {
+ if (!this.shuffle) return;
+ this.sequence = this.sequence.sort(() => Math.random() - 0.5);
+ }
+
+ /**
+ * Adds a CSS class to fade out current string
+ * @private
+ */
+ initFadeOut() {
+ this.el.className += ` ${this.fadeOutClass}`;
+ if (this.cursor) this.cursor.className += ` ${this.fadeOutClass}`;
+ return setTimeout(() => {
+ this.arrayPos++;
+ this.replaceText('');
+
+ // Resets current string if end of loop reached
+ if (this.strings.length > this.arrayPos) {
+ this.typewrite(this.strings[this.sequence[this.arrayPos]], 0);
+ } else {
+ this.typewrite(this.strings[0], 0);
+ this.arrayPos = 0;
+ }
+ }, this.fadeOutDelay);
+ }
+
+ /**
+ * Replaces current text in the HTML element
+ * depending on element type
+ * @param {string} str
+ * @private
+ */
+ replaceText(str) {
+ if (this.attr) {
+ this.el.setAttribute(this.attr, str);
+ } else {
+ if (this.isInput) {
+ this.el.value = str;
+ } else if (this.contentType === 'html') {
+ this.el.innerHTML = str;
+ } else {
+ this.el.textContent = str;
+ }
+ }
+ }
+
+ /**
+ * If using input elements, bind focus in order to
+ * start and stop the animation
+ * @private
+ */
+ bindFocusEvents() {
+ if (!this.isInput) return;
+ this.el.addEventListener('focus', (e) => {
+ this.stop();
+ });
+ this.el.addEventListener('blur', (e) => {
+ if (this.el.value && this.el.value.length !== 0) { return; }
+ this.start();
+ });
+ }
+
+ /**
+ * On init, insert the cursor element
+ * @private
+ */
+ insertCursor() {
+ if (!this.showCursor) return;
+ if (this.cursor) return;
+ this.cursor = document.createElement('span');
+ this.cursor.className = 'typed-cursor';
+ this.cursor.innerHTML = this.cursorChar;
+ this.el.parentNode && this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling);
+ }
+}
diff --git a/meetupdao/UI/members.html b/meetupdao/UI/members.html
new file mode 100644
index 0000000..35d801f
--- /dev/null
+++ b/meetupdao/UI/members.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+ DAO Members
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/meetupdao/UI/web3/members.js b/meetupdao/UI/members.js
similarity index 100%
rename from meetupdao/UI/web3/members.js
rename to meetupdao/UI/members.js
diff --git a/meetupdao/UI/web3/proposals.html b/meetupdao/UI/proposals.html
similarity index 65%
rename from meetupdao/UI/web3/proposals.html
rename to meetupdao/UI/proposals.html
index 832afbd..3aa3806 100644
--- a/meetupdao/UI/web3/proposals.html
+++ b/meetupdao/UI/proposals.html
@@ -5,56 +5,34 @@
-
-
-
-
-
+
PROPOSALS
-
-
-
-
-
-
- Close Dialog
-
-
+
+
-
+
New Proposal
@@ -62,10 +40,8 @@
New Proposal
-
-
+
-
diff --git a/meetupdao/UI/proposals.js b/meetupdao/UI/proposals.js
new file mode 100644
index 0000000..f5923c2
--- /dev/null
+++ b/meetupdao/UI/proposals.js
@@ -0,0 +1,91 @@
+
+function newProposalInEther(){
+ var beneficiary=document.getElementById("beneficiary").value;
+ var etherAmount=document.getElementById("etherAmount").value;
+ var jobDescription=document.getElementById("jobDescription").value;
+ var transactionBytecode=document.getElementById("transactionBytecode").value;
+ var myTokenContract = web3.eth.contract(abi).at(address);
+ return myTokenContract.newProposalInEther(beneficiary, etherAmount, jobDescription, transactionBytecode, function (error, result) {})
+
+ }
+
+
+function executeProposal(proposalNumberValue){
+ var proposalNumber = proposalNumberValue;
+ var transactionBytecode=document.getElementById("transactionBytecode").value;
+ var myTokenContract = web3.eth.contract(abi).at(address);
+ return myTokenContract.executeProposal(proposalNumber, transactionBytecode, function (error, result) {})
+
+ }
+
+
+ function vote(proposalNumberValue){
+ var proposalNumber = proposalNumberValue;
+ var idYes = "supportsProposal_" + proposalNumber + "_yes";
+ var idNo = "supportsProposal_" + proposalNumber + "_no";
+ var idJustificationText = "justificationText_" + proposalNumber;
+ var yes=document.getElementById(idYes).checked;
+ var no= document.getElementById(idNo).checked;
+ if(yes==true)
+ var supportsProposal = 1;
+ else if(no==true)
+ var supportsProposal = -1;
+
+ var justificationText=document.getElementById(idJustificationText).value;
+ var myTokenContract = web3.eth.contract(abi).at(address);
+ return myTokenContract.vote(proposalNumber, supportsProposal, justificationText, function (error, result) {})
+ }
+
+
+function getProposals(){
+ var myTokenContract = web3.eth.contract(abi).at(address);
+
+ myTokenContract.totalProposals(function(error,result){
+ var totalProposals = result.c[0];
+ for(var i = 0; i < totalProposals; i++){
+ const proposalNumber = i;
+ myTokenContract.proposals(i, function(error,result){
+
+ var a1 = '
';
+ var recipient = result[0];
+ var a2 = '
EXECUTE ';
+ var message = result[2];
+
+ var voteButton1 = ' ';
+
+ var a3 = 'Proposal No.: ';
+
+ var a4 = '
Votes   : Total Votes: ';
+ var totalVotes = result[6].c[0];
+ var a5 = '      Current Status: ';
+ var currentStatus = result[7].c[0];
+ var a6 = '
';
+
+ var input = a1+recipient+a2+proposalNumber+a21+message+voteButton1+proposalNumber+voteButton2+proposalNumber+voteButton3+proposalNumber+voteButton4+proposalNumber+voteButton5+a3+proposalNumber+a4+totalVotes+a5+currentStatus+a6;
+ var mydiv = document.getElementById("parent");
+ var newDiv = document.createElement('div');
+ newDiv.innerHTML = input;
+ while (newDiv.firstChild) {
+ mydiv.appendChild(newDiv.firstChild);
+ }
+
+
+ })
+ }
+ })
+}
+getProposals();
+
+function homenav(){
+ location.href ="./index.html";
+}
\ No newline at end of file
diff --git a/meetupdao/UI/stepProposal.html b/meetupdao/UI/stepProposal.html
new file mode 100755
index 0000000..5bfaf99
--- /dev/null
+++ b/meetupdao/UI/stepProposal.html
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/meetupdao/UI/web3/abi.js b/meetupdao/UI/web3/abi.js
deleted file mode 100644
index 912c7db..0000000
--- a/meetupdao/UI/web3/abi.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-var address="0x4109f673b60E92c69f7d511D0fB641ecf7ea1694";
-
-var abi =
-[ { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "proposals", "outputs": [ { "name": "recipient", "type": "address", "value": "0x0000000000000000000000000000000000000000" }, { "name": "amount", "type": "uint256", "value": "0" }, { "name": "description", "type": "string", "value": "Tester" }, { "name": "fileHash", "type": "string", "value": "" }, { "name": "votingDeadline", "type": "uint256", "value": "1522839557" }, { "name": "executed", "type": "bool", "value": false }, { "name": "proposalPassed", "type": "bool", "value": false }, { "name": "numberOfVotes", "type": "uint256", "value": "0" }, { "name": "currentResult", "type": "int256", "value": "0" }, { "name": "proposalHash", "type": "bytes32", "value": "0xa86d54e9aab41ae5e520ff0062ff1b4cbd0b2192bb01080a058bb170d84e6457" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "targetMember", "type": "address" } ], "name": "removeMember", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "proposalNumber", "type": "uint256" }, { "name": "transactionBytecode", "type": "bytes" } ], "name": "executeProposal", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "memberId", "outputs": [ { "name": "", "type": "uint256", "value": "0" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "beneficiary", "type": "address" }, { "name": "weiAmount", "type": "uint256" }, { "name": "jobDescription", "type": "string" }, { "name": "uploadFileHash", "type": "string" }, { "name": "transactionBytecode", "type": "bytes" } ], "name": "newProposal", "outputs": [ { "name": "proposalID", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "numProposals", "outputs": [ { "name": "", "type": "uint256", "value": "8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "members", "outputs": [ { "name": "member", "type": "address", "value": "0x0000000000000000000000000000000000000000" }, { "name": "name", "type": "string", "value": "" }, { "name": "memberSince", "type": "uint256", "value": "1522838942" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "debatingPeriodInMinutes", "outputs": [ { "name": "", "type": "uint256", "value": "5" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalMembers", "outputs": [ { "name": "", "type": "uint256", "value": "6" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "minimumQuorum", "outputs": [ { "name": "", "type": "uint256", "value": "2" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "0x52c3a9b0f293cac8c1baabe5b62524a71211a616" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_from", "type": "address" }, { "name": "_value", "type": "uint256" }, { "name": "_token", "type": "address" }, { "name": "_extraData", "type": "bytes" } ], "name": "receiveApproval", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "totalProposals", "outputs": [ { "name": "", "type": "uint256", "value": "8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "majorityMargin", "outputs": [ { "name": "", "type": "int256", "value": "0" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "minimumQuorumForProposals", "type": "uint256" }, { "name": "minutesForDebate", "type": "uint256" }, { "name": "marginOfVotesForMajority", "type": "int256" } ], "name": "changeVotingRules", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "targetMember", "type": "address" }, { "name": "memberName", "type": "string" } ], "name": "addMember", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "beneficiary", "type": "address" }, { "name": "etherAmount", "type": "uint256" }, { "name": "jobDescription", "type": "string" }, { "name": "uploadFileHash", "type": "string" }, { "name": "transactionBytecode", "type": "bytes" } ], "name": "newProposalInEther", "outputs": [ { "name": "proposalID", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "proposalNumber", "type": "uint256" }, { "name": "supportsProposal", "type": "bool" }, { "name": "justificationText", "type": "string" } ], "name": "vote", "outputs": [ { "name": "voteID", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "memberName", "type": "string" } ], "name": "becomeMember", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "proposalNumber", "type": "uint256" }, { "name": "beneficiary", "type": "address" }, { "name": "weiAmount", "type": "uint256" }, { "name": "transactionBytecode", "type": "bytes" } ], "name": "checkProposalCode", "outputs": [ { "name": "codeChecksOut", "type": "bool", "value": true } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "payable": true, "stateMutability": "payable", "type": "constructor" }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "proposalID", "type": "uint256" }, { "indexed": false, "name": "recipient", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" }, { "indexed": false, "name": "description", "type": "string" } ], "name": "ProposalAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "proposalID", "type": "uint256" }, { "indexed": false, "name": "position", "type": "bool" }, { "indexed": false, "name": "voter", "type": "address" }, { "indexed": false, "name": "justification", "type": "string" } ], "name": "Voted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "proposalID", "type": "uint256" }, { "indexed": false, "name": "result", "type": "int256" }, { "indexed": false, "name": "quorum", "type": "uint256" }, { "indexed": false, "name": "active", "type": "bool" } ], "name": "ProposalTallied", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "member", "type": "address" }, { "indexed": false, "name": "isMember", "type": "bool" } ], "name": "MembershipChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "newMinimumQuorum", "type": "uint256" }, { "indexed": false, "name": "newDebatingPeriodInMinutes", "type": "uint256" }, { "indexed": false, "name": "newMajorityMargin", "type": "int256" } ], "name": "ChangeOfRules", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "sender", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" } ], "name": "receivedEther", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "_from", "type": "address" }, { "indexed": false, "name": "_value", "type": "uint256" }, { "indexed": false, "name": "_token", "type": "address" }, { "indexed": false, "name": "_extraData", "type": "bytes" } ], "name": "receivedTokens", "type": "event" } ];
-
diff --git a/meetupdao/UI/web3/images/roadmap.jpg b/meetupdao/UI/web3/images/roadmap.jpg
deleted file mode 100644
index 8304c10..0000000
Binary files a/meetupdao/UI/web3/images/roadmap.jpg and /dev/null differ
diff --git a/meetupdao/UI/web3/images/roadmap1.jpg b/meetupdao/UI/web3/images/roadmap1.jpg
deleted file mode 100644
index 8bbdce7..0000000
Binary files a/meetupdao/UI/web3/images/roadmap1.jpg and /dev/null differ
diff --git a/meetupdao/UI/web3/index.html b/meetupdao/UI/web3/index.html
deleted file mode 100644
index 1bb2402..0000000
--- a/meetupdao/UI/web3/index.html
+++ /dev/null
@@ -1,206 +0,0 @@
-
-
-
DAO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
What is DAO!!!
-
- In the Ethereum ecosystem, there is no discrimination against robots or humans and contracts can create arbitrary actions like any other account would. Contracts can own tokens, participate in crowdsales, and even be voting members of other contracts.
- DAO is a business or organization whose decisions are made electronically by a written computer code or through the vote of its members. In essence it is a system of hard coded rules that define which actions an organization will take
-
-DAOs aim to hard-code certain rules that a company would from the get-go. This could be setting aside a certain percentage of earnings for a cause or determining a process by which such a rule could be changed.
-
-
-
-
-
-
HOW THIS DAO WORKS!!!
-
- The way this particular democracy works is that it has an Owner which works like an administrator, CEO or a President. The Owner can add (or remove) voting members to the organization. Any member can make a proposal, which is in the form of an ethereum transaction to either send ether or execute some contract, and other members can vote in support or against the proposal. Once a predetermined amount of time and a certain number of members has voted, the proposal can be executed: the contract counts the votes and if there are enough votes it will execute the given transaction.
-
-
-
-
-
- Want to join the Community? Just enter your name below and join, its as simple as that
-
- Join DAO
-
-
-
-
-
-
-
Short of Ether??
-
-
-
-
No worries. Visit the link given below and follow the steps mentioned there to get rinkeby test ethers.
-
Click here to get ether.
-
-
-
-
-
-
-
-
-
-
-
-
-
HOW TO CREATE A PROPOSAL
-
-
-
-
-
-
- ROADMAP
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/meetupdao/UI/web3/members.html b/meetupdao/UI/web3/members.html
deleted file mode 100644
index abac42d..0000000
--- a/meetupdao/UI/web3/members.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
DAO Members
-
-
-
-
-
-
-
-
-
-
-
-
MEMBERS OF DAO
-
-
-
-
-
-
-
diff --git a/meetupdao/UI/web3/proposals.js b/meetupdao/UI/web3/proposals.js
deleted file mode 100644
index f330da0..0000000
--- a/meetupdao/UI/web3/proposals.js
+++ /dev/null
@@ -1,176 +0,0 @@
-
- function previewHash(hash){
- var dialog = document.getElementById('window');
- dialog.show();
- document.getElementById('exit').onclick = function() {
- dialog.close();
- };
-
-
-
- var preview = document.querySelector('img');
- var xhttp = new XMLHttpRequest();
- xhttp.onreadystatechange = function() {
- if (this.readyState == 4 && this.status == 200) {
- // Typical action to be performed when the document is ready:
- preview.src = xhttp.responseText;
- }
- };
- xhttp.open("GET", "http://swarm-gateways.net/bzz:/" + hash, true);
- xhttp.send();
-
- }
-
- function uploadToSwarm() {
- var fileHash;
- var preview = document.querySelector('img');
- var file = document.querySelector('input[type=file]').files[0];
- if(file==undefined){
- fileHash = "";
- console.log(fileHash);
- newProposalInEther(fileHash);
- }
- else{
- var reader = new FileReader();
-
- reader.addEventListener("load", function () {
- //preview.src = reader.result;
- var xhr = new XMLHttpRequest();
- xhr.open("POST", "http://swarm-gateways.net/bzz:/", true);
- xhr.setRequestHeader('Content-Type', 'text/plain');
- xhr.send(reader.result);
- xhr.onload = function() {
- hash = this.responseText;
- console.log(hash);
- fileHash = String(hash);
- newProposalInEther(fileHash);
- }
-
- }, false);
-
- if (file) {
- reader.readAsDataURL(file);
- }
- }
- }
-
-
-function newProposalInEther(newFileHash){
-
- var beneficiary=document.getElementById("beneficiary").value;
- var etherAmount=document.getElementById("etherAmount").value;
- var jobDescription=document.getElementById("jobDescription").value;
- var transactionBytecode=document.getElementById("transactionBytecode").value;
-
- var myTokenContract = web3.eth.contract(abi).at(address);
- return myTokenContract.newProposalInEther(beneficiary, etherAmount, jobDescription, newFileHash, transactionBytecode, function (error, result) {})
-
- }
-
-
-function executeProposal(proposalNumberValue){
-
- // console.log("function successfully loladed");
- // var proposalNumber=document.getElementById("proposalNumber").value;
- var proposalNumber = proposalNumberValue;
- var transactionBytecode=document.getElementById("transactionBytecode").value;
-
- var myTokenContract = web3.eth.contract(abi).at(address);
- return myTokenContract.executeProposal(proposalNumber, transactionBytecode, function (error, result) {})
-
- }
-
-
- function vote(proposalNumberValue){
-
- var proposalNumber = proposalNumberValue;
- var idYes = "supportsProposal_" + proposalNumber + "_yes";
- var idNo = "supportsProposal_" + proposalNumber + "_no";
- var idJustificationText = "justificationText_" + proposalNumber;
- var yes=document.getElementById(idYes).checked;
- var no= document.getElementById(idNo).checked;
- if(yes==true)
- var supportsProposal = 1;
- else if(no==true)
- var supportsProposal = -1;
-
- var justificationText=document.getElementById(idJustificationText).value;
-
- var myTokenContract = web3.eth.contract(abi).at(address);
- return myTokenContract.vote(proposalNumber, supportsProposal, justificationText, function (error, result) {})
- }
-
-
-function getProposals(){
- var myTokenContract = web3.eth.contract(abi).at(address);
-
- myTokenContract.totalProposals(function(error,result){
- var totalProposals = result.c[0];
- for(var i = 0; i < totalProposals; i++){
- const proposalNumber = i;
- myTokenContract.proposals(i, function(error,result){
- //console.log(result);
-
- var a1 = '
Benificiary Address : ';
- var recipient = result[0];
- //##############################################################################
- //execute proposal button
- // var a2 = 'EXECUTE ';
- //##############################################################################
- //##############################################################################
- var a2 = '';
- var a21 = '';
- //###########################################################################
- var message = result[2];
- // var imageFromHash = ' ';
-
-
- var voteButton1 = ' ';
-
- var a3 = 'Proposal No.: ';
-
- var a4 = 'Votes   : Total Votes: ';
- var totalVotes = result[7].c[0];
- var a5 = '      Current Status: ';
- //var currentStatus = result[8].c[0] * result[8].s;
- var hash = result[3];
- var preview_but = ''
- if (result[3]){;
- preview_but = 'View uploaded file ';
- }
-
- var currentStatus = result[8].c[0];
- var a6 = '
';
-
- if (result[8].s < 0) {
- currentStatus = -currentStatus;
- }
-
- //execute button
- //var input = a1+recipient+a2+proposalNumber+a21+message+preview_but+voteButton1+proposalNumber+voteButton2+proposalNumber+voteButton3+proposalNumber+voteButton4+proposalNumber+voteButton5+a3+proposalNumber+a4+totalVotes+a5+currentStatus+a6;
-
- var input = a1+recipient+a2+preview_but+a21+message+voteButton1+proposalNumber+voteButton2+proposalNumber+voteButton3+proposalNumber+voteButton4+proposalNumber+voteButton5+a3+proposalNumber+a4+totalVotes+a5+currentStatus+a6;
- var mydiv = document.getElementById("parent");
- var newDiv = document.createElement('div');
- newDiv.innerHTML = input;
- while (newDiv.firstChild) {
- mydiv.appendChild(newDiv.firstChild);
- }
-
-
- })
- }
- })
-
-}
-
-getProposals();
\ No newline at end of file
diff --git a/meetupdao/UI/web3/stylesheet.css b/meetupdao/UI/web3/stylesheet.css
deleted file mode 100644
index 72dd636..0000000
--- a/meetupdao/UI/web3/stylesheet.css
+++ /dev/null
@@ -1,54 +0,0 @@
-.proposalCard {
- box-shadow: 4px 4px 8px 4px rgba(0,0,0,0.2);
- transition: 0.3s;
- width: 40%;
- margin-left: 5%;
- margin-right: 5% ;
- background-color: white;
- padding-top: 30px;
- padding-bottom: 30px;
- padding-left: 40px;
- padding-right: 50px;
- width: 80%;
- }
-
- .proposalCard:hover {
- box-shadow: 8px 8px 16px 8px rgba(0,0,0,0.2);
- }
-
- .container {
- padding: 2px 16px;
- }
-
-
-.card{
- box-shadow: 4px 4px 8px 4px rgba(0,0,0,0.2);
- transition: 0.3s;
- float: left;
- margin-left: 2%;
- margin-right: 2%;
- margin-bottom: 2%;
- background-color: white;
- padding-top: 30px;
- padding-bottom: 30px;
- padding-left: 20px;
- padding-right: 20px;
- width: 18%;
-}
-
-.card:hover {
- box-shadow: 8px 8px 16px 8px rgba(0,0,0,0.2);
-}
-
-.container {
- padding: 2px 16px;
-}
-
-.clearfix::after {
- content: "";
- clear: both;
- display: table;
-}
-
-
-