Git Product home page Git Product logo

skein's People

Contributors

tlein avatar

Watchers

 avatar  avatar  avatar  avatar

skein's Issues

Create a shell electron app that is itself a local webserver to interface with the core angular web app

Instead of having the core application be an angular app served via Electron, we will have it be a traditional web angular application which will be spawned by Electron. Electron will interface with this locally running web server via Get/Post requests. The reasons for this is two-fold:

  1. Separate out the core application into a web app which which can be accessed via Electron and then in the future the core Spool application could be moved into a remote web app if desired.
  2. Angular is traditionally thought of as making web apps, supporting special build configurations to get it working with Electron adds difficulty when attempting to follow recommended build process by the Angular team.

Rename to Skein

Skein is a better name for a couple of different reasons:

  • A skein of yarn is a type of ball of yarn, since this project aims to be an alternative to the Yarn Dialogue Language/Editor it would be more fitting.
  • A skein is also a formation of flying geese/ducks, which fits the classic ild-games duck based naming convention.

Tricky places that need to be checked:

  • Issues
  • Commit History
  • Code Climate
  • Travis CI

Configure code coverage to include all sources, not just files that are touched by a unit test

Angular code coverage testing is done via ng test --code-coverage. This uses istanbul under the hood by angular-cli to run code coverage checks. However, by default this will only cover source files that are covered by unit tests. This turns the code coverage check into a not very helpful metric, as we are only getting "What percentage of code paths weren't hit that could have been hit based on your existing unit tests" instead of "What percentage of your codebase isn't unit tested".

Implement undo/redo for all state changes

Using redux for managing the application state, have undo/redo be done via a top level reducer so all changes can be tracked and have undo/redo actions easily done on them.

Write a contributing guidelines file

Formatting

  • 4 spaces as tab
  • TypeScript type colons hug the identifier, not the type
  • Open curly brackets are on the same line
  • Must always use curly brackets around if/while/for/etc...
  • All private members (variables, functions, get/set) must begin with an underscore (_)
  • Variables and functions are camelCase
  • const variable names are SCREAMING_CASE
  • Must pass all linter formatting checks

Writing Issues

  • Describe what is the problem
  • Provide a relevant sample code demonstrating the problem if necessary

Opening Pull Requests

  • Unit test all new functionality
  • E2E test when appropriate
  • Follow PR description format as they are used as the squash commit for the PR

Suppress Code Climate's code maintainability concerns in duplicate configuration files used by Travis CI

Example: karma.conf.js is the normal configuration file for karma testing setup, however we want a different experience in running ng test by a developer than when Travis CI runs it. Specifically, in this case, we want to turn off watches in Travis CI so it doesn't hang while running tests. This is accomplished by having a near identical configuration file that gets used by Travis instead of the normal karma.conf.js file. Code Climate doesn't like this and knocks down our maintainability score for it.

Implement skeleton as a traditional web server angular application

Originally, the plan was to create an electron based angular application, but now the decision is to move to a traditional web server application that is spawned via an electron application and then communicated with via Get/Post requests to local web server. This is explained more in #8 .

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.