Compare commits

..

No commits in common. "original-version" and "master" have entirely different histories.

286 changed files with 4395 additions and 52914 deletions

10
.eslintrc Normal file
View file

@ -0,0 +1,10 @@
{
parser: "babel-eslint",
"plugins": [
"react"
],
"rules": {
"max-len": [1, 120, 2, {ignoreComments: true}]
},
"extends": ["eslint:recommended", "plugin:react/recommended"]
}

32
.gitignore vendored
View file

@ -1,10 +1,24 @@
*.key
*.crt
*.pem
client/src/static/disabled/
node_modules/
outputDir/
client/package-lock.json
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
.idea
package-lock.json
public/img/.tinypng-sigs
acme/
yarn.lock
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View file

@ -1,7 +1,7 @@
# PalmPay.io Website files
Feel free to copy any/all of these files if you are creating a clone site such as PalmPay.se, PalmPay.pt, PalmPay.mx, PalmPay.my, PalmPay.ca, PalmPay.pro, etc
Feel free to copy any/all of these files if you are creating a clone site such as PalmPay.se, PalmPay.pt, PalmPay.mx, PalmPay.my, PalmPay.ca, PalmPay.pro, PalmPay.solutions, PalmPay.ch, etc
Any questions, feel free to ping us on..
Telegram: https://t.me/Agorise
Keybase: https://keybase.io/team/Agorise
Matrix: http://agorise.chat
Session: 052f99b1965cb2a54ac516d29d122f5ec7b13e30209c31e9f57f820e7008336758

18
app.js
View file

@ -1,18 +0,0 @@
var compression = require("compression");
var createError = require("http-errors");
var express = require("express");
var path = require("path");
var app = express();
app.use(compression());
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, "public")));
app.use("/marketing",express.static(path.join(__dirname, 'public')));
app.use("/", express.static(path.join(__dirname, "./client/build")));
app.get("*", function(request, response) {
response.sendFile(path.resolve(__dirname, "./client/build", "index.html"));
});
module.exports = app;

View file

@ -1,17 +0,0 @@
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var router = express.Router();
var app = express();
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use("/marketing",express.static(path.join(__dirname, 'public')));
module.exports = app;

98
bin/www
View file

@ -1,98 +0,0 @@
#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require("../app");
var debug = require("debug")("palmpay:server");
var http = require("http");
var fs = require("fs");
var https = require("https");
const key = fs.readFileSync('./acme/etc/live/palmpay.io/privkey.pem', 'utf8');
const cert = fs.readFileSync('./acme/etc/live/palmpay.io/cert.pem', 'utf8');
const ca = fs.readFileSync('./acme/etc/live/palmpay.io/chain.pem', 'utf8');
var ssl_options = {
key: key,
cert: cert,
ca: ca
};
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || "80");
app.set("port", port);
/**
* Create HTTP/HTTPS server.
*/
var secureServer = https.createServer(ssl_options, app);
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
secureServer.listen(443);
server.listen(port);
server.on("error", onError);
server.on("listening", onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== "listen") {
throw error;
}
var bind = typeof port === "string" ? "Pipe " + port : "Port " + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case "EACCES":
console.error(bind + " requires elevated privileges");
process.exit(1);
break;
case "EADDRINUSE":
console.error(bind + " is already in use");
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === "string" ? "pipe " + addr : "port " + addr.port;
debug("Listening on " + bind);
}

View file

@ -1,86 +0,0 @@
#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require("../appdev");
var debug = require("debug")("palmpay:server");
var http = require("http");
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || "3000");
app.set("port", port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on("error", onError);
server.on("listening", onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== "listen") {
throw error;
}
var bind = typeof port === "string" ? "Pipe " + port : "Port " + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case "EACCES":
console.error(bind + " requires elevated privileges");
process.exit(1);
break;
case "EADDRINUSE":
console.error(bind + " is already in use");
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === "string" ? "pipe " + addr : "port " + addr.port;
debug("Listening on " + bind);
}

21
client/.gitignore vendored
View file

@ -1,21 +0,0 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View file

@ -1,21 +0,0 @@
{
"name": "client",
"version": "0.1.0",
"private": true,
"dependencies": {
"express": "^4.16.3",
"mdbreact": "^4.5.0",
"react": "^16.4.1",
"react-dom": "^16.4.1",
"react-ripples": "^1.1.2",
"react-scripts": "1.1.4",
"react-scroll": "^1.7.9"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom --watchAll",
"eject": "react-scripts eject"
},
"proxy": "http://localhost:3001"
}

View file

@ -1,241 +0,0 @@
import React from "react";
import { Footer, Row, Col, Modal, ModalBody, ModalHeader } from "mdbreact";
import { BrowserRouter as Router } from "react-router-dom";
import { Events, animateScroll as scroll, scrollSpy } from "react-scroll";
import HomeNav from "./components/HomeNav";
import MarketingNav from "./components/MarketingNav";
import "./index.css";
import "./static/css/palmpay.css";
//import './static/css/palmpay.css';
import Routes from "./Routes";
class App extends React.Component {
constructor(props) {
super(props);
this.state = { showmenu: true };
this.state = {
collapse: false,
modal2: false
};
this.toggle2 = this.toggle2.bind(this);
this.onClick = this.onClick.bind(this);
this.handleNavbarClick = this.handleNavbarClick.bind(this);
}
toggle2() {
this.setState({
modal2: !this.state.modal2
});
}
onClick() {
this.setState({
collapse: !this.state.collapse
});
}
handleNavbarClick() {
this.setState({
collapse: false
});
}
componentDidMount() {
Events.scrollEvent.register("begin", function(to, element) {
console.log("begin", arguments);
});
Events.scrollEvent.register("end", function(to, element) {
console.log("end", arguments);
});
scrollSpy.update();
}
componentWillUnmount() {
Events.scrollEvent.remove("begin");
Events.scrollEvent.remove("end");
}
scrollToTop() {
scroll.scrollToTop();
}
scrollToBottom() {
scroll.scrollToBottom();
}
scrollTo() {
scroll.scrollTo(100);
}
scrollMore() {
scroll.scrollMore(100);
}
handleSetActive(to) {
console.log(to);
}
render() {
const currentPath = window.location.pathname;
const collapsed = this.state.collapsed;
const overlay = (
<div
id="sidenav-overlay"
style={{ backgroundColor: "transparent" }}
onClick={this.handleNavbarClick}
/>
);
return (
<Router>
<span id="apppage">
{!currentPath.includes("marketing") ? (
<HomeNav toggle2={this.toggle2} />
) : (
<MarketingNav />
)}
{collapsed && overlay}
<Routes />
<Footer className="footer text-center">
<div className="containerfix">
<Row className="vertical-align footerrow">
<Col md="4">
<img alt="" src="./img/footerlogo.png" />
</Col>
<Col md="4">
<ul className="list-inline social-buttons">
<li className="list-inline-item">
<a
target="_blank"
rel="noopener noreferrer"
href="https://t.me/Agorise">
<i className="fa fa-telegram" />
</a>
</li>
<li className="list-inline-item">
<a
target="_blank"
rel="noopener noreferrer"
href="https://twitter.com/Agorise_world">
<i className="fa fa-twitter" />
</a>
</li>
<li className="list-inline-item">
<a
target="_blank"
rel="noopener noreferrer"
href="https://youtube.com/Agorise">
<i className="fa fa-youtube" />
</a>
</li>
<li className="list-inline-item">
<a
target="_blank"
rel="noopener noreferrer"
href="https://d.tube/c/agorise">
<img alt="" src="./img/dtube.png" />
</a>
</li>
<li className="list-inline-item">
<a
target="_blank"
rel="noopener noreferrer"
href="https://steemit.com/@Agorise">
<img alt="" src="./img/steemit.png" />
</a>
</li>
</ul>
</Col>
<Col md="4">
<p className="mb-0">
<span id="ft_lang1">FASTER AND SAFER THAN CASH</span>
</p>
</Col>
</Row>
<div
className="copyright py-3 text-center text-white"
style={{ fontSize: "0.8em" }}>
<div>
<div className="row vertical-align">
<div className="col-md-10 mx-md-auto">
<p>
<span id="cp_lang1">
This website is not intended as legal or financial
advice, is not a guarantee of anything and we do not
collect any info about you whatsoever. PalmPay is a
Point Of Sale product by Agorise, Ltd. For technical
details, chat anytime 24/7 with the Agorise community
on Telegram at:
<a
target="_blank"
rel="noopener noreferrer"
href="http://t.me/Agorise">
{" "}
http://t.me/Agorise
</a>
</span>
</p>
</div>
</div>
<div className="row vertical-align">
<div className="col-md-4" />
<div className="col-md-4">
<small>
&copy; Copyright {new Date().getFullYear()}{" "}
<a
target="_blank"
rel="noopener noreferrer"
href="http://agorise.world/">
{" "}
Agorise Ltd.{" "}
</a>
</small>
</div>
</div>
<div className="row justify-content-end">
<div
style={{ fontSize: "0.8em" }}
className="text-white col-md-2">
<small>
Site by:{" "}
<a
target="_blank"
rel="noopener noreferrer"
href="https://about.me/poqdavid">
poqdavid
</a>
</small>
</div>
</div>
</div>
</div>
</div>
</Footer>
<Modal isOpen={this.state.modal2} toggle={this.toggle2}>
<ModalHeader toggle={this.toggle2}>
<span id="mdl_lang1">Downloads</span>
</ModalHeader>
<ModalBody className="text-center">
<a
target="_blank"
rel="noopener noreferrer"
href="https://play.google.com/store/apps/details?id=cy.agorise.palmpay">
<img
alt=""
className="logo1"
src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"
height="60"
width="auto"
/>
</a>
</ModalBody>
</Modal>
</span>
</Router>
);
}
}
export default App;

