Giter VIP home page Giter VIP logo

vincent-van-git's Introduction

Vincent van Git

Use your GitHub contributions graph as a canvas!

Ever questioned the existence of the GitHub contributions graph? Looked at it and thought "What does this tell anyone? I work too much? I work too little? Less commits mean less quality work?".

Do you get contribution graph envy? Let Vincent help you!

Vincent van Git is an app for using your GitHub contributions graph as a canvas.

Usage

  1. Create an empty GitHub repository.
  2. Visit Vincent.
  3. Configure your settings (GitHub username, empty repository name, repository branch).
  4. Draw the desired image. Left mouse to draw, right mouse to erase. Every cell can be four shades of green.
  5. Download the shell script.
  6. Run the script!

⚠️ Note ⚠️ Avoid generating the script if your profile already has a drawing on it. Delete that repository first. If you don't you'll generate many thousands of commits and it can take some time to run that script. Also, the image might not come out how you expect.

⚠️ Note ⚠️ Ensure that the branch defined with "Vincent van Git" matches the default initialisation branch for your local git. init.defaultbranch under your global git config.

git config --global --list
# Check init.defaultbranch

Why?

This is a project I've wanted to build for some time but wasn't sure how to go about it. I used gitfiti for a long time to draw onto my graph. The issue for me? There was no GUI. Creating new images was a process of mapping an Array of nested Array. I could've created a tool to generate that Array for me. But, if I'm going that far, I may as well see if I can build the whole thing. That tool also relied on you entering information into the CLI each time. I wanted to create something accessible that would make it easy for me to create new images.

To summarize, I built a tool to solve a problem for me. And you might enjoy using it too!

Also, why not? It kinda sucks when people question people for doing things they want to. I've learned a bunch from building this project. It's also given me the opportunity to try a variety of different things out. This app actually started as an electron-based app.

Examples

Hire me message on graph Graph blocked out Random images on graph Bear codes image on graph

How?

Vincent van Git works by pushing empty commits to an empty GitHub repository. As a user, you draw the image you want on the grid. This equates to an Array of numbers that are either 0, 1, 2, 3, or 4. After configuring your settings, you are able to download the shell script.

Vincent makes checks using a serverless function and gets a commit multiplier. The check consists of making sure the settings are valid. That means that the username exists as does the repository. Also, the repository must be empty. If the checks pass, the function grabs the highest amount of commits per day for the username. The front end uses this to generate a shell script that will commit empty commits to a local repository.

Running the script will create a temporary repo with all the commits and push this for you.

Wait. Be patient. If there are a lot of commits, they take a few minutes to appear on your profile. But, that's it! They're there!

Under the hood

  • ReactJS
  • Netlify Serverless Functions
  • Tone.js
  • react-hook-form
  • cheerio
  • jsZip
  • GreenSock
  • luxon
  • Parcel
  • Stylus
  • Pug

Development

The project uses Netlify functions. To run the project use netlify-cli.

Install the dependencies with yarn and run netlify dev. This will give you access to the serverless functions locally. If you're working on something that doesn't concern script generation, use yarn dev:web.

License

MIT


Made with ✨ by @jh3y 2020

vincent-van-git's People

Contributors

jh3y avatar lunatichacker avatar friederbluemle avatar

Stargazers

Will Lynas avatar Jonathan Porter avatar Davey van den Bogaard avatar Webia1 avatar Adelina D. avatar Sergio Mathias Curbelo avatar Fernando Zhu avatar Guilherme Schwierske avatar Jeff Braun avatar Roman avatar Avirup Ghosh avatar  avatar Sam Herniman avatar Loris Frail avatar Parthy avatar Gabriel Trzimajewski avatar Matt Whalley avatar  avatar Nick Maietta avatar One avatar Shimanta Krishna Bhuyan avatar Paskkal.IO avatar J. Marcelo avatar  avatar Md. Asif Hossain avatar Sean McNary avatar  avatar Gian avatar Ragul Raj avatar Min Maung Maung / Neon avatar Zhikai Tang avatar  avatar  avatar Ronny Hidayat avatar Raveen Kumar avatar Derek Fodeke Rodgers avatar Henry avatar Clare So avatar Jingchao avatar David Higginbotham avatar Warlei Ramos avatar Chase avatar Nicholas avatar Nisarga Adhikary avatar  avatar  avatar Gunjan Lunkad avatar Adrián Gámez avatar Ríchard Lucas avatar  avatar Kauê Fraga Rodrigues avatar Shamez M avatar  avatar (老外) doug avatar Matheus Lima avatar Kiryl Karetnikau avatar Luiz Otavio avatar Célio avatar Mikko Vänskä avatar MURAGEH avatar Deysi Lopes avatar 0xb avatar 长寿 avatar Ruan Petterson avatar Manuel avatar Samuel Laurindo avatar Finhawk avatar Eduardo de Sá avatar José Nunes avatar Anderson Porto avatar Alexandre Silva  avatar Idan Entin avatar Yasin Aydın avatar Szymon Borda avatar bunee avatar Guillaume Schurck avatar Serhii Samoilenko avatar Indra Kusuma avatar  avatar Niels Masdorp avatar Erko Bridee avatar Florian Feiler avatar Igor Bedesqui avatar pankace avatar Sayan Mondal avatar Marta Paz avatar Welkson Ramos avatar Oğuz Kağan ER avatar Vince Tok avatar Luis Felipe Francisco avatar Sergei Vedischev avatar                      Anurag Shukla avatar Christopher avatar Aaron Meese avatar Eric Hartman avatar Eduard avatar CyberDJ avatar  avatar Dika avatar Carter Tran avatar

Watchers

James Cloos avatar  avatar Nick Maietta avatar  avatar Md. Sakib Hassan Rimon avatar Elva Hadi Prajatama avatar Mr_ech001 avatar

vincent-van-git's Issues

Feature Request: Add Paint Brush Selection

Add the ability to explicitly choose the strength of brush being used ✨

Using a dropdown perhaps? Have the default as incremental? That signals the current behavior where you draw over dots to increase their strength.

ʕ •ᴥ•ʔ

Can't create empty repo because it is not empty after first commit

I need help creating an empty repo. I am faced with the problem branch does not exist. The only way I could find to create a branch is to commit something to the repo, which makes it - you guessed it - not empty.

I would believe you probably have a workaround for this, but I couldn't find it.

Thanks in advance

Docs: Add Github Links to Site

Give the app a little more branding instead of being so "plain". Maybe drop Vincent somewhere and link to the Github repo somewhere 🙏

┬┴┬┴┤•ᴥ•ʔ├┬┴┬┴

Getting error when trying to push commits

cause of the error:
git push -u origin main

error:

error: src refspec main does not match any
error: failed to push some refs to 'https:/...'

can be easily fixed by adding git branch -M main to the script

Repository is not empty

I am getting the "Repository is not empty" error when downloading the shell script, despite the new repository being empty.

Future of core.BuiltInFSMonitor in Git

Git seems to warn with this (check below) when using the generated scripts. If this occurs due to the generated commands and not internally by Git itself, I'd recommend using an alternative.

image

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.