Giter Site home page Giter Site logo

canvasreplace's Introduction

CanvasReplace

It's a project to recreate a simple /r/place canvas.

Dependencies

This program requires sqlite3 and node.

Docker

If you want to use Docker, a Dockerfile and docker-compose.yml files are included. Running docker-compose up will start the canvas on port 8000.

Installation

npm install
npm run-script create-database
cp .envexample .env
<edit .env here>

Usage

npm start

Environment variables

These are used by the application. They can be set in the .env file, in the docker-compose file, on the command-line etc.

PORT: The port on which to run the app. If you use docker, you'll need to expose it in a proper way.

DATABASE_PATH : Path to the database

WIDTH: Horizontal dimension of the canvas in pixels.

HEIGHT: Vertical dimension of the canvas in pixels.

TIMER: Minimum time between two pixel placements.

DISCORD: Discord adress to be displayed in the "Welcome panel".

BASE_URL: Base URL on which to run the canvas.

DATETIME_WHITELIST: String of the form yyyy-mm-dd hh:mm:ss#yyyy-mm-dd hh:mm:ss;yyyy-mm-dd hh:mm:ss#yyyy-mm-dd hh:mm:ss. It defines times during which drawing on the canvas is allowed. If DATETIME_WHITELIST isn't specified, or is empty, canvas edition is allowed without time constraint.

canvasreplace's People

Contributors

al3xcalibur avatar ardhanaariishvara avatar matthias4217 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

matthias4217

canvasreplace's Issues

Client JS script path is hardcoded

The const socket = io('/canvas') in public/scripts/script.js prevents the client from finding the right path on which to connect with the server. This path can be configured by the server in the environment variables, but the change is yet not communicated to the client. I'm not sure how to fix that though.

Package.json database path is hardcoded

In the package.json, create-database takes a hardcoded path for the database, whereas the path can be specified as an argument variable in the actual app (yes this is my fault).

EDIT : Doing something like this env $(grep -v '^#' .env | xargs) might work. However this basic shell expression require some tweaking.

Support float time for the timer

Currently, specifying TIMER=0.5 in the .env gives such results :

float-time

The timer is indeed initialized with 0.5s, but it decreases forever.

Allows configuring the colors

Currently, the color selection is hardcoded in routes/index.js :

const colors = new Set(['#000000', '#404040', '#a0a0a0', '#ffffff', '#a05020', '#542100', '#800000', '#ff0000', '#ff6000',
    '#ffa000', '#ffff00', '#b0ff00', '#007000', '#40c000', '#00ffa0', '#00d0ff', '#0080ff', '#0040ff', '#000040',
    '#8060ff', '#8000ff', '#ff30ff', '#ff90ff', '#ffffb0'])

This would be great to be able to set them in a configuration file or the environment.

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.