View file

@ -1,168 +0,0 @@
import React from 'react';
import { Button, Navbar, NavbarBrand, NavbarNav, NavbarToggler, Collapse, NavItem, Footer, NavLink, Mask, Row, Col, Fa, View, Container, Modal, ModalBody, ModalHeader, ModalFooter} from 'mdbreact';
import { BrowserRouter as Router } from 'react-router-dom';
import './index.css';
import './static/css/palmpay.css';
//import './css/csslider.css';
import Routes from './Routes';
class App extends React.Component {
constructor(props) {
super(props),
this.state = {
collapse : false,
modal2: false
}
this.toggle2 = this.toggle2.bind(this);
this.onClick = this.onClick.bind(this);
this.handleNavbarClick = this.handleNavbarClick.bind(this);
}
toggle2() {
this.setState({
modal2: !this.state.modal2
});
}
onClick(){
this.setState({
collapse: !this.state.collapse,
});
}
handleNavbarClick(){
this.setState({
collapse: false
});
}
render(){
const collapsed = this.state.collapsed;
const overlay = <div id="sidenav-overlay" style={{backgroundColor: 'transparent'}} onClick={this.handleNavbarClick}/>
return (
<Router>
<div id="apppage" className="flyout">
<Navbar dark expand="md" fixed="top" id="mainNav" scrolling>
<Container>
<NavbarBrand>
<img className="logo1" src="./img/logo.png" width="100%"></img>
<img className="logo2" src="./img/logo54.png" width="100%" style={{display: 'none'}}></img>
</NavbarBrand>
<NavbarToggler onClick = { this.onClick } />
<Collapse isOpen = {this.state.collapse} navbar>
<NavbarNav right>
<NavItem>
<NavLink to="#services"><span id="nav_lang1">Services</span></NavLink>
</NavItem>
<NavItem>
<NavLink to="#about"><span id="nav_lang2">About</span></NavLink>
</NavItem>
<NavItem>
<NavLink to="#testimonies"><span id="nav_lang3">Testimonies</span></NavLink>
</NavItem>
<NavItem>
<NavLink to="#!" onClick={this.toggle2}><span id="nav_lang4">Downloads</span></NavLink>
</NavItem>
<NavItem>
</NavItem>
</NavbarNav>
<ul className="nav navbar-nav navbar-right fix-li-menu" multilinks-noscroll="true" id="langs"></ul>
</Collapse>
</Container>
</Navbar>
{ collapsed && overlay}
<Routes />
<Footer className="footer text-center">
<div className="containerfix">
<Row className="vertical-align">
<Col md="4">
<img src="./img/footerlogo.png"></img>
</Col>
<Col md="4">
<ul className="list-inline social-buttons">
<li className="list-inline-item">
<a target="_blank" href="https://t.me/Agorise">
<i className="fa fa-telegram"></i>
</a>
</li>
<li className="list-inline-item">
<a target="_blank" href="https://twitter.com/Agorise_world">
<i className="fa fa-twitter"></i>
</a>
</li>
<li className="list-inline-item">
<a target="_blank" href="https://youtube.com/Agorise">
<i className="fa fa-youtube"></i>
</a>
</li>
<li className="list-inline-item">
<a target="_blank" href="https://d.tube/c/agorise">
<img src="./img/dtube.png"></img>
</a>
</li>
<li className="list-inline-item">
<a target="_blank" href="https://steemit.com/@Agorise">
<img src="./img/steemit.png"></img>
</a>
</li>
</ul>
</Col>
<Col md="4">
<p className="mb-0">
<span id="ft_lang1">FASTER AND SAFER THAN CASH</span>
</p>
</Col>
</Row>
</div>
</Footer>
<div className="copyright py-3 text-center text-white" style={{fontSize:'0.8em'}}>
<div className="containerfix">
<div className="row vertical-align">
<div className="col-md-12">
<p>
<span id="cp_lang1">
This website is not intended as legal or financial advice, is not a guarantee of anything and we do not collect any info about you whatsoever. PalmPay is a Point Of Sale product by Agorise, Ltd. For technical details, chat anytime 24/7 with the Agorise community on Telegram at:
<a target="_blank" href="http://t.me/Agorise"> http://t.me/Agorise</a>
</span>
</p>
</div>
</div>
<div className="row vertical-align">
<div className="col-md-4"></div>
<div className="col-md-4">
<small>&copy; Copyright {(new Date().getFullYear())} <a target="_blank" href="http://agorise.world/"> Agorise Ltd. </a></small>
</div>
</div>
</div>
</div>
<Modal isOpen={this.state.modal2} toggle={this.toggle2}>
<ModalHeader toggle={this.toggle2}><span id="mdl_lang1">Downloads</span></ModalHeader>
<ModalBody className="text-center">
<a target="_blank" href="https://play.google.com/store/apps/details?id=cy.agorise.palmpay"><img className="logo1" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" height="60" width="auto"></img></a>
</ModalBody>
</Modal>
</div>
</Router>
);
}
}
export default App;

View file

@ -1,25 +0,0 @@
import React from "react";
import { Route, Switch } from "react-router-dom";
// FREE
import HomePage from "./pages/HomePage";
import MarketingPage from "./pages/MarketingPage";
class Routes extends React.Component {
render() {
return (
<Switch>
{/* FREE */}
<Route exact path="/" component={HomePage} />
<Route exact path="/marketing" component={MarketingPage} />
<Route
render={function() {
return <h1>Not Found</h1>;
}}
/>
</Switch>
);
}
}
export default Routes;

View file

@ -1,116 +0,0 @@
import {
Navbar,
NavbarNav,
NavbarToggler,
Collapse,
NavItem,
NavLink,
Container
} from "mdbreact";
import { Link } from "react-scroll";
import React from "react";
class HomeNav extends React.Component {
constructor(props) {
super(props);
this.state = { showmenu: true };
this.state = {
collapse: false
};
this.onClick = this.onClick.bind(this);
this.handleNavbarClick = this.handleNavbarClick.bind(this);
}
onClick() {
this.setState({
collapse: !this.state.collapse
});
}
handleNavbarClick() {
this.setState({
collapse: false
});
}
render() {
return (
<Navbar dark expand="md" fixed="top" id="mainNav" scrolling>
<Container className="menuc" hidden={this.state.showmenu}>
<Link
activeClass="active"
className="navbar-brand"
to="home"
href="/"
spy={true}
smooth={true}
offset={0}
duration={500}
onSetActive={this.handleSetActive}>
<img alt="" className="logo1" src="./img/logo.png" width="100%" />
<img
alt=""
className="logo2"
src="./img/logo54.png"
width="100%"
style={{ display: "none" }}
/>
</Link>
<NavbarToggler onClick={this.onClick} />
<Collapse isOpen={this.state.collapse} navbar>
<NavbarNav right>
<NavItem>
<Link
activeClass="active"
className="nav-link"
to="services"
spy={true}
smooth={true}
offset={0}
duration={500}
onSetActive={this.handleSetActive}>
<span id="nav_lang1">Services</span>
</Link>
</NavItem>
<NavItem>
<Link
activeClass="active"
className="nav-link"
to="about"
spy={true}
smooth={true}
offset={0}
duration={500}
onSetActive={this.handleSetActive}>
<span id="nav_lang2">About</span>
</Link>
</NavItem>
<NavItem>
<Link
activeClass="active"
className="nav-link"
href="#testimonies"
to="testimonies"
spy={true}
smooth={true}
offset={0}
duration={500}
onSetActive={this.handleSetActive}>
<span id="nav_lang3">Testimonies</span>
</Link>
</NavItem>
<NavItem>
<NavLink to="#!" onClick={this.props.toggle2}>
<span id="nav_lang4">Downloads</span>
</NavLink>
</NavItem>
</NavbarNav>
</Collapse>
</Container>
</Navbar>
);
}
}
export default HomeNav;

View file

@ -1,14 +0,0 @@
import React from "react";
import ReactDOM from "react-dom";
import "font-awesome/css/font-awesome.min.css";
import "bootstrap/dist/css/bootstrap.min.css";
import "mdbreact/dist/css/mdb.css";
import "./index.css";
import App from "./App";
import registerServiceWorker from "./registerServiceWorker";
ReactDOM.render(<App />, document.getElementById("root"));
registerServiceWorker();

View file

@ -1,7 +0,0 @@
#apppage .vmain {
background-image: url("../static/img/header-bg.jpg");
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
height: 100vh;
}

View file

