Git Product home page Git Product logo

art-peace's Introduction

art_canvas

Collaborative art canvas on Starknet

Check Workflow Status Build Workflow Status

Exploration_Team

Overview

art/peace is a collaborative art game where users can place pixels on a large shared canvas and receive rewards for collaborating to build art. The game will run over X days, and end with a final snapshot of the board. The goal is to give users the feeling of collectively building on a highly responsive art canvas, which they can explore, interact with, and compete on.

Some of the features include :

  • Placing Pixels : This will be the main user interaction, where every X minutes a user will be allowed to place a pixel onto the canvas.
  • Quests : Tasks to get extra pixels to place on-top of the one every X minutes.
  • Voting : In addition to the base colors, there will be a vote to add new colors to the palette every day.
  • Templates : Artwork templates used to help communities collaborate on an art piece. Bounties can be added to a template to incentivize creation.
  • NFTs : Mint NFTs from the canvas.

Running

Docker Run ( Recommended )

docker compose up

To stop the run use Ctrl-C.

For a complete reset of the state and rebuild of the containers use :

# WARNING! This will clear the state (volumes) of all the DBs and the Devnet
docker compose down --volumes
docker compose build

Local Run

# Must install all the dependencies first
# Use npm install inside the `frontend` directory
# Change the user on `configs/database.config.json` for postgres
make integration-test-local

To stop the run use Ctrl-C.

Component Run

Each component can also be run individually, check the Components section below for more details.

Build

Docker Build ( Recommended )

docker compose build

Local Build

make build

Component Build

Use the make build-X command for each corresponding component X. See the Components section below for more details.

Components

  • Onchain: Starknet contract(s) for trustless onchain interactions.
  • Backend: Monolithic Go backend for managing requests, interactions, and DBs.
  • Frontend: Reactjs application for users to interact with.
  • Indexer: Apibara indexer for monitoring Starknet events and forwarding to the DBs.
  • Postgres: DB for storing general data used for analytics, frontend, and backend.
  • Redis: In memory DB used to store the compressed Canvas data for fast retrieval
  • tests: Integration tests for local, docker, ...

art/peace diagram

Dependencies

Its recommended to use docker compose when building and running, so the only dependencies would be docker and docker compose

However, it might be worth running only certain components for development/testing sometimes. Each component has various dependencies, check dependencies.txt for more details.

References

Contributors โœจ

Thanks goes to these wonderful people. Follow the contributors guide if you'd like to take part.

Brandon R
Brandon R

๐Ÿ’ป
Adeyemi Gbenga
Adeyemi Gbenga

๐Ÿ’ป
Tristan
Tristan

๐Ÿ’ป
Abdulhakeem Abdulazeez Ayodeji
Abdulhakeem Abdulazeez Ayodeji

๐Ÿ’ป
Trunks @ Carbonable
Trunks @ Carbonable

๐Ÿ’ป
ptisserand
ptisserand

๐Ÿ’ป
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

art-peace's People

Contributors

b-j-roberts avatar addegbenga avatar tadev0 avatar ayoazeez26 avatar mubarak23 avatar otaiki1 avatar tekkac avatar ptisserand avatar

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.