Coder Social home page Coder Social logo

gnolang / memeland Goto Github PK

View Code? Open in Web Editor NEW
4.0 11.0 2.0 495 KB

Meme.land: A Gno-powered meme sharing platform where you can share and upvote memes. Built with React and the Gno programming language.

Home Page: https://meme.gnoteam.com

JavaScript 1.36% HTML 2.91% CSS 2.58% TypeScript 93.15%
adena dapp gno gnoland meme

memeland's Introduction

Meme.land - A Gno Meme Sharing Platform

Meme.land is a meme (funny internet image) sharing platform built on top of the Gno.land blockchain tech stack.

Meme.land allows you to connect with your Gno.land wallet, share memes with your friends and coworkers, and upvote the funniest ones.

Built using the Gno.land tech stack, Meme.land utilizes the Gno programming language for its backend, and a classic React UI using vite.

Run Meme.land locally

Meme.land consists of a React frontend, and a Gno backend (smart contract). The frontend and backend code can be found at ui/ and api/ respectively.

Prerequisites

  • NodeJS
  • Yarn
  • Go 1.21+

1. Clone the Meme.land repo

git clone [email protected]:gnolang/memeland.git 

2. Set up environment variables

Create a .env file in the root of the repo following the template found in .env.example.

To do this, your .env file should contain the following:

VITE_CHAIN_ID=<gno-chain-id>
VITE_CHAIN_RPC=ws://<gno-chain-rpc>/websocket
VITE_REALM_PATH=<onchain-path-to-memeland-realm>

4. Set up a local development node with gnodev

gnodev is a tool that allows you to run a local Gno.land node effortlessly. To get started, install gnodev. To do this, clone the Gno monorepo:

git clone [email protected]:gnolang/gno.git 

From the root of the Gno repo, install the all the necessary binaries and tools following the next steps:

  1. Install the gno & gnodev binaries with the following command in the root of the cloned monorepo:
make install
  1. Run the gnodev binary in the memeland repo, giving it paths to the package and realm:
gnodev ./api/p/memeland ./api/r/memeland

Running this command will spin up a local node that the Meme.land UI will be able to connect to.

Make sure that the chain RPC endpoint that gnodev is running on matches the one in the .env file.

3. Start the frontend with vite

Start by running yarn in the ui/ folder. After yarn has installed all of the dependencies, run yarn dev.

Conclusion

Congratulations! You are now officially running a local frontend connected to Meme.land!

memeland's People

Contributors

albttx avatar digix666 avatar leohhhn avatar zivkovicmilos avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

digix666 mous1985

memeland's Issues

Add README + GH repo tidy

Description

This issue concerns creating a README about the project, as well as setup instructions.

Additionally, it also encompasses changing the repo description and adding sensible tags.

Add Gno testing CI

Description

This issue concerns adding a GitHub Actions CI for testing the Realm / Package code for meme.land

Make Memeland invite-only

Description

In order to add moderation to Memeland and make it available to the public, we need to introduce a form of moderation to it. I suggest we tie Memeland in with r/users, so only addresses that are registered in r/users can upload memes. Upvoting can be left open to the public.

Add Realm tests

Description

Tests for realm code should be written and added to the repo.

Add individual meme page

Description

This issue concerns adding an individual meme page to the UI, so users can share links to memes.

This page will later be used to expand on functionality like comments

Add profile page

Description

This issue concerns adding an individual profile page for users, that showcases all of their posted memes

Display username instead of address

Description

When we merge #24, we should display the username of the user on the meme they posted by fetching the username matching the address from r/demo/users via vm/qeval.

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.