@ -1,612 +0,0 @@
import React from "react";
import {
Carousel,
CarouselInner,
CarouselItem,
CarouselIndicators,
CarouselIndicator,
Mask,
Row,
Col,
Button,
View,
Container
} from "mdbreact";
import "./HomePage.css";
class HomePage extends React.Component {
constructor(props) {
super(props);
this.next = this.next.bind(this);
this.prev = this.prev.bind(this);
this.state = {
activeItem: 1,
maxLength: 6
};
}
next() {
let nextItem = this.state.activeItem + 1;
if (nextItem > this.state.maxLength) {
this.setState({ activeItem: 1 });
} else {
this.setState({ activeItem: nextItem });
}
}
prev() {
let prevItem = this.state.activeItem - 1;
if (prevItem < 1) {
this.setState({ activeItem: this.state.maxLength });
} else {
this.setState({ activeItem: prevItem });
}
}
goToIndex(item) {
if (this.state.activeItem !== item) {
this.setState({
activeItem: item
});
}
}
render() {
const { activeItem } = this.state;
return (
<span>
<View className="vmain">
<Mask className="d-flex justify-content-center align-items-center gradient">
<Container className="px-md-3 px-sm-0">
<Row>
<Col lg="10" className="mx-auto white-text text-center">
<h1 className="text-uppercase">
<strong className="important">
<span id="header_lang1">
Accept any Digital Currency at Zero Cost
</span>
</strong>
</h1>
<hr className="hr-light my-4 w-75" />
</Col>
<Col lg="8" className="mx-auto white-text text-center">
<p className="subtext-header mt-2 mb-4 text-faded">
<span id="header_lang2">
Cryptocurrencies bring Global Sales; Bitcoin Cash, bitUSD,
bitEUR, bitRUB, bitXCD, bitSilver, Steem, Litecoin and
more
</span>
</p>
<Button
href="#services"
className="btn-lg btn-primary"
rounded>
<span id="header_lang3">Tell me more</span>
</Button>
</Col>
</Row>
</Container>
</Mask>
</View>
<section data-spy="scroll" data-target="#mainNav" id="services">
<div className="containerfix">
<div className="row">
<div className="col-lg-12 text-center">
<h2 className="section-heading">
<span id="sr_lang1">
100% FREE Crypto Point-Of-Sale Software for any Business
</span>
</h2>
<hr className="my-4" />
</div>
</div>
</div>
<div className="containerfix">
<div className="row">
<div className="col-lg-3 col-md-6 text-center">
<div className="service-box mt-5 mx-auto">
<i className="fa fa-4x text-primary mb-3 sr-icons">
<img alt="Retail" src="./img/4.png" />
</i>
<h3 className="mb-3">
<span id="sr_lang2">Retail</span>
</h3>
</div>
</div>
<div className="col-lg-3 col-md-6 text-center">
<div className="service-box mt-5 mx-auto">
<i className="fa fa-4x text-primary mb-3 sr-icons">
<img alt="Cafe/Bars" src="./img/6.png" />
</i>
<h3 className="mb-3">
<span id="sr_lang3">Cafe/Bars</span>
</h3>
</div>
</div>
<div className="col-lg-3 col-md-6 text-center">
<div className="service-box mt-5 mx-auto">
<i className="fa fa-4x text-primary mb-3 sr-icons">
<img alt="Restaurants" src="./img/3.png" />
</i>
<h3 className="mb-3">
<span id="sr_lang4">Restaurants</span>
</h3>
</div>
</div>
<div className="col-lg-3 col-md-6 text-center">
<div className="service-box mt-5 mx-auto">
<i className="fa fa-4x text-primary mb-3 sr-icons">
<img alt="Gas Stations" src="./img/7.png" />
</i>
<h3 className="mb-3">
<span id="sr_lang5">Gas Stations</span>
</h3>
</div>
</div>
<div className="col-lg-3 col-md-6 text-center">
<div className="service-box mt-5 mx-auto">
<i className="fa fa-4x text-primary mb-3 sr-icons">
<img alt="Bill-Pay Counters" src="./img/2.png" />
</i>
<h3 className="mb-3">
<span id="sr_lang6">Bill-Pay Counters</span>
</h3>
</div>
</div>
<div className="col-lg-3 col-md-6 text-center">
<div className="service-box mt-5 mx-auto">
<i className="fa fa-4x text-primary mb-3 sr-icons">
<img alt="Grocery" src="./img/1.png" />
</i>
<h3 className="mb-3">
<span id="sr_lang7">Grocery</span>
</h3>
</div>
</div>
<div className="col-lg-3 col-md-6 text-center">
<div className="service-box mt-5 mx-auto">
<i className="fa fa-4x text-primary mb-3 sr-icons">
<img alt="Delivery Drivers" src="./img/9.png" />
</i>
<h3 className="mb-3">
<span id="sr_lang8">Delivery Drivers</span>
</h3>
</div>
</div>
<div className="col-lg-3 col-md-6 text-center">
<div className="service-box mt-5 mx-auto">
<i className="fa fa-4x text-primary mb-3 sr-icons">
<img alt="Phone Orders" src="./img/8.png" />
</i>
<h3 className="mb-3">
<span id="sr_lang9">Phone Orders</span>
</h3>
</div>
</div>
</div>
</div>
</section>
<section className="about bg-secondary" id="about">
<div className="container">
<div className="row align-items-center">
<div className="col-lg-6 order-lg-2">
<div className="p-5">
<img alt="" className="img-fluid" src="./img/ab1.png" />
</div>
</div>
<div className="col-lg-6 order-lg-1">
<div className="p-5">
<h2 className="about-text">
<span>
<span id="ab_lang1">
Integrates seamlessly with Existing Systems
</span>
</span>
</h2>
<p className="about-text">
<span>
<span id="ab_lang2">
PalmPay was built from the ground up to be Future-Proof.
Business owners no longer need to stay savvy on the
latest technologies. Blockchains and currencies come and
go, but PalmPay supports them and offers them to your
customers based upon their popularity, automatically.
</span>
</span>
<br />
<span>
<span id="ab_lang3">
Zero cost. Zero setup fee. Zero transaction fee. Zero
monthly fee. Your Customers pay the tiny 0.5%
transaction fee to pay with their favorite digital
currency.
</span>
</span>
<br />
<span>
<span id="ab_lang4">
eReceipts, and advanced Export features enable
simplified accounting and Tax reporting. Your Customers
also receive a beautiful eReceipt directly to their
smartphone after their payment.
</span>
</span>
<br />
<span>
<span id="ab_lang5">
Faster and Safer than Cash. Customer transactions take 3
seconds or less. Lets see cash or card Customers get
through that fast!
</span>
</span>
</p>
</div>
</div>
</div>
<div className="row align-items-center">
<div className="col-lg-6">
<div className="p-5">
<img alt="" className="img-fluid" src="./img/ab2.png" />
</div>
</div>
<div className="col-lg-6">
<div className="p-5">
<h2 className="about-text">
<span>
<span id="ab_lang6">
Mobile Payments are quicker than ever. Process your
Customer orders instantly
</span>
</span>
</h2>
<p className="about-text">
<span>
<span id="ab_lang7">
Whether you are delivering packages requiring payment,
helping hundreds of Customers to speed through the
checkout line, or just serving up the bill in a
high-paced restaurant, PalmPay handles them all
instantly.
</span>
</span>
<br />
<span>
<span id="ab_lang8">
No more credit card expenses. No more cash robberies.
Maximum Security and Zero Risk with no chance of
ID-Theft or Card Fraud. PalmPay uses the Bitshares
blockchain to instantly secure any transaction amount
and has done so for over 3 years now, recently exceeding
3300 transactions per second.
</span>
</span>
<br />
<span>
<span id="ab_lang9">
Hacking a blockchain is impossible since it uses
Distributed Ledger Technology, instantly ensuring that
each transaction is verified by hundreds of computers
around the world.
</span>
</span>
<br />
</p>
</div>
</div>
</div>
<div className="row align-items-center">
<div className="col-lg-6 order-lg-2">
<div className="p-5">
<img alt="" className="img-fluid" src="./img/ab3.png" />
</div>
</div>
<div className="col-lg-6 order-lg-1">
<div className="p-5">
<h2 className="about-text">
<span>
<span id="ab_lang10">
Cryptocurrency volatility is a thing of the past
</span>
</span>
</h2>
<p className="about-text">
<span>
<span id="ab_lang11">
PalmPay instantly converts Crypto into your stable,
local currency in digital form, such as bitEUR, bitUSD,
bitJPY, bitKRW, bitRUB or even bitGold and bitSilver.
</span>
</span>
<br />
<span>
<span id="ab_lang12">
These Smartcoins are closely pegged 1:1 to their
underlying asset so that you never have to worry about
paying your bills with Crypto.
</span>
</span>
<br />
<span>
<span id="ab_lang13">
For example, the Canadian merchant who just received
some volatile Dogecoin, can receive it as price-stable
bitCAD. One currency is instantly morphed into another,
of the Merchants choice. PalmPay handles all of this in
the background, allowing the customer to pay with
whatever Crypto they prefer.
</span>
</span>
<br />
<span>
<span id="ab_lang14">
This stability is the foundation of the Blockchain My
City (<a href="docs/Blockchain_My_City_BMC.pdf">BMC</a>)
Initiative. PalmPay includes the ability to
automatically pay every Ambassador and enrolled
Government from the 0.5% that is collected from
customers.
</span>
</span>
</p>
</div>
</div>
</div>
<div className="row align-items-center">
<div className="col-lg-6">
<div className="p-5">
<img alt="" className="img-fluid" src="./img/ab4.png" />
</div>
</div>
<div className="col-lg-6">
<div className="p-5">
<h2 className="about-text">
<span>
<span id="ab_lang15">
Unlimited, free Technical Support from PalmPay
Ambassadors
</span>
</span>
</h2>
<p className="about-text">
<span>
<span id="ab_lang16">
Free? Yes, totally free. PalmPay Ambassadors are paid
automatically, every 3 seconds, via the Customer
transaction fee mentioned above. So, if you ever have
questions (in any of the 44 supported languages), just
contact your local PalmPay Ambassador directly, or ask
for one on Telegram at
<a
target="_blank"
rel="noopener noreferrer"
href="http://t.me/Agorise">
http://t.me/Agorise
</a>
</span>
</span>
<br />
<span>
<span id="ab_lang17">
As long as your business has WiFi, and an Android tablet
or smartphone (for the free PalmPay software), thats
literally all you need. No other hardware is needed. If
desired, dont forget to ask your PalmPay Ambassador for
free window decals, stickers, flyers and promotional
materials.
</span>
</span>
</p>
</div>
</div>
</div>
<div className="row align-items-center">
<div className="col-lg-6 order-lg-2">
<div className="p-5">
<img alt="" className="img-fluid" src="./img/ab5.png" />
</div>
</div>
<div className="col-lg-6 order-lg-1">
<div className="p-5">
<h2 className="display-5 about-text">
<span>
<span id="ab_lang18">
Access your accounts anytime, from anywhere in the world
</span>
</span>
</h2>
<p className="about-text">
<span>
<span id="ab_lang19">
Monitor the transactions at one or more of your
Businesses in real-time. Win, Mac, or Linux.
</span>
</span>
<br />
<span>
<span id="ab_lang20">
The Bitshares decentralized exchange (DEX) provides the
platform which PalmPay utilizes. Using their DEX, you
can freely move money between accounts, get a Loan, go
public, pay bills, Trade and even invest in other
assets.
</span>
</span>
<br />
<span>
<span id="ab_lang21">
Theyre the bank that never closes, never needs a
bailout, and can never steal your money. Bitshares is
not a company. Its a distributed network of computers
all running the same software providing maximum uptime.
So, stop trusting humans with your money and become your
own bank!
</span>
</span>
</p>
</div>
</div>
</div>
</div>
</section>
<section className="testimonials text-center" id="testimonies">
<div className="container">
<Row>
<Col lg="6">
<Carousel
className="testimonialc"
activeItem={this.state.activeItem}
next={this.next}>
<CarouselIndicators>
<CarouselIndicator
active={activeItem === 1 ? true : false}
onClick={() => {
this.goToIndex(1);
}}
/>
<CarouselIndicator
active={activeItem === 2 ? true : false}
onClick={() => {
this.goToIndex(2);
}}
/>
<CarouselIndicator
active={activeItem === 3 ? true : false}
onClick={() => {
this.goToIndex(3);
}}
/>
<CarouselIndicator
active={activeItem === 4 ? true : false}
onClick={() => {
this.goToIndex(4);
}}
/>
<CarouselIndicator
active={activeItem === 5 ? true : false}
onClick={() => {
this.goToIndex(5);
}}
/>
<CarouselIndicator
active={activeItem === 6 ? true : false}
onClick={() => {
this.goToIndex(6);
}}
/>
</CarouselIndicators>
<CarouselInner>
<Row>
<CarouselItem itemId="1">
<Col mb-lg="0" mx="auto" mb="4">
<i className="fa fa-user-circle-o" />
<h5>Erik Y. &#9733;&#9733;&#9733;&#9733;&#9733;</h5>
<div className="font-weight-light mb-3">
"This is awesome! We have been looking for a way to
attract new customers and this is it."
</div>
</Col>
</CarouselItem>
<CarouselItem itemId="2">
<Col mb-lg="0" mx="auto" mb="4">
<i className="fa fa-user-circle-o" />
<h5>Alexey T. &#9733;&#9733;&#9733;&#9733;&#9733;</h5>
<p className="font-weight-light mb-0">
Outstanding!!
</p>
</Col>
</CarouselItem>
<CarouselItem itemId="3">
<Col mb-lg="0" mx="auto" mb="4">
<i className="fa fa-user-circle-o" />
<h5>Nikos C. &#9733;&#9733;&#9733;&#9733;&#9733;</h5>
<p className="font-weight-light mb-0">
Το Palmpay είναι ένα άλλο μονοπάτι για τα κέρδη.
Απλα ΔΟΚΙΜΑΣΕ το!
</p>
</Col>
</CarouselItem>
<CarouselItem itemId="4">
<Col mb-lg="0" mx="auto" mb="4">
<i className="fa fa-user-circle-o" />
<h5>Nadya L. &#9733;&#9733;&#9733;&#9733;&#9734;</h5>
<p className="font-weight-light mb-0">
My husband suggested this and I am so glad to be
earning crypto now!
</p>
</Col>
</CarouselItem>
<CarouselItem itemId="5">
<Col mb-lg="0" mx="auto" mb="4">
<i className="fa fa-user-circle-o" />
<h5>
Jennifer M. &#9733;&#9733;&#9733;&#9733;&#9733;
</h5>
<p className="font-weight-light mb-0">
Please tell me I can close my bank account now.
This is amazing, thank you Agorise!
</p>
</Col>
</CarouselItem>
<CarouselItem itemId="6">
<Col mb-lg="0" mx="auto" mb="4">
<i className="fa fa-user-circle-o" />
<h5>Jose M. &#9733;&#9733;&#9733;&#9733;&#9733;</h5>
<p className="font-weight-light mb-0">
Nuestros clientes de Coin Shop se han duplicado
gracias a BitSilver y Palmpay. A++
</p>
</Col>
</CarouselItem>
</Row>
</CarouselInner>
</Carousel>
</Col>
<Col lg="6" className="mx-auto white-text text-center">
<div className="embed-responsive embed-responsive-16by9">
<iframe
className="embed-responsive-item"
title="Video"
src="https://www.youtube.com/embed/X6X_zGIz27w"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen
/>
</div>
</Col>
</Row>
</div>
</section>
</span>
);
}
}
export default HomePage;

