eoscostarica / eoscostarica.io Goto Github PK
View Code? Open in Web Editor NEWEOS Costa Rica's Website 🦋
Home Page: https://eoscostarica.io
EOS Costa Rica's Website 🦋
Home Page: https://eoscostarica.io
We want to share our story with everyone in Korea. We need help creating a version of our site in Korean and keep the content up to date.
Vision:
We envision a strong EOS community where democratic values foster an environment of innovation,responsible growth and prosperity. Our vision is full of groundbreaking dApps that improve access to education, capital and opportunity.
Became in 3 different meetings with the different actors on the webpage (business - development - UI).
Resolving
Product Story:
The site is oriented to the 3 company branches
Infrastructure - bare metal as a service
**Nearshore — dapps Boutique **
Community -- Training paid
Building the site oriented to in 2 minutes a user can know with a general overview (in 2 minutes) what we are.
Personas
Proto personas defined in the ticket #36
Workflow diagrams
Sitemap defined in the #34
Create a page on our website with the current status of our nodes.
Setup TravisCI
Developer Guidelines - https://guide.eoscostarica.io/
Guias para Desarrolladores - https://guias.eoscostarica.io/
Incorporate this FAQs to our website and use the info for marketing posts.
CodeFactor found an issue: Unexpected unit (length-zero-no-unit)
It's currently on:
src\theme\styles.module.css:39
Commit 8050552
CodeFactor found an issue: Unexpected duplicate selector ".linkProjectBox", first used at line 208 (no-duplicate-selectors)
It's currently on:
src\pages\styles.module.css:346
Commit 8050552
eoscostarica.io/code-of-conduct.html
Line 147 in aac43a0
Our Block Producer Standard:
A Block Producer of excellent character
A Block Producer of advanced technical ability
A Block Producer with ambitious goals
A Block Producer with a helpful disposition
A Block Producer who demonstrates good morals
A Block Producer who communicates with authenticity
A Block Producer who acts with the utmost sense of responsibility
Line 299 in aac43a0
EOS Costa Rica provides infrastructure to the EOS network enabling the responsible development of decentralized applications that will enhance our society. We challenge ourselves to run the most robust, self-funded, bare metal Block Producer possible from Costa Rica improving geographical and political diversity. We pledge to leverage our talent, experience, and sustainable resources to meet such an important challenge.
We need to use templates in order to avoid duplication of code and make the site easier to maintain. Let's discuss here what static site generator we want to use.
Here's the full list
https://www.staticgen.com
I have used hexo, harpjs and hugo. Hexo is nice for blogs, Harp uses Jade ( which is not that common ) and I felt it kinda clunky. Of all 3 I prefer Hugo, though it doesn't have website optimization out of the box so I published this project which does gaboesquivel/fasthugo ( 🏂 FastHugo is an Optimized Hugo Static Website Boilerplate ), however it still needs more love to get it to the point that I want.
There are other interesting ones like
Let's take the time to analyze options and decide. Please leave your comments and recommendations
CodeFactor found an issue: Unexpected duplicate "text-align" (declaration-block-no-duplicate-properties)
It's currently on:
src\pages\styles.module.css:474
Commit 8050552
Automate voter appreciation messages on our page.
Use readme file template as reference.
Add a link on the welcome page that start playing out At a Glance video for users to immediately see when visiting.
Create a simple link for users to vote for COSTARICAEOS directly from our website. The link could just take the user to a list of vetted voting tools and a guide on how to do so.
https://github.com/orgs/eoscostarica/projects/2#card-50266500
Wireframe for the home page, Initial order of the different sections
Check with Rodolfo this issue
For SEO we should create a dedicated contact-us
page
this should be its own URL path in english and spanish sites
Do changes on the proto-personas as we decided with Edgard adding a new one
Juan Perez Costa Rica Software developer
John Cook USA Entrepreneur
**Li Wan
China
Researcher **
As we decided with @edgard we will build the sitemap following these sections:
Home
Services
⇲ Infrastructure
⇲ Boutique Dapps development team
⇲Classroom room
Team
Partners
News and events
Careers
See: https://docusaurus.io/docs/en/search
https://v2.docusaurus.io/docs/search
https://programmablesearchengine.google.com/cse/all
Integrate mailchimp service and eliminate mailer.php code
Images:
@JeanVegaD @AngeloCG97
Substitute this section on the home page:
Copy EN: "Proudly in Partnership with:"
Copy ES: "Orgullosamente aliados de:"
We need a way to link spanish and english pages
rel="alternate" hreflang="x"
)Our Value Proposition:
Bare Metal
Self-funded
Geostrategic location
Political stability
Clean renewable energy
Disclosed and transparent ownership
Operating 6 dedicated servers in mainnet and Jungle testnet
4yr+ experience managing blockchain nodes including DPOS Bitshares and Steem
10yr+ experience managing 24/7 server infrastructure
Access to a talented pool of developers in Latin America
Our goal is to build a strong EOS community with a deep learning culture where knowledge is constantly being shared and applied. We are most passionate about dApps that facilitate collaboration and the bringing together of ideas. We are currently working on a project, DMeetup, that will allow the community to plan and attend classes, hackthons and workshops to build on top of EOS.
Google search console errors for mobile usability
https://search.google.com/search-console/mobile-usability?resource_id=sc-domain%3Aeoscostarica.io
There is some strange code injected in the header of the files
<script>
let wombatScatterPatched = false;
(function () {
if (wombatScatterPatched) {
return;
}
function arrayToHex(array) {
return array.reduce((acc, i) => acc + i.toString(16).padStart(2, '0'), '');
}
function hexToUint8Array(hexString) {
const buf = new Uint8Array(hexString.length / 2);
for (let i = 0; i < hexString.length; i += 2) {
buf[i / 2] = parseInt(hexString.substr(i, 2), 16);
}
return buf;
}
function sendToContentScript(message) {
const id = Math.random().toFixed(10);
return new Promise((resolve, reject) => {
document.addEventListener('wombat-comm-' + id, (evt) => {
const response = evt.detail;
if (response.error) {
reject(response);
}
else {
resolve(response);
}
}, { once: true });
document.dispatchEvent(new CustomEvent('wombat-comm', {
detail: {
id: id,
message: message,
},
}));
});
}
function patchScatter(scatter) {
scatter.identity = null;
scatter.isExtension = true;
scatter.isConnected = () => true;
scatter.requiredVersion = '';
scatter.getVersion = () => Promise.resolve('10.1.12');
scatter.publicKey = '';
scatter.network = {
chainId: 'aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906',
host: 'localhost',
blockchain: 'eos',
port: 80,
protocol: 'http',
httpEndpoint: 'http://localhost',
};
scatter.connect = (applicationName, requiredFields) => {
if (requiredFields && requiredFields.network) {
scatter.network = requiredFields.network;
}
return Promise.resolve(true);
};
scatter.getIdentity = async (args) => {
const chainId = args ? args.accounts[0].chainId : scatter.network.chainId;
scatter.identity = await sendToContentScript({
type: 0,
chainId: chainId,
});
return scatter.identity;
};
scatter.login = scatter.getIdentity;
scatter.account = () => {
if (!scatter.identity)
return null;
return scatter.identity.accounts[0];
};
scatter.getIdentityFromPermissions = () => {
if (scatter.identity) {
return Promise.resolve(scatter.identity);
}
else {
return scatter.getIdentity();
}
};
scatter.checkLogin = scatter.getIdentityFromPermissions;
scatter.forgetIdentity = () => {
scatter.identity = null;
return Promise.resolve(true);
};
scatter.logout = scatter.forgetIdentity;
scatter.getPublicKey = () => {
if (scatter.identity) {
return Promise.resolve(scatter.identity.publicKey);
}
else {
return Promise.resolve();
}
};
scatter.requireVersion = required => {
scatter.requiredVersion = required;
};
scatter.useIdentity = id => {
scatter.identity = id;
};
scatter.suggestNetwork = () => Promise.resolve(true);
async function signProvider(signargs) {
const serializedTx = signargs.buf.toString('hex', 32, signargs.buf.length - 32);
const res = await sendToContentScript({
type: 1,
chainId: scatter.network.chainId,
serializedTx,
modifiable: true,
origin: document.location.host,
});
if (res.modified) {
if (signargs.transaction.actions.find((action) => action.account === 'eosio')) {
signargs.transaction.actions.unshift({
account: 'genialwombat',
action: 'noop',
data: {},
authorization: [
{
actor: 'wombatresmgr',
permission: 'cosign',
},
],
});
}
else {
signargs.transaction.actions[0].authorization.unshift({
actor: 'wombatresmgr',
permission: 'active',
});
}
}
return res.signatures;
}
scatter.signProvider = signProvider;
scatter.hookProvider = (network, requiredFields, isVersionBeta3) => ({
requiredFields: {},
getAvailableKeys() {
if (scatter.identity) {
const keys = [scatter.identity.publicKey];
if (scatter.identity.accounts.length > 1) {
keys.push(scatter.identity.accounts[1].publicKey);
}
return Promise.resolve(keys);
}
else {
return Promise.resolve([]);
}
},
async sign(signargs) {
let { serializedTransaction } = signargs;
if (serializedTransaction instanceof Uint8Array) {
serializedTransaction = arrayToHex(serializedTransaction);
}
const res = await sendToContentScript({
type: 1,
chainId: signargs.chainId,
serializedTx: serializedTransaction,
modifiable: isVersionBeta3 || false,
origin: document.location.host,
});
if (isVersionBeta3) {
if (res.modified) {
return {
serializedTransaction: hexToUint8Array(res.signedTx),
signatures: res.signatures,
};
}
else {
return {
serializedTransaction: hexToUint8Array(serializedTransaction),
signatures: res.signatures,
};
}
}
else {
return res.signatures;
}
},
});
scatter.eosHook = scatter.hookProvider;
scatter.eosMultiHook = (network, signers) => {
const allSigners = [scatter.hookProvider(network)].concat(signers);
return {
async getAvailableKeys() {
return Promise.all(allSigners.map(signer => signer.getAvailableKeys()))
.then(allKeys => allKeys.flat());
},
async sign(signargs) {
const allSignatures = await Promise.all(allSigners.map(async (signer) => signer.sign({
abis: signargs.abis,
chainId: network.chainId,
requiredKeys: await signer.getAvailableKeys(),
serializedTransaction: signargs.serializedTransaction,
}).then(res => {
if (Array.isArray(res)) {
return res;
}
else {
return res.signatures;
}
})));
return {
signatures: allSignatures.flat(),
serializedTransaction: signargs.serializedTransaction,
};
},
};
};
scatter.eos = (network, Eos, eosOptions, protocol) => {
if (eosOptions && eosOptions.rpc) {
const signatureProvider = scatter.hookProvider(network, {}, eosOptions.beta3 || true);
return new Eos(Object.assign(eosOptions, { signatureProvider }));
}
else {
eosOptions = eosOptions || {};
scatter.network = Object.assign(scatter.network, network);
if (!network.protocol) {
network.protocol = protocol || 'http';
}
const httpEndpoint = network.protocol + '://' + network.host + ':' + network.port;
const chainId = network.chainId;
return Eos(Object.assign(eosOptions, {
httpEndpoint,
chainId,
signProvider,
}));
}
};
scatter.getArbitrarySignature = (publicKey, data) => {
return sendToContentScript({
type: 2,
data,
chainId: scatter.network.chainId,
origin: document.location.host,
});
};
scatter.authenticate = (nonce, data) => {
return sendToContentScript({
type: 3,
nonce,
data,
chainId: scatter.network.chainId,
origin: document.location.host,
});
};
}
if (window.ScatterJS) {
patchScatter(window.ScatterJS.scatter);
}
else {
let scatterJS = undefined;
Object.defineProperty(window, 'ScatterJS', {
get() {
return scatterJS;
},
set(ScatterJS) {
if (ScatterJS) {
patchScatter(ScatterJS.scatter);
}
scatterJS = ScatterJS;
},
});
}
const scatter = {};
patchScatter(scatter);
window.scatter = scatter;
…</script>
Github is a really important part of what we are doing in EOS Costa Rica , we should share this with the world everywhere we can.
Describe the solution you'd like
There is no GitHub icon with a link in our website footer
Describe alternatives you've considered
Let's add the github icon with font-awesome and link it to https://github.com/eoscostarica
.
@JeanVegaD @AngeloCG97 pls see #217 for reference and include these meta descriptions and titles accordingly. Pls update the HOME description as well, since I rewrote it.
We want to share our story with everyone in China. We need help keeping our Chinese content up to date.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.