• Stars
    star
    380
  • Rank 112,766 (Top 3 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created almost 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An ASCII graph drawing app

License Kotlin SASS GitHub release (with filter) Twitter Follow From Vietnam with <3

What is it?

Mono Sketch is a client-side only web-based sketch tool for drawing ASCII diagrams. You can use the app at app.monosketch.io.

             โ”Œ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€
              Edge Region 1                                           โ”‚
             โ”‚
                   โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ   send msg to โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ    โ”‚
 /\_/\       โ”‚     โ”‚โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ•ฎ   websocket  โ”‚โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ•ฎ
( o.o ) โ—€โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฐโ”คโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ•ฎโ—€โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ–ถโ•ฐโ”คโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ•ฎ  โ”‚
 > ^ <       โ”‚      โ•ฐโ”ค    Envoy     โ”‚ sub to this  โ•ฐโ”คGateway serverโ”‚
                     โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ–ฒโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ   channel     โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ฒโ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ  โ”‚
             โ”‚              โ•‘                               โ”‚
              โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ•‘ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”ผ โ”€ โ”€ โ”€ โ”€ โ”˜
 /\_/\                      โ•‘                               โ”‚
( o.o ) โ—€โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•                               โ”‚ send msg to all GS subs
 > ^ <                                                      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚      โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”ผ โ”€ โ”€ โ”
   โ”‚     โ”‚Main region                                                               โ”‚
   โ”‚                                                                                โ”‚     โ”‚
   โ”‚     โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”               โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”
   โ”‚         โ”‚โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”     send     โ”‚โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”           โ”‚โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ” โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ–ถโ””โ”คโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ” channel msg โ””โ”คโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”          โ””โ”คโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”
              โ””โ”ค    Webapp    โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ–ถ Admin Server โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ–ถChannel Serverโ”‚โ”‚
         โ”‚     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜               โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  route to  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚ store                                  channel                   โ”‚
         โ”‚             โ–ผ message                                server
                   โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘                                                               โ”‚
         โ”‚         โ–‘Vitessโ–‘
                   โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘                                                               โ”‚
         โ”‚
          โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”˜

Features

Supporting features

Draw tools:

  • Rectangle
  • Text
  • Line

Shape formats:

  • Fill
  • Border
  • Line start/end heads
  • Rounded corner

Editing:

  • Infinity scroll, no limitation for 4 directions
  • Auto save
  • Multiple projects
  • Copy / Cut / Paste / Duplicate
  • Move and change shapes' order
  • Dark mode
  • Line snapping: connect a line to a shape

Exporting:

  • Export selected shapes
  • Copy as text (cmd + shift + C or ctrl + shift + C)

Future features

Grouping

Group is added as a kind of shape but until now, there are no features that are applying Group except for rendering. Besides, the shape tool does not work with groups or multiple selected shapes. This project aims to make the tool able to work with Group and also add a Shape tree on the left of the tool.

Paint tool

Currently, Mono Sketch provides only three tools: Rectangle, Text, and Line. One tool which is also used frequently when drawing with ASCII is paint - draw with a specific character. This project also aims for providing richer options of Fill, Border, Line Start/End head

Sharing

Allow opening files from a url, share to gist, etc.

Contributing

This project is fully written with KotlinJS and SASS for CSS. There is no environment setup required except for Java.

To run debug:

./gradlew browserDevelopmentRun --continuous -Dorg.gradle.parallel=false

Or with production configuration

./gradlew browserProductionRun --continuous -Dorg.gradle.parallel=false
  • -Dorg.gradle.parallel=false is a workaround for a bug on KotlinJS build with --continuous.

Run with Python

This is an alternative to browserDevelopmentRun for running the app for development (sometimes, the gradle does not reload when the code is updated).

Requirements: Pipenv.

pipenv install
pipenv run dev