View file

@ -1,395 +0,0 @@
import React from "react";
import { Button, Collapse } from "mdbreact";
class MarketingPage extends React.Component {
constructor(props) {
super(props);
this.toggle = this.toggle.bind(this);
this.onClick1 = this.onClick1.bind(this);
this.onClick2 = this.onClick2.bind(this);
this.onClick3 = this.onClick3.bind(this);
this.onClick4 = this.onClick4.bind(this);
this.state = {
collapse: false,
accordion: false
};
}
toggle() {
this.setState({ collapse: !this.state.collapse });
}
onClick1() {
let state = "";
if (this.state.accordion !== 1) {
state = 1;
} else {
state = false;
}
this.setState({
accordion: state
});
}
onClick2() {
let state = "";
if (this.state.accordion !== 2) {
state = 2;
} else {
state = false;
}
this.setState({
accordion: state
});
}
onClick3() {
let state = "";
if (this.state.accordion !== 3) {
state = 3;
} else {
state = false;
}
this.setState({
accordion: state
});
}
onClick4() {
let state = "";
if (this.state.accordion !== 4) {
state = 4;
} else {
state = false;
}
this.setState({
accordion: state
});
}
render() {
return (
<div id="maincontent">
<section data-spy="scroll" data-target="#mainNav" id="services">
<div className="containerfix">
<div className="row">
<div className="col-md-10 mx-md-auto">
<div>
<div>
<Button
block
color="primary"
onClick={this.onClick1}
style={{ marginBottom: "1rem" }}>
Presentations
</Button>
</div>
<Collapse isOpen={this.state.accordion === 1}>
<div class="list-group">
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/presentation/d/1oYQxlKIzNHb-F07PJ04xsK0jIJcduIzc-4HMpbqAw0o/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Slides (ES) - Google Slides (for Meetups and
Workshops etc) in Spanish
</h5>
</div>
<p class="mb-1">
https://docs.google.com/presentation/d/1oYQxlKIzNHb-F07PJ04xsK0jIJcduIzc-4HMpbqAw0o/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/presentation/d/1HgYeEQ0NUeHesnX1Xy4OUi9Nng4P9O4-yH_7fWnwF6Q/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Slides (EN) - Here is a nice powerpoint (Google
Slides actually) that you can copy and edit to your
liking for PalmPay Meetups, Workshops, etc.
</h5>
</div>
<p class="mb-1">
https://docs.google.com/presentation/d/1HgYeEQ0NUeHesnX1Xy4OUi9Nng4P9O4-yH_7fWnwF6Q/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/spreadsheets/d/1um5BJiI4infLVBFzsNFG4aV_hGuVAluWztI0UIT0oL4/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
FAQ (EN, ES, GR, and RU) - These are the most common
questions that people ask about PalmPay
</h5>
</div>
<p class="mb-1">
https://docs.google.com/spreadsheets/d/1um5BJiI4infLVBFzsNFG4aV_hGuVAluWztI0UIT0oL4/edit?usp=sharing
</p>
</a>
</div>
</Collapse>
<div>
<Button
block
color="primary"
onClick={this.onClick2}
style={{ marginBottom: "1rem" }}>
Flyers
</Button>
</div>
<Collapse isOpen={this.state.accordion === 2}>
<div class="list-group">
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/document/d/1JwFRD3mszf9RoTlthp9lkfQdbGmdrWwGDcBP3yXLrpM/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Affordable Flyers (EN) - Single-page flyers in
English
</h5>
</div>
<p class="mb-1">
https://docs.google.com/document/d/1JwFRD3mszf9RoTlthp9lkfQdbGmdrWwGDcBP3yXLrpM/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/document/d/11FMi5_iMWOUDHKnoWWEn4jyzwleWkdLvvPr3KrhmJHA/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Affordable Flyers (ES) - Single-page flyers in
Spanish
</h5>
</div>
<p class="mb-1">
https://docs.google.com/document/d/11FMi5_iMWOUDHKnoWWEn4jyzwleWkdLvvPr3KrhmJHA/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/document/d/1Qk5sX-KmwrCrDWsDxcLpe1xXFVWhOUP4VykURXBHRCk/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Affordable Flyers (KO) - Single-page flyers in
Korean
</h5>
</div>
<p class="mb-1">
https://docs.google.com/document/d/1Qk5sX-KmwrCrDWsDxcLpe1xXFVWhOUP4VykURXBHRCk/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/document/d/13ObHTeIOY6KrAH4nOhNGiCITOArSxTATCJ0oCy0E-kc/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Affordable Flyers (NL) - Single-page flyers in Dutch
</h5>
</div>
<p class="mb-1">
https://docs.google.com/document/d/13ObHTeIOY6KrAH4nOhNGiCITOArSxTATCJ0oCy0E-kc/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/document/d/1YHZJTXZSI_OWw633gVVHc3TBQphHxAKP2v9YKRnhHy8/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Affordable Flyers (RO) - Single-page flyers in
Romanian
</h5>
</div>
<p class="mb-1">
https://docs.google.com/document/d/1YHZJTXZSI_OWw633gVVHc3TBQphHxAKP2v9YKRnhHy8/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/document/d/1hdXKoZvYeFJ8FDRYIT7kdNxvB84G-yVe6_1wZh2uuFo/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Affordable Flyers (VI) - Single-page flyers in
Vietnamese
</h5>
</div>
<p class="mb-1">
https://docs.google.com/document/d/1hdXKoZvYeFJ8FDRYIT7kdNxvB84G-yVe6_1wZh2uuFo/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/drawings/d/10mf7scN4ldCoXy8alz7UCkzt7N3tTQwJWS81zXfNMxs/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Tri-Fold Flyers (EN, back) - These English flyers
explain Bitshares and PalmPay, great for events and
meetups, etc.
</h5>
</div>
<p class="mb-1">
https://docs.google.com/drawings/d/10mf7scN4ldCoXy8alz7UCkzt7N3tTQwJWS81zXfNMxs/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/drawings/d/1T3mDxaa7U0IOaD251yNwNiqI_9Fier7QgtnBm3hCzyI/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Tri-Fold Flyers (EN, front) - These English flyers
explain Bitshares and PalmPay, great for events and
meetups, etc.
</h5>
</div>
<p class="mb-1">
https://docs.google.com/drawings/d/1T3mDxaa7U0IOaD251yNwNiqI_9Fier7QgtnBm3hCzyI/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/drawings/d/1vRLtzCuEOQ04T4iofOxU3pAtZ3GSmQwJXRISd-6NMxs/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Tri-Fold Flyers (GR, back) - These Greek flyers
explain Bitshares and PalmPay, great for events and
meetups, etc.
</h5>
</div>
<p class="mb-1">
https://docs.google.com/drawings/d/1vRLtzCuEOQ04T4iofOxU3pAtZ3GSmQwJXRISd-6NMxs/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/drawings/d/1_aRidERnsw7080Hqe9CjvtvmuZv3MQWTX30G9exMEa0/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Tri-Fold Flyers (GR, front) - These Greek flyers
explain Bitshares and PalmPay, great for events and
meetups, etc.
</h5>
</div>
<p class="mb-1">
https://docs.google.com/drawings/d/1_aRidERnsw7080Hqe9CjvtvmuZv3MQWTX30G9exMEa0/edit?usp=sharing
</p>
</a>
</div>
</Collapse>
<div>
<Button
block
color="primary"
onClick={this.onClick3}
style={{ marginBottom: "1rem" }}>
Business Cards
</Button>
</div>
<Collapse isOpen={this.state.accordion === 3}>
<div class="list-group">
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/drawings/d/1zRdI_8tPXOoHi7SuM4RCkUezGQVzfPyMp3hUweYEL1s/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Front - Please do not edit the front of the business
cards
</h5>
</div>
<p class="mb-1">
https://docs.google.com/drawings/d/1zRdI_8tPXOoHi7SuM4RCkUezGQVzfPyMp3hUweYEL1s/edit?usp=sharing
</p>
</a>
<a
target="_blank"
rel="noopener noreferrer"
href="https://docs.google.com/drawings/d/1dwr31i0Wgh2j9737JyH4OTjix4w31J3mdBA9iCNZ6zs/edit?usp=sharing"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Back - Feel free to edit the back of these cards all
you like
</h5>
</div>
<p class="mb-1">
https://docs.google.com/drawings/d/1dwr31i0Wgh2j9737JyH4OTjix4w31J3mdBA9iCNZ6zs/edit?usp=sharing
</p>
</a>
</div>
</Collapse>
<div>
<Button
block
color="primary"
onClick={this.onClick4}
style={{ marginBottom: "1rem" }}>
Promotional Displays
</Button>
</div>
<Collapse isOpen={this.state.accordion === 4}>
<div class="list-group">
<a
target="_blank"
rel="noopener noreferrer"
href="https://keybase.io/team/Agorise"
class="list-group-item list-group-item-action flex-column align-items-start">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">
Logos, Advertising images, Stickers and Merchandise,
etc. (in the /PalmPay folder)
</h5>
</div>
<p class="mb-1">https://keybase.io/team/Agorise</p>
</a>
</div>
</Collapse>
</div>
</div>
</div>
</div>
</section>
</div>
);
}
}
export default MarketingPage;

