Skip to content

nielskrijger/gitstat-web

Repository files navigation

gitstat-web

This repository contains the source code of the gitstat.com website.

If you're looking to generate the JSON git logfile go here instead.

Development

Simply run:

$ npm install
$ npm run dev

The website will be available at http://localhost:1234

Todo

See the Kanban board here.

FAQ

Is the data kept private?

Yes. The gitstat.com website runs within your browser and doesn't store the logfile remotely or even locally. As a result if you refresh the page you'll have to submit the logfile again.

The only data that is stored within your browser are the config settings.

I miss feature X or found a bug

If you found a bug or have a feature suggestion, please open an issue here. Issues/features related to the website should be posted in the gitstat repository.

Can I contribute?

Yes! Please open a PR. If you want to do significant work I'd recommend opening an issue first, share some thoughts before you invest a lot of your time.

Will you commercialize gitstat.com?

No. As long as there are no significant costs involved in running the website I won't be looking for any type of funding. Additionally the sourcecode is open-source so anyone can fork and setup their own if they feel like it.

Why did you use chart.js instead of X

I tried several chart libraries (also React-specific ones) and I found Chart.js the most performant with larger datasets while at the same time providing a great out-of-the-box setup.

There are definitely things I don't like about it and I did fine a couple of bugs, but in the end I value performance and features more.

Why no redux/sagas/moby/...?

I tend to go for the simplest solution possible. I was intrigued with the new out-of-the-box reducer from React so I tried managing state within the context manually. Not sure if I'm particularly happy with the setup now, but it'll do.

Where are the tests?

Usually I focus heavily on automated tests but most of my hobby projects never see the light of day. In this case I focused on pushing the project above all else.

Why is there so much computation in the front-end?

There is no backend API, only a CLI tool to generate the git logfile. The gitstat CLI tool is intended to gather the minimum amount of data; any data that can be derived is excluded from its JSON output. As a result the front-end computes derived data within Extended<Type> objects.