Giter Club home page Giter Club logo

monosketch's Introduction

License Kotlin SASS GitHub release (with filter) Twitter Follow

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.

        +10-15V                0,047R                                        
       ●─────────○───────○─░░░░░─○─○─────────○────○─────╮                    
    +  │         │       │       │ │         │    │     │                    
    ─═════─      │       │       │ │         │    │     │                    
    ─═════─    ──┼──     │       │╭┴╮        │    │     │                    
    ─═════─     ─┼─      │       ││ │ 2k2    │    │     │                    
    -  │      470│ +     │       ││ │        │    │     │                    
       │       uF│       ╰──╮    │╰┬╯       ╭┴╮   │     │                    
       └─────────│          │    │ │     1k │ │   │     ▽ LED                
                 │         6│   7│ │8       │ │   │     ┬                    
              ───┴───    ╭──┴────┴─┴─╮      ╰┬╯   │     │                    
               ─═══─     │           │1      │  │ / BC  │                    
                 ─       │           ├───────○──┤/  547 │                    
                GND      │           │       │  │ ▶     │                    
                         │           │      ╭┴╮   │     │                    
               ╭─────────┤           │  220R│ │   ○───┤├┘  IRF9Z34           
               │         │           │      │ │   │   │├─▶                   
               │         │  MC34063  │      ╰┬╯   │   │├─┐ BYV29       -12V6 
               │         │           │       │    │      ○──┤◀─○────○───X OUT
             - │ +       │           │2      ╰────╯      │     │    │        
6000 micro ────┴────     │           ├──○                C│    │   ─── 470   
Farad, 40V ─ ─ ┬ ─ ─     │           │ GND               C│    │   ███  uF   
Capacitor      │         │           │3                  C│    │    │\       
               │         │           ├────────┤├╮        │     │   GND       
               │         ╰─────┬───┬─╯          │       GND    │             
               │              5│  4│            │              │             
               │               │   ╰────────────○──────────────│             
               │               │                               │             
               ╰───────────────●─────/\/\/─────────○────░░░░░──╯             
                                     2k            │         1k0             
                                                  ╭┴╮                        
                                                  │ │5k6   3k3               
                                                  │ │in Serie                
                                                  ╰┬╯                        
                                                   │                         
                                                  GND                        

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
  • Autosave
  • 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 that is also used frequently when drawing with ASCII is paint - draw with a specific character. This project also aims to provide 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

monosketch's People

Contributors

tuanchauict avatar tunah2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

monosketch's Issues

Group multiple shapes command

Group/ungroup function is ready for shape manager, but there is no command for grouping and ungrouping as well as testing the other features work well with group shape

Create a CI for running unit test when creating a PR

This is still in the early stage of the project, and APIs are changed frequently. Therefore, when creating a new class, we usually also need to change some APIs on the current existing APIs.
Personally, I focus on new APIs but not running test old APIs while developing (bad habit), therefore, we need to create a CI to detect broken APIs due to the change.

Simplify shape update command

Currently, we are using Extra for updating other attributes other than bound.
This makes primary values like text for Text shape or points for Line shape become a secondary resident.

ktlint

Fix lint for Kotlin files and add new job for checking lint

Inline edit text

Display edit text box at the same position to the shape or with arrow

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.