View file

@ -1,117 +0,0 @@
// In production, we register a service worker to serve assets from local cache.
// This lets the app load faster on subsequent visits in production, and gives
// it offline capabilities. However, it also means that developers (and users)
// will only see deployed updates on the "N+1" visit to a page, since previously
// cached resources are updated in the background.
// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.
// This link also includes instructions on opting out of this behavior.
const isLocalhost = Boolean(
window.location.hostname === 'localhost' ||
// [::1] is the IPv6 localhost address.
window.location.hostname === '[::1]' ||
// 127.0.0.1/8 is considered localhost for IPv4.
window.location.hostname.match(
/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
)
);
export default function register() {
if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
// The URL constructor is available in all browsers that support SW.
const publicUrl = new URL(process.env.PUBLIC_URL, window.location);
if (publicUrl.origin !== window.location.origin) {
// Our service worker won't work if PUBLIC_URL is on a different origin
// from what our page is served on. This might happen if a CDN is used to
// serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374
return;
}
window.addEventListener('load', () => {
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
if (isLocalhost) {
// This is running on localhost. Lets check if a service worker still exists or not.
checkValidServiceWorker(swUrl);
// Add some additional logging to localhost, pointing developers to the
// service worker/PWA documentation.
navigator.serviceWorker.ready.then(() => {
console.log(
'This web app is being served cache-first by a service ' +
'worker. To learn more, visit https://goo.gl/SC7cgQ'
);
});
} else {
// Is not local host. Just register service worker
registerValidSW(swUrl);
}
});
}
}
function registerValidSW(swUrl) {
navigator.serviceWorker
.register(swUrl)
.then(registration => {
registration.onupdatefound = () => {
const installingWorker = registration.installing;
installingWorker.onstatechange = () => {
if (installingWorker.state === 'installed') {
if (navigator.serviceWorker.controller) {
// At this point, the old content will have been purged and
// the fresh content will have been added to the cache.
// It's the perfect time to display a "New content is
// available; please refresh." message in your web app.
console.log('New content is available; please refresh.');
} else {
// At this point, everything has been precached.
// It's the perfect time to display a
// "Content is cached for offline use." message.
console.log('Content is cached for offline use.');
}
}
};
};
})
.catch(error => {
console.error('Error during service worker registration:', error);
});
}
function checkValidServiceWorker(swUrl) {
// Check if the service worker can be found. If it can't reload the page.
fetch(swUrl)
.then(response => {
// Ensure service worker exists, and that we really are getting a JS file.
if (
response.status === 404 ||
response.headers.get('content-type').indexOf('javascript') === -1
) {
// No service worker found. Probably a different app. Reload the page.
navigator.serviceWorker.ready.then(registration => {
registration.unregister().then(() => {
window.location.reload();
});
});
} else {
// Service worker found. Proceed as normal.
registerValidSW(swUrl);
}
})
.catch(() => {
console.log(
'No internet connection found. App is running in offline mode.'
);
});
}
export function unregister() {
if ('serviceWorker' in navigator) {
navigator.serviceWorker.ready.then(registration => {
registration.unregister();
});
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,67 +0,0 @@
{
"masterPicture": "public/img/PalmPay900.png",
"iconsPath": "/",
"design": {
"ios": {
"masterPicture": "public/img/PalmPay900white.png",
"pictureAspect": "backgroundAndMargin",
"backgroundColor": "#128f52",
"margin": "14%",
"assets": {
"ios6AndPriorIcons": true,
"ios7AndLaterIcons": true,
"precomposedIcons": false,
"declareOnlyDefaultIcon": true
},
"appName": "PalmPay"
},
"desktopBrowser": {},
"windows": {
"pictureAspect": "whiteSilhouette",
"backgroundColor": "#128f52",
"onConflict": "override",
"assets": {
"windows80Ie10Tile": true,
"windows10Ie11EdgeTiles": {
"small": true,
"medium": true,
"big": true,
"rectangle": true
}
},
"appName": "PalmPay"
},
"androidChrome": {
"pictureAspect": "shadow",
"themeColor": "#29b872",
"manifest": {
"name": "PalmPay",
"startUrl": "http://www.palmpay.io/",
"display": "standalone",
"orientation": "notSet",
"onConflict": "override",
"declared": true
},
"assets": {
"legacyIcon": true,
"lowResolutionIcons": true
}
},
"safariPinnedTab": {
"pictureAspect": "silhouette",
"themeColor": "#128f52"
}
},
"settings": {
"compression": 5,
"scalingAlgorithm": "Lanczos",
"errorOnImageTooSmall": false,
"readmeFile": false,
"htmlCodeFile": true,
"usePathAsIs": false
},
"versioning": {
"paramName": "v4",
"paramValue": "eE58gaorm5"
}
}

View file

@ -1,8 +0,0 @@
#!/bin/bash
echo "Generating SSL..."
cd /root/website
greenlock certonly --webroot-path public \
--acme-version draft-11 --acme-url https://acme-v02.api.letsencrypt.org/directory \
--agree-tos --email <EMAIL> --domains < --domains palmpay.io,www.palmpay.io <- example > \
--community-member \
--config-dir ./acme/etc

View file

@ -1,10 +0,0 @@
Generate your icons:
mkdir outputDir
real-favicon generate faviconDescription.json faviconData.json outputDir
Inject the HTML code in your pages:
real-favicon inject faviconData.json outputDir client/public/*.html
Check for updates (to be run from time to time, ideally by your continuous integration system):
real-favicon check-for-update --fail-on-update faviconData.json

View file

@ -1,19 +1,35 @@
{
"name": "palmpay",
"version": "0.0.0",
"name": "client",
"version": "1.0.0",
"private": true,
"scripts": {
"start:dev": "set PORT=3001 && node bin/wwwdev",
"start": "set PORT=3000 && node bin/www"
},
"dependencies": {
"compression": "^1.7.2",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"express": "~4.16.0",
"greenlock-express": "^2.1.6",
"http-errors": "~1.6.2",
"jade": "~1.11.0",
"morgan": "~1.9.0"
"@feathersjs/client": "^3.7.2",
"@material-ui/core": "^3.1.0",
"@material-ui/icons": "^3.0.1",
"bootstrap": "^4.1.3",
"country-list": "^1.1.0",
"font-awesome": "^4.7.0",
"mdbreact": "^4.7.1",
"react": "^16.5.2",
"react-dom": "^16.5.2",
"react-google-maps": "^9.4.5",
"react-intl": "^2.6.0",
"react-modal": "^3.5.1",
"react-ripples": "^1.1.2",
"react-scripts": "^1.1.5",
"react-scroll": "^1.7.10",
"recompose": "^0.30.0",
"sort-by": "^1.2.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom --watchAll",
"eject": "react-scripts eject"
},
"devDependencies": {
"babel-eslint": "^9.0.0",
"eslint": "^5.6.0",
"eslint-plugin-react": "^7.11.1"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -0,0 +1 @@
4239a644-5b44-3510-add9-eeedbf060fee

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="/mstile-70x70.png?v4=eE58gaorm5"/>
<square150x150logo src="/mstile-150x150.png?v4=eE58gaorm5"/>
<square310x310logo src="/mstile-310x310.png?v4=eE58gaorm5"/>
<wide310x150logo src="/mstile-310x150.png?v4=eE58gaorm5"/>
<TileColor>#128f52</TileColor>
</tile>
</msapplication>
</browserconfig>

View file

@ -1,229 +0,0 @@
.csslider {
position: relative;
margin-bottom: 22px;
}
.csslider > input {
display: none;
}
.csslider > input:nth-of-type(10):checked ~ ul li:first-of-type {
margin-left: -900%;
}
.csslider > input:nth-of-type(9):checked ~ ul li:first-of-type {
margin-left: -800%;
}
.csslider > input:nth-of-type(8):checked ~ ul li:first-of-type {
margin-left: -700%;
}
.csslider > input:nth-of-type(7):checked ~ ul li:first-of-type {
margin-left: -600%;
}
.csslider > input:nth-of-type(6):checked ~ ul li:first-of-type {
margin-left: -500%;
}
.csslider > input:nth-of-type(5):checked ~ ul li:first-of-type {
margin-left: -400%;
}
.csslider > input:nth-of-type(4):checked ~ ul li:first-of-type {
margin-left: -300%;
}
.csslider > input:nth-of-type(3):checked ~ ul li:first-of-type {
margin-left: -200%;
}
.csslider > input:nth-of-type(2):checked ~ ul li:first-of-type {
margin-left: -100%;
}
.csslider > input:nth-of-type(1):checked ~ ul li:first-of-type {
margin-left: 0%;
}
.csslider > ul {
position: relative;
width: 100%;
height: 300px;
z-index: 1;
font-size: 0;
line-height: 0;
margin: 0 auto;
padding: 0;
overflow: hidden;
white-space: nowrap;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.csslider > ul > li {
position: relative;
display: inline-block;
width: 100%;
height: 100%;
overflow: hidden;
font-size: 15px;
font-size: initial;
line-height: normal;
-moz-transition: all 0.5s cubic-bezier(0.4, 1.3, 0.65, 1);
-o-transition: all 0.5s ease-out;
-webkit-transition: all 0.5s cubic-bezier(0.4, 1.3, 0.65, 1);
transition: all 0.5s cubic-bezier(0.4, 1.3, 0.65, 1);
vertical-align: top;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
white-space: normal;
}
.csslider > ul > li.scrollable {
overflow-y: scroll;
}
.csslider > .navigation {
position: absolute;
bottom: -8px;
left: 50%;
z-index: 10;
margin-bottom: -10px;
font-size: 0;
line-height: 0;
text-align: center;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.csslider > .navigation > div {
margin-left: -100%;
}
.csslider > .navigation label {
position: relative;
display: inline-block;
cursor: pointer;
border-radius: 50%;
margin: 0 8px;
padding: 8px;
background: #3a3a3a;
}
.csslider > .navigation label:hover:after {
opacity: 1;
}
.csslider > .navigation label:after {
content: '';
position: absolute;
left: 50%;
top: 50%;
margin-left: -10px;
margin-top: -10px;
background: #71ad37;
border-radius: 50%;
padding: 10px;
opacity: 0;
}
.csslider > .arrows {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.csslider.inside .navigation {
bottom: 10px;
margin-bottom: 10px;
}
.csslider.inside .navigation label {
border: 1px solid #7e7e7e;
}
.csslider > input:nth-of-type(1):checked ~ .navigation label:nth-of-type(1):after,
.csslider > input:nth-of-type(2):checked ~ .navigation label:nth-of-type(2):after,
.csslider > input:nth-of-type(3):checked ~ .navigation label:nth-of-type(3):after,
.csslider > input:nth-of-type(4):checked ~ .navigation label:nth-of-type(4):after,
.csslider > input:nth-of-type(5):checked ~ .navigation label:nth-of-type(5):after,
.csslider > input:nth-of-type(6):checked ~ .navigation label:nth-of-type(6):after,
.csslider > input:nth-of-type(7):checked ~ .navigation label:nth-of-type(7):after,
.csslider > input:nth-of-type(8):checked ~ .navigation label:nth-of-type(8):after,
.csslider > input:nth-of-type(9):checked ~ .navigation label:nth-of-type(9):after,
.csslider > input:nth-of-type(10):checked ~ .navigation label:nth-of-type(10):after,
.csslider > input:nth-of-type(11):checked ~ .navigation label:nth-of-type(11):after {
opacity: 1;
}
.csslider > .arrows {
position: absolute;
left: -31px;
top: 50%;
width: 100%;
height: 26px;
padding: 0 31px;
z-index: 0;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
.csslider > .arrows label {
display: none;
position: absolute;
top: -50%;
padding: 13px;
box-shadow: inset 2px -2px 0 1px #3a3a3a;
cursor: pointer;
-moz-transition: box-shadow 0.15s, margin 0.15s;
-o-transition: box-shadow 0.15s, margin 0.15s;
-webkit-transition: box-shadow 0.15s, margin 0.15s;
transition: box-shadow 0.15s, margin 0.15s;
}
.csslider > .arrows label:hover {
box-shadow: inset 3px -3px 0 2px #71ad37;
margin: 0 0px;
}
.csslider > .arrows label:before {
content: '';
position: absolute;
top: -100%;
left: -100%;
height: 300%;
width: 300%;
}
.csslider.infinity > input:first-of-type:checked ~ .arrows label.goto-last,
.csslider > input:nth-of-type(1):checked ~ .arrows > label:nth-of-type(0),
.csslider > input:nth-of-type(2):checked ~ .arrows > label:nth-of-type(1),
.csslider > input:nth-of-type(3):checked ~ .arrows > label:nth-of-type(2),
.csslider > input:nth-of-type(4):checked ~ .arrows > label:nth-of-type(3),
.csslider > input:nth-of-type(5):checked ~ .arrows > label:nth-of-type(4),
.csslider > input:nth-of-type(6):checked ~ .arrows > label:nth-of-type(5),
.csslider > input:nth-of-type(7):checked ~ .arrows > label:nth-of-type(6),
.csslider > input:nth-of-type(8):checked ~ .arrows > label:nth-of-type(7),
.csslider > input:nth-of-type(9):checked ~ .arrows > label:nth-of-type(8),
.csslider > input:nth-of-type(10):checked ~ .arrows > label:nth-of-type(9),
.csslider > input:nth-of-type(11):checked ~ .arrows > label:nth-of-type(10) {
display: block;
left: 0;
right: auto;
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.csslider.infinity > input:last-of-type:checked ~ .arrows label.goto-first,
.csslider > input:nth-of-type(1):checked ~ .arrows > label:nth-of-type(2),
.csslider > input:nth-of-type(2):checked ~ .arrows > label:nth-of-type(3),
.csslider > input:nth-of-type(3):checked ~ .arrows > label:nth-of-type(4),
.csslider > input:nth-of-type(4):checked ~ .arrows > label:nth-of-type(5),
.csslider > input:nth-of-type(5):checked ~ .arrows > label:nth-of-type(6),
.csslider > input:nth-of-type(6):checked ~ .arrows > label:nth-of-type(7),
.csslider > input:nth-of-type(7):checked ~ .arrows > label:nth-of-type(8),
.csslider > input:nth-of-type(8):checked ~ .arrows > label:nth-of-type(9),
.csslider > input:nth-of-type(9):checked ~ .arrows > label:nth-of-type(10),
.csslider > input:nth-of-type(10):checked ~ .arrows > label:nth-of-type(11),
.csslider > input:nth-of-type(11):checked ~ .arrows > label:nth-of-type(12) {
display: block;
right: 0;
left: auto;
-moz-transform: rotate(225deg);
-ms-transform: rotate(225deg);
-o-transform: rotate(225deg);
-webkit-transform: rotate(225deg);
transform: rotate(225deg);
}
/*#region MODULES */
/*#endregion */

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,331 +0,0 @@
/*!
* PalmPay - v1.0.0 ()
* Copyright 2018 poqdavid
* Licensed under GPLv3 (http://palmpay.io/LICENSE.txt)
*/
@font-face {
font-family: "PFBeauSansPro";
src: local("PFBeauSansPro"), local("PFBeauSansPro"), url("../font/pfb/PFBeauSansPro-Reg.ttf");
font-weight: 400; }
@font-face {
font-family: "PFBeauSansPro";
src: local("PFBeauSansPro SeBold"), local("PFBeauSansPro-SeBold"), url("../font/pfb/PFBeauSansPro-SeBold.ttf");
font-weight: 600; }
@font-face {
font-family: "PFBeauSansPro";
src: local("PFBeauSansPro Bold"), local("PFBeauSansPro-Bold"), url("../font/pfb/PFBeauSansPro-Bold.ttf");
font-weight: 700; }
body,
html {
width: 100%;
height: 100%; }
body {
font-family: 'PFBeauSansPro', sans-serif !important; }
hr {
max-width: 50px;
border-width: 3px;
border-color: #128f52; }
hr.light {
border-color: #fff; }
a {
color: #128f52;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
transition: all 0.2s; }
a:hover {
color: #128f52; }
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: 'PFBeauSansPro', sans-serif !important; }
p {
font-family: 'PFBeauSansPro', sans-serif !important; }
.bg-primary {
background-color: #128f52 !important; }
.bg-secondary {
background-color: #F0F0F0 !important; }
.bg-dark {
background-color: #212529 !important; }
.text-faded {
color: rgba(255, 255, 255, 0.7); }
section {
padding: 8rem 0; }
.section-heading {
margin-top: 0; }
::-moz-selection {
color: #fff;
background: #212529;
text-shadow: none; }
::selection {
color: #fff;
background: #212529;
text-shadow: none; }
img::selection {
color: #fff;
background: transparent; }
img::-moz-selection {
color: #fff;
background: transparent; }
.containerfix {
width: 100%;
padding-right: 0px;
padding-left: 0px;
margin-right: auto;
margin-left: auto;
overflow: hidden; }
#mainNav {
border-bottom: 1px solid rgba(33, 37, 41, 0.1);
background-color: #128f52;
font-family: 'PFBeauSansPro', sans-serif !important;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
transition: all 0.2s;
padding-top: 25px;
padding-bottom: 25px; }
#mainNav .navbar-brand {
font-weight: 700;
text-transform: uppercase !important;
color: #128f52;
font-family: 'PFBeauSansPro', sans-serif !important; }
#mainNav .navbar-brand:focus, #mainNav .navbar-brand:hover {
color: #128f52; }
#mainNav .navbar-lang {
color: #fff;
background-color: #128f52;
padding: 0.5rem 1rem;
cursor: pointer; }
#mainNav .navbar-textsmall {
font-size: .7rem !important; }
#mainNav .expand_caret {
position: absolute !important;
-webkit-transition: 2s ease-in-out !important;
-moz-transition: 2s ease-in-out !important;
-o-transition: 2s ease-in-out !important;
transition: 2s ease-in-out !important; }
#mainNav .rlsui-selected-locale:hover.dropdown-toggle::after {
display: inline-block;
width: 0;
height: 0;
margin-left: .255em;
vertical-align: .255em;
content: "";
border-top: .3em solid;
border-right: .3em solid transparent;
border-bottom: 0;
border-left: .3em solid transparent;
-moz-transform: rotate(180deg) !important;
-o-transform: rotate(180deg) !important;
-ms-transform: rotate(180deg) !important;
transform: rotate(180deg) !important; }
#mainNav .navbar-nav > li.nav-item > a.nav-link,
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus {
font-size: .9rem;
font-weight: 700;
text-transform: uppercase !important;
color: #fff; }
#mainNav .navbar-nav > li.nav-item > a.nav-link:hover,
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus:hover {
color: #fec810;
cursor: pointer; }
#mainNav .navbar-nav > li.nav-item > a.nav-link.active,
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus.active {
color: #fec810 !important;
background-color: transparent; }
#mainNav .navbar-nav > li.nav-item > a.nav-link.active:hover,
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus.active:hover {
background-color: transparent; }
@media (max-width: 992px) {
#mainNav {
padding-top: 0px;
padding-bottom: 0px; }
#mainNav .navbar-brand .logo1 {
display: none !important; }
#mainNav .navbar-brand .logo2 {
display: inline !important; } }
@media (min-width: 992px) {
#mainNav {
border-color: transparent;
background-color: transparent; }
#mainNav .navbar-brand {
color: rgba(18, 143, 82, 0.7); }
#mainNav .navbar-brand:focus, #mainNav .navbar-brand:hover {
color: #fff; }
#mainNav .navbar-nav > li.nav-item > a.nav-link {
padding: 0.5rem 1rem; }
#mainNav .navbar-nav > li.nav-item > a.nav-link,
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus {
color: #fff; }
#mainNav .navbar-nav > li.nav-item > a.nav-link:hover,
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus:hover {
color: #fec810;
cursor: pointer; }
#mainNav.navbar-shrink {
border-bottom: 1px solid rgba(33, 37, 41, 0.1);
background-color: #128f52;
padding-top: 0px;
padding-bottom: 0px; }
#mainNav.navbar-shrink .navbar-brand {
color: #fff; }
#mainNav.navbar-shrink .navbar-brand:focus, #mainNav.navbar-shrink .navbar-brand:hover {
color: #fec810;
cursor: pointer; }
#mainNav.navbar-shrink .navbar-nav > li.nav-item > a.nav-link,
#mainNav.navbar-shrink .navbar-nav > li.nav-item > a.nav-link:focus {
color: #fff; }
#mainNav.navbar-shrink .navbar-nav > li.nav-item > a.nav-link:hover,
#mainNav.navbar-shrink .navbar-nav > li.nav-item > a.nav-link:focus:hover {
color: #fec810;
cursor: pointer; } }
header.masthead {
padding-top: 10rem;
padding-bottom: calc(10rem - 56px);
background-image: url("../img/header-bg.jpg");
background-position: center center;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover; }
header.masthead hr {
margin-top: 30px;
margin-bottom: 30px; }
.view h1 {
font-size: 2rem !important; }
.view p {
font-weight: 300 !important; }
@media (min-width: 768px) {
.view p {
font-size: 1.15rem !important; } }
@media (min-width: 992px) {
header.masthead {
height: 100vh;
min-height: 650px;
padding-top: 0;
padding-bottom: 0; }
.view h1 {
font-size: 3rem !important; } }
@media (min-width: 1200px) {
.view h1 {
font-size: 4rem !important; } }
.service-box {
max-width: 400px; }
.service-box img {
border: 2px solid #128f52;
border-radius: 50%; }
.service-box img:hover {
border: 2px solid #fec810; }
.text-primary {
color: #128f52 !important; }
.btn {
font-weight: 700;
text-transform: uppercase;
border: none;
border-radius: 300px;
font-family: 'PFBeauSansPro', sans-serif !important; }
.btn-xl {
padding: 1rem 2rem; }
.btn-primary {
background-color: #128f52 !important;
border-color: #128f52 !important; }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
color: #fff;
background-color: #0f7845 !important; }
.btn-primary:active, .btn-primary:focus {
box-shadow: 0 0 0 0.2rem rgba(240, 95, 64, 0.5) !important; }
.about {
font-family: 'PFBeauSansPro'; }
.about .about-text {
color: black; }
.about .about-img {
min-height: 30rem;
background-size: cover; }
@media (min-width: 768px) {
.about .about-text {
color: black; } }
.about h1,
.about h2,
.about h3,
.about h4,
.about h5,
.about h6 {
font-family: 'PFBeauSansPro';
font-weight: 800 !important; }
.footer {
padding-top: 1rem;
padding-bottom: 1rem;
background-color: #128f52;
color: #fff; }
.copyright {
background-color: #212529; }
ul.social-buttons {
margin-bottom: 0; }
ul.social-buttons li a {
font-size: 20px;
line-height: 40px;
display: block;
width: 40px;
height: 40px;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
color: white;
border-radius: 100%;
outline: none;
background-color: #0c6238; }
ul.social-buttons li a:active, ul.social-buttons li a:focus, ul.social-buttons li a:hover {
background-color: #fec810; }
.vertical-align {
display: flex;
flex-direction: row; }
.vertical-align > [class^="col-"],
.vertical-align > [class*=" col-"] {
display: flex;
align-items: center;
justify-content: center; }
.fa-dtube {
background-image: url("../img/dtube.png") no-repeat 0 0; }
.fa-steemit {
background-image: url("../img/steemit.png") no-repeat 0 0; }
.testimonial-item i {
font-size: 80px;
color: #128f52;
padding-bottom: 15px; }

File diff suppressed because one or more lines are too long

View file

@ -1,101 +0,0 @@
/*
* {
box-sizing: border-box;
}
body,
html {
width: 100%;
height: 100%;
margin: 0;
}
select {
margin-bottom: 3rem;
}
.popper {
background: #222;
color: white;
width: 150px;
border-radius: 2px;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
padding: 5px;
}
.popper .popper__arrow, .popover .popover__arrow {
width: 0;
height: 0;
border-style: solid;
position: absolute;
margin: 5px;
}
.popper[data-placement^="top"], .popover[data-placement^="top"] {
margin-bottom: 5px;
}
.popper[data-placement^="top"] .popper__arrow, .popover[data-placement^="top"] .popover__arrow {
border-width: 5px 5px 0 5px;
border-color: #222 transparent transparent transparent;
bottom: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
.popover[data-placement^="top"] .popover__arrow {
border-color: #fff transparent transparent transparent;
}
.popper[data-placement^="bottom"], .popover[data-placement^="bottom"] {
margin-top: 5px;
}
.popper[data-placement^="bottom"] .popper__arrow, .popover[data-placement^="bottom"] .popover__arrow {
border-width: 0 5px 5px 5px;
border-color: transparent transparent #222 transparent;
top: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
.popover[data-placement^="bottom"] .popover__arrow {
border-color: transparent transparent #fff transparent;
}
.popper[data-placement^="right"], .popover[data-placement^="right"] {
margin-left: 5px;
}
.popper[data-placement^="right"] .popper__arrow, .popover[data-placement^="right"] .popover__arrow {
border-width: 5px 5px 5px 0;
border-color: transparent #222 transparent transparent;
left: -5px;
top: calc(50% - 5px);
margin-left: 0;
margin-right: 0;
}
.popover[data-placement^="right"] .popover__arrow {
border-color: transparent #fff transparent transparent;
}
.popper[data-placement^="left"], .popover[data-placement^="left"] {
margin-right: 5px;
}
.popper[data-placement^="left"] .popper__arrow, .popover[data-placement^="left"] .popover__arrow {
border-width: 5px 0 5px 5px;
border-color: transparent transparent transparent #222;
right: -5px;
top: calc(50% - 5px);
margin-left: 0;
margin-right: 0;
}
.popover[data-placement^="left"] .popover__arrow {
border-color: transparent transparent transparent #fff;
}
*/

View file

@ -0,0 +1,64 @@
<h1>Privacy Policy</h1>
<p>Last updated: November 20, 2022</p>
<p>This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights.</p>
<h1>Interpretation and Definitions</h1>
<h2>Interpretation</h2>
<p>The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.</p>
<h2>Definitions</h2>
<p>For the purposes of this Privacy Policy:</p>
<ul>
<li>
<p><strong>Account</strong> means a unique account created for You to access our Service or parts of our Service.</p>
</li>
<li>
<p><strong>Affiliate</strong> means an entity that controls, is controlled by or is under common control with a party, where &quot;control&quot; means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority.</p>
</li>
<li>
<p><strong>Application</strong> means the software program provided by the Company downloaded by You on any electronic device, named BiTSy</p>
</li>
<li>
<p><strong>Company</strong> (referred to as either &quot;the Company&quot;, &quot;We&quot;, &quot;Us&quot; or &quot;Our&quot; in this Agreement) refers to AGORISE, LTD., John Kennedy 28-Suite 401, Nicosia 1087, Cyprus.</p>
</li>
<li>
<p><strong>Country</strong> refers to: Cyprus</p>
</li>
<li>
<p><strong>Device</strong> means any device that can access the Service such as a computer, a cellphone or a digital tablet.</p>
</li>
<li>
<p><strong>Personal Data</strong> is any information that relates to an identified or identifiable individual.</p>
</li>
<li>
<p><strong>Service</strong> refers to the Application.</p>
</li>
<li>
<p><strong>Service Provider</strong> means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.</p>
</li>
<li>
<p><strong>Usage Data</strong> refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).</p>
</li>
<li>
<p><strong>You</strong> means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.</p>
</li>
</ul>
<h1>Collecting and Using Your Personal Data</h1>
<h2>Types of Data Collected</h2>
<h3>Personal Data</h3>
<p>We do not collect ANY data about You.</p>
<ul>
<li>None</li>
</ul>
<h3>Usage Data</h3>
<p>We do not collect ANY data about You.</p>
<ul>
<li>None</li>
</ul>
<h1>Changes to this Privacy Policy</h1>
<p>We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.</p>
<p>We will let You know via our blog at https://hive.blog/@Agorise and/or a prominent notice on Our Service, prior to the change becoming effective and update the &quot;Last updated&quot; date at the top of this Privacy Policy.</p>
<p>You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.</p>
<h1>Contact Us</h1>
<p>If you have any questions about this Privacy Policy, You can contact us:</p>
<ul>
<li>By visiting this page: <a href="http://agorise.chat" rel="external nofollow noopener" target="_blank">http://agorise.chat</a></li>
</ul>

View file

@ -0,0 +1,64 @@
<h1>Privacy Policy</h1>
<p>Last updated: November 20, 2022</p>
<p>This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights.</p>
<h1>Interpretation and Definitions</h1>
<h2>Interpretation</h2>
<p>The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.</p>
<h2>Definitions</h2>
<p>For the purposes of this Privacy Policy:</p>
<ul>
<li>
<p><strong>Account</strong> means a unique account created for You to access our Service or parts of our Service.</p>
</li>
<li>
<p><strong>Affiliate</strong> means an entity that controls, is controlled by or is under common control with a party, where &quot;control&quot; means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority.</p>
</li>
<li>
<p><strong>Application</strong> means the software program provided by the Company downloaded by You on any electronic device, named PalmPay</p>
</li>
<li>
<p><strong>Company</strong> (referred to as either &quot;the Company&quot;, &quot;We&quot;, &quot;Us&quot; or &quot;Our&quot; in this Agreement) refers to AGORISE, LTD., John Kennedy 28-Suite 401, Nicosia 1087, Cyprus.</p>
</li>
<li>
<p><strong>Country</strong> refers to: Cyprus</p>
</li>
<li>
<p><strong>Device</strong> means any device that can access the Service such as a computer, a cellphone or a digital tablet.</p>
</li>
<li>
<p><strong>Personal Data</strong> is any information that relates to an identified or identifiable individual.</p>
</li>
<li>
<p><strong>Service</strong> refers to the Application.</p>
</li>
<li>
<p><strong>Service Provider</strong> means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.</p>
</li>
<li>
<p><strong>Usage Data</strong> refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).</p>
</li>
<li>
<p><strong>You</strong> means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.</p>
</li>
</ul>
<h1>Collecting and Using Your Personal Data</h1>
<h2>Types of Data Collected</h2>
<h3>Personal Data</h3>
<p>We do not collect ANY data about You.</p>
<ul>
<li>None</li>
</ul>
<h3>Usage Data</h3>
<p>We do not collect ANY data about You.</p>
<ul>
<li>None</li>
</ul>
<h1>Changes to this Privacy Policy</h1>
<p>We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.</p>
<p>We will let You know via our blog at https://hive.blog/@Agorise and/or a prominent notice on Our Service, prior to the change becoming effective and update the &quot;Last updated&quot; date at the top of this Privacy Policy.</p>
<p>You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.</p>
<h1>Contact Us</h1>
<p>If you have any questions about this Privacy Policy, You can contact us:</p>
<ul>
<li>By visiting this page on our website: <a href="https://PalmPay.io" rel="external nofollow noopener" target="_blank">https://PalmPay.io</a></li>
</ul>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more