Code Monkey home page Code Monkey logo

ghost's People

Contributors

dependabot[bot] avatar l4b0mb4 avatar liuxh0 avatar mka-2016 avatar n3ol4n avatar tamasrusz avatar thomasam97 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

l4b0mb4 liuxh0

ghost's Issues

Add a License

There doesn't appear to be a license attached to the project yet. If one has already been selected it should be added to the root folder as LICENSE.txt or similar. There wasn't enough information on the goals of the project for me to suggest a specific license, but here are a couple good resources to help with the decision process:

https://opensource.org/licenses
https://choosealicense.com/

Why is this important? Without a license the project has zero control over how the code is used, modified, named, in the future, and it may be difficult to assert those rights in the future if the project chooses to change. Also, a license can be used to express that there are no warranties that come with the code, which could help guard against liability issues should someone use the code. Even if the project doesn't plan to enforce any rules about the work, a lack of a license could make others wary to use it since it is unclear what the implications could be.

Summarize numbers in a folder

A kind of browser would be nice where we start at the root and we can go deeper and deeper.

At any level the statistics should be a sum of every sub-folders' and files' stats.

Summarise statistics from renamed files

Files can get renamed in the development process. These changes are logged in their git history and thus are shown that way in the tables {oldfilename => newfilename}.
Suggestion: identify and summarize these files into one entry and list the current name in the table.

Sorting the table a second time results in row "jumps"

After the table is rendered, sorting leads to row-switches in the table.

Steps to reproduce: open a repo and sort twice by the same column
Expected behaviour: the order of rows should not flip
Actual behaviour: entries switch rows

Add a .vscode config

I guess this project is developed with VS Code. If that´s correct, one might add a .vscode folder + config with given formatting standards. This might prevent e.g. auto-formatting from changing single to double quotes

Initalize ADRs

ADR

  • ADD ADR #29
  • ADD semantic versioning #35
  • ADD eslint #34
  • ADD testing via example-repository #33
  • ADD electron framework #32
  • ADD setting project structure #31
  • ADD standalone app #30

Window resizing

In its current state, the table will use all given space. If the window gets resized or if the table content exceeds the given windowsize, the content doesn't break lines.
Suggestion: A more responsive behaviour for the table.

Opening the same repository leads to performance degradation and wrong statistics

While opening a repo for the first time runs fine, opening the same repo a second time will cause the process to slow down and render wrong entries (date is unknown for example).

Steps to reproduce: load the same repo twice
Expected behaviour: both times should show the same tables and be equally fast
Real behaviour: the second time is slower and shows wrong entries

Suggestion: Descending Order on initial load

I would highly recommend sorting the initial load of the repository stats in descending order of occurances.

With this, the user will see the files at top, that have the highest occurance statistik and are thus more likely to be refactored.

Filtering filetypes with statistic-irrelevant content

In the current state, Ghost logs every filetype and shows that in the table. This includes files like package.json or localization, that users may or may not find useful.
Suggestion: adding some kind of filteroption for the table to exclude filetypes or folders

Sorting in reverse order

In the current state, Ghost can sort the tablecolumns in descending alphabetical or numeralorders.
Suggestion: Sorting in ascending order

Travis - Linux Chrome driver doesn't start

The Linux jobs fail due to the above mentioned error
Copied error message:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] test: npm run build &&mocha --exit
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/travis/.npm/_logs/2019-07-29T08_43_49_381Z-debug.log
The command "if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then xvfb-run npm run test; else npm run test; fi" exited with 1.

bugfix: sorting tests failing

The tests for sorting the table are failing, due to changes in the mocked showOpenDialog reference.
This was introduced in pull request #60.

Filter or search capability

A lot of entries for the tables can get very confusing. But sometimes, a user only wants to look for statistics in certain in certain filetypes.

custom menu

How about replacing the menu with a custom one (, ditch the classic (File) (Edit) (View) (Window) (Help))? I'd like to use it for the 'save-parameter' branch to implement two submenus: [save parameters] and [reset parameters]. With this method the buttons don't have to occupy screenspace but could still be accessed with ease in a few clicks and via custom short-cuts.

Feel free to add menu suggestions as a comment. Please go by (menu[submenu][submenu])

My Repositories Screen

I think we need a "my repos"-screen, where you can set the current repo as well as adding a new repo.

Maybe via a dropdown selector and a button to add the currently open repo to the list

File history details

Additional information about the file and its history would be useful.
Suggestion: add click-event on every fileentry in the table, that returns a new window with the git log of that file.

exclude files from travis

if it is possible to exclude files from travis. e.g. a readme update is currently beeing checked by travis.

Broken Help Button

When running the newest release of ghost (1.2.0), the page connected to the help button is empty.

Improvement: Maybe add cache to travis again

Think about adding this back to the travis.yaml

cache:
  yarn: true
  directories:
    - $HOME/.cache/electron
    - $HOME/.cache/electron-builder
    - $HOME/.npm/_prebuilds

before_cache:
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then rm -rf $HOME/.cache/electron-builder/wine; fi

Improve Reload

We were not able to use electron-reloader. Think about a better way to reload (currently it restarts the app on build)

Jump back to the top

A long table can result in quite a lot of scrolling, and again some scrolling to get back to the top to do another analyse.
Suggestion: A way to jump back to the "open repo"-button

Add CI for automated Testing

To further improve code quality and to make development and reviewing pullrequests easier, we will implement an automated testing pipeline with Travis

Proposal: Better development experience

I strongly recommend updating the babel-config (.babelrc). To something like this:

{
  "presets": ["@babel/preset-env","@babel/preset-react"],
  "plugins": [
    "@babel/plugin-proposal-class-properties"
  ]
}

This will allow you to setting class-properties outside the constructor

class Test{
myValue="1"
}

And also adds the possibility to use arrow-functions instead of bind(this).
Example:

class Test{

    onInputChange=(event)=>{
        console.log(this); 
        // this will always be the instance of the
        // class because arrow functions get 
        // transpieled to function.bind(this)
    }

    render(){
        return (<div>
            <input
            onChange={this.onInputChange}/>
        </div>)
    }
}

(If performance is a problem, dont use arrow-functions inline inside the render function)

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.