Code Monkey home page Code Monkey logo

eoscostarica.io's People

Contributors

angelocg97 avatar chaosex avatar codefactor-io[bot] avatar crservers avatar edgarithm avatar gaboesquivel avatar hanakoori01 avatar jeanvegad avatar ldrojas avatar tetogomez avatar webdesigncr avatar xavier506 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

eoscostarica.io's Issues

Webpage translation to Korean

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.

Add Vision to home page

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.

Manage Dark Theme

When my computer switches to dark theme the website detects this preference and switches to dark mode

image

Product design meeting 01

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

Add Block Producer Standard

<li>Provide the <b>highest-standard bare metal infrastructure</b> possible to the EOS ecosystem.</li>

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

Change Mission

<p class="lead"> We challenge ourselves to provide the EOS platform with a strong geographical and political diversity by running the most robust <b>bare-metal</b> and <b> self-funded</b> EOS Block Producer possible from Costa Rica. We pledge to leverage our talent, experience, and sustainable Internet resources to meet such an important challenge. </p>

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.

Template Engine / Static Site Generator

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

Home wireframe

Wireframe for the home page, Initial order of the different sections

Contact us page

For SEO we should create a dedicated contact-us page

this should be its own URL path in english and spanish sites

Do proto personas

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 **

SIte map

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

Fix details

  • Change images
  • Change button format
  • Align textt
  • Add lines in accordions
  • Unify size texts "read more" in industries page
  • Fix logo in blog section

Images:

  • Placeholder logo projects
  • Map in Services page
  • Carrousel team pics for Company page
  • "Liberty" icon
  • Converted format images

Partnerships section in homepagepage

@JeanVegaD @AngeloCG97
Substitute this section on the home page:

Captura de Pantalla 2021-04-15 a la(s) 13 29 46

Copy EN: "Proudly in Partnership with:"

Copy ES: "Orgullosamente aliados de:"

  • Content
  • Gather logos
  • Change color to logos
  • Confirm logos
    • LACChain
    • LACChain EOSIO
    • Blockchain Game Alliance
    • EOSIO Enterprise Forum
    • Block.one
    • Government Blockchain Association
    • Asociación Blockchain CR
    • BID Lab
    • Europechain
    • PROCOMER
    • TEC
  • Apply to website

1_yTAu2YC1f4NX3CMSpIC0GA
GBA-logo_blue-on-transparent_01
latamlink_logo-h-full-color-overwhite
logo-black
logo-lacchain-footer

Language selector

We need a way to link spanish and english pages

  • each url should link to the equivalent URL in the other language (about -> acerca)
  • there should should be a hreflang attribute (also referred to as rel="alternate" hreflang="x")

https://moz.com/learn/seo/hreflang-tag

Website refactor

Desktop

  • Home
  • Services
  • Industries
  • About
  • Projects
  • BP
  • Blog

Mobile

  • Home
  • Services
  • Industries
  • About
  • Projects
  • BP
  • Blog

Add Value Proposition to Home Page

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.

Remove JS snippet injection

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>

image

Add link to Github on site footer

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 .

Additional context
screen shot 2018-07-01 at 8 31 20 am

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.