An open API service indexing awesome lists of open source software.

https://github.com/keep-starknet-strange/art-peace

Competitive art canvas on Starknet
https://github.com/keep-starknet-strange/art-peace

cairo full-stack onchain-game starknet

Last synced: about 2 months ago
JSON representation

Competitive art canvas on Starknet

Awesome Lists containing this project

README

        


art_canvas

***Collaborative art canvas on Starknet***

[![Check Workflow Status](https://github.com/keep-starknet-strange/art-peace/actions/workflows/check.yml/badge.svg)](https://github.com/keep-starknet-strange/art-peace/actions/workflows/check.yml)
[![Build Workflow Status](https://github.com/keep-starknet-strange/art-peace/actions/workflows/build.yml/badge.svg)](https://github.com/keep-starknet-strange/art-peace/actions/workflows/build.yml)

[![Exploration_Team](https://img.shields.io/badge/Exploration_Team-29296E.svg?&style=for-the-badge&logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODEgMTgxIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojZmZmO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE3Ni43Niw4OC4xOGwtMzYtMzcuNDNjLTEuMzMtMS40OC0zLjQxLTIuMDQtNS4zMS0xLjQybC0xMC42MiwyLjk4LTEyLjk1LDMuNjNoLjc4YzUuMTQtNC41Nyw5LjktOS41NSwxNC4yNS0xNC44OSwxLjY4LTEuNjgsMS44MS0yLjcyLDAtNC4yN0w5Mi40NSwuNzZxLTEuOTQtMS4wNC00LjAxLC4xM2MtMTIuMDQsMTIuNDMtMjMuODMsMjQuNzQtMzYsMzcuNjktMS4yLDEuNDUtMS41LDMuNDQtLjc4LDUuMThsNC4yNywxNi41OGMwLDIuNzIsMS40Miw1LjU3LDIuMDcsOC4yOS00LjczLTUuNjEtOS43NC0xMC45Ny0xNS4wMi0xNi4wNi0xLjY4LTEuODEtMi41OS0xLjgxLTQuNCwwTDQuMzksODguMDVjLTEuNjgsMi4zMy0xLjgxLDIuMzMsMCw0LjUzbDM1Ljg3LDM3LjNjMS4zNiwxLjUzLDMuNSwyLjEsNS40NCwxLjQybDExLjQtMy4xMSwxMi45NS0zLjYzdi45MWMtNS4yOSw0LjE3LTEwLjIyLDguNzYtMTQuNzYsMTMuNzNxLTMuNjMsMi45OC0uNzgsNS4zMWwzMy40MSwzNC44NGMyLjIsMi4yLDIuOTgsMi4yLDUuMTgsMGwzNS40OC0zNy4xN2MxLjU5LTEuMzgsMi4xNi0zLjYsMS40Mi01LjU3LTEuNjgtNi4wOS0zLjI0LTEyLjMtNC43OS0xOC4zOS0uNzQtMi4yNy0xLjIyLTQuNjItMS40Mi02Ljk5LDQuMyw1LjkzLDkuMDcsMTEuNTIsMTQuMjUsMTYuNzEsMS42OCwxLjY4LDIuNzIsMS42OCw0LjQsMGwzNC4zMi0zNS43NHExLjU1LTEuODEsMC00LjAxWm0tNzIuMjYsMTUuMTVjLTMuMTEtLjc4LTYuMDktMS41NS05LjE5LTIuNTktMS43OC0uMzQtMy42MSwuMy00Ljc5LDEuNjhsLTEyLjk1LDEzLjg2Yy0uNzYsLjg1LTEuNDUsMS43Ni0yLjA3LDIuNzJoLS42NWMxLjMtNS4zMSwyLjcyLTEwLjYyLDQuMDEtMTUuOGwxLjY4LTYuNzNjLjg0LTIuMTgsLjE1LTQuNjUtMS42OC02LjA5bC0xMi45NS0xNC4xMmMtLjY0LS40NS0xLjE0LTEuMDgtMS40Mi0xLjgxbDE5LjA0LDUuMTgsMi41OSwuNzhjMi4wNCwuNzYsNC4zMywuMTQsNS43LTEuNTVsMTIuOTUtMTQuMzhzLjc4LTEuMDQsMS42OC0xLjE3Yy0xLjgxLDYuNi0yLjk4LDE0LjEyLTUuNDQsMjAuNDYtMS4wOCwyLjk2LS4wOCw2LjI4LDIuNDYsOC4xNiw0LjI3LDQuMTQsOC4yOSw4LjU1LDEyLjk1LDEyLjk1LDAsMCwxLjMsLjkxLDEuNDIsMi4wN2wtMTMuMzQtMy42M1oiLz48L3N2Zz4=)](https://github.com/keep-starknet-strange)

> Art Peace Round 2 is live!
> Check live stats on this cool [Dune Dashboard](https://dune.com/hessish/artpeace)
> And go place some pixels and draw cool shit you mfer! ==> [art-peace.net](https://www.art-peace.net)

## 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 )

```bash
docker compose up
```

To stop the run use `Ctrl-C`.

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

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

### Local Run

```bash
# 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](#Components) section below for more details.

## Build

### Docker Build ( Recommended )

```bash
docker compose build
```

### Local Build

```bash
make build
```

### Component Build

Use the `make build-X` command for each corresponding component `X`. See the [Components](#Components) section below for more details.

## Components

- **Onchain:** [Starknet contract(s)](./onchain/) for trustless onchain interactions.
- **Backend:** [Monolithic Go backend](./backend/) for managing requests, interactions, and DBs.
- **Frontend:** [Reactjs application](./frontend/) for users to interact with.
- **Indexer:** [Apibara indexer](./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](./docs/diagrams/art-peace-diagram.png)

## Dependencies

Its recommended to use `docker compose` when building and running, so the only dependencies would be [docker](https://docs.docker.com/desktop/) and [docker compose](https://docs.docker.com/compose/install/linux/)

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

## References

- [Diagrams](./docs/diagrams/)
- [r/place technical document](https://www.redditinc.com/blog/how-we-built-rplace)
- [Telegram](https://t.me/art_peace_starknet)
- [OnlyDust](https://app.onlydust.com/p/artpeace)

## Contributors ✨

Thanks goes to these wonderful people. Follow the [contributors guide](https://github.com/keep-starknet-strange/art-peace/blob/main/CONTRIBUTING.md) 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

πŸ’»
Mubarak Muhammad Aminu
Mubarak Muhammad Aminu

πŸ’»


0xK2
0xK2

πŸ’»
Fishon Amos
Fishon Amos

πŸ’»
Xaxxoo
Xaxxoo

πŸ’»
Mano.dev
Mano.dev

πŸ’»
Abdulsamad sadiq
Abdulsamad sadiq

πŸ’»
Agada Gabriel
Agada Gabriel

πŸ’»
Abdulqahar Usman
Abdulqahar Usman

πŸ’»


Awe Olumide David
Awe Olumide David

πŸ’»
Catherine Jonathan
Catherine Jonathan

πŸ’»
Emmaunuel Ejembi
Emmaunuel Ejembi

πŸ’»
CollinsC1O
CollinsC1O

πŸ’»
Alfred Emmanuel
Alfred Emmanuel

πŸ’»
princeibs
princeibs

πŸ’»
Oshioke Salaki
Oshioke Salaki

πŸ’»


Caleb
Caleb

πŸ’»
Immanuelolivia
Immanuelolivia

πŸ’»
Stephanie Nwankwo
Stephanie Nwankwo

πŸ’»
Joy Adah
Joy Adah

πŸ’»
Na'omi Emmanuel Gift
Na'omi Emmanuel Gift

πŸ’»
Yusuf Habib
Yusuf Habib

πŸ’»
drspacemn
drspacemn

πŸ’»


Emmanuel A Akalo
Emmanuel A Akalo

πŸ’»
Kenee Patel
Kenee Patel

πŸ’»
BillXJ
BillXJ

πŸ’»
Jemiiah
Jemiiah

πŸ’»
Umar I Salihu
Umar I Salihu

πŸ’»
lfg2
lfg2

πŸ’»
Zintarh
Zintarh

πŸ’»


Naomi
Naomi

πŸ’»
Supreme Labs
Supreme Labs

πŸ’»
Aβ‚Ώdel ∞/21M
Aβ‚Ώdel ∞/21M

πŸ’»
jike
jike

πŸ’»
Rumia
Rumia

πŸ’»
Okoli Evans
Okoli Evans

πŸ’»
Iwueseiter
Iwueseiter

πŸ’»


Emmanuel Soetan
Emmanuel Soetan

πŸ’»
Emmanuel AgΓΌero
Emmanuel AgΓΌero

πŸ’»
Babs
Babs

πŸ’»
ADR!AN
ADR!AN

πŸ’»






Add your contributions



This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!