Giter Site home page Giter Site logo

jlord / git-it-electron Goto Github PK

View Code? Open in Web Editor NEW
4.6K 190.0 1.2K 78.53 MB

:computer: :mortar_board: Git-it is a (Mac, Win, Linux) Desktop App for Learning Git and GitHub

License: BSD 2-Clause "Simplified" License

HTML 33.42% JavaScript 0.41% CSS 0.13% Batchfile 0.01% Shell 1.57% Perl 49.73% Tcl 6.75% Python 0.38% AL 0.04% Raku 6.70% Prolog 0.19% Makefile 0.01% PostScript 0.19% Roff 0.01% Awk 0.01% Smalltalk 0.08% Emacs Lisp 0.09% NewLisp 0.11% Ruby 0.11% SystemVerilog 0.08%

git-it-electron's Introduction

Git-it (Desktop App)

Build Status js-standard-style

screen shot 2016-04-17 at 10 37 55 pm Git-it is a desktop (Mac, Windows and Linux) app that teaches you how to use Git and GitHub on the command line.

🚩The app includes translations in these languages: Spanish (ES), Spanish (CO), French, Portugese (BR), Ukrainian, Traditional Chinese, Japanese, and Korean. 🚩

Previously it ran in terminal (the command line application) with a guide online but now the guide is the app and it runs on your desktop on its own ✨ This will be the only maintained version going forward ➡️.


Hello future Forkers, Branchers and Pull Requesters!

This application contains challenges for learning Git and GitHub—by using real Git and GitHub, not emulators. You'll be learning the awesome (and not so scary) command line and GitHub which means when you finish all of the challenges you'll have real repositories on your GitHub account and green squares on your contribution chart.

contributions

What to Install

You will need this app, Git-it as well as a text editor. You'll also of course need Git and the first challenge in Git-it helps you get that set up. But if you want to get a head start, go for it! You'll continue to use Git and your text editor throughout your bright social coding future.

As a part of the challenges you'll also create a (free) account on GitHub. If you've already got one, high-five!

Git

We recommend installing GitHub Desktop (free) because it installs Git in the most consistent way across supported operating systems (Windows and Mac). We won't use the app itself in the challenges (but it is really useful once you get going in Git!), just the Git that it install for you.

Note—If you're using Windows, you should use the Git Shell app as your terminal—it is installed with GitHub Desktop. In Mac and Linux you can use the app Terminal, which is already on your computer.

Text Editor

I'm quite partial (I'm on the team!) but Atom is a great text editor (also free) and it is built on Electron.js, just like Git-it. Visit the website and download the version for your operating system. Sublime, Microsoft VS Code and Adobe Brackets are other options.

Git-it

You can view the releases section of this repository to find the download for your operating system. Click to download your version. Once it has downloaded to your default Downloads directory, unzip the folder and run the Git-it executable. The executables for Mac, Windows and Linux:

executables

  • Mac Right (control) click the Git-it icon, select Open and then Open again. You can drag the icon into your Applications directory if you want, but it's not required. If needed, more detailed installation instructions can be found in this issue.
  • Windows Double-click the executable.
  • Linux Double-click the executable. If the app isn't running, see this issue.

Get Started!

Open Git-it and click the button to begin the first challenge. Have your terminal and text editor open, too. Follow along with the instructions in each challenge and use the terminal or editor as instructed.

When you've completed the steps in a challenge click 'Verify'. Depending on the challenge you may need to also select the folder you did your work in for Git-it to verify.

Questions? Open an issue on this repository.

Want to contribute or build locally? See the contributing documentation


Tips For Getting Started

Code snippets often times look like $ some code-stuff --here. The dollar sign identifies the line as one a user would enter into the command line, but you don't actually include it when you type it into terminal. In this case, you'd actually just type some code-stuff --here.

Variables are indicated by <VARIABLENAME> in code snippets. When you actually use the line of code, replace <VARIABLENAME>, with your variable. For instance to make a new folder in terminal the format is, mkdir <FOLDERNAME>, so if you wanted to make a folder named 'octocat', you'd type: mkdir octocat.

Command line, terminal and bash all basically mean the same thing: the MS-DOS, Doogie Howser looking screen full of words and numbers. It's awesomely powerful and allows you to control your computer with text commands.

You can do a lot of things from your terminal like delete, rename, copy or create files and folders; run scripts and send things back and forth between servers (like the ones storing things on GitHub.com) and your computer (also a server!).

git-it-electron's People

Contributors

0x15f9 avatar anaisbetts avatar camilomontoyau avatar chen-j avatar david-dasilva avatar diegocasillas avatar elkuku avatar ionicabizau avatar jarekk78 avatar jlord avatar kohei-takata avatar komarnitskyi avatar lbragaglia avatar lizzhale avatar lubien avatar macmedia avatar martinheidegger avatar mgriffin avatar mirenbz avatar mofeing avatar muan avatar nallwhy avatar nedseb avatar schlenges avatar shiftkey avatar sonosotros avatar stdavis avatar vishal9950 avatar vongola12324 avatar zeke 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  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

git-it-electron's Issues

GitHub Enterprise ready

Hi there,

we're github enterprise users and would love to use git-it with our github enterprise server. Would it be possible to add such a setting ?

Cheers !
Eric

Reduce the Size of Portable Git

In Windows we need to use Portable Git but this adds about 80mb. Checkout the assets directory in the repo. Yikes 😱

Are there parts we can pull out to reduce the size? We're just spawning the Git CLI.

Note We've pulled it from the OS X and Linux release versions so they can be lighter 💨

Ship with Git English Language Pack?

For Git-it to work no matter what language people use with Git on their computer, Git-it needs to switch the lang to English when it runs. I think this works sometimes, but it doesn't if the user does't have the language pack on their system.

I really don't know what I'm talking about with this, anyone have any ideas?

What can we add to the app so that this always works:

process.env.LANG = 'en_US.UTF-8'

Select directory window appears under the git-it-electron window

  1. Click Select directory

    image

  2. The select directory window appears correctly (on the top).

  3. Click Cancel

  4. Click again Select directory

The select directory window appears under the git-it-electron window–while I expected to be on the top.

Not sure if this is reproducible on the other platforms. I'm running Ubuntu 15.04. 💫

Window installer

Hi,

Is there a windows installer available for this application?

Remembering state

Load completed state and selected directories/files. They should be saved to data.json

Build UI for Completed Status

Git-it the Electron app will need to design a way to show what challenges a user has completed.

screen shot 2015-05-08 at 9 33 21 pm
Completed statuses shown in Git-it the terminal app

Additionally:

  • A button to clear completed statuses

Save Directory

Since the user will be using the same directory for most of the challenges, we should save that so they don't have to re-select it every time.

Flatten node_modules

During the Tokyo Patchwork, we ran into an issue on one attendee's machine where they couldn't extract the zip file because of the Windows MAX_PATH issue.

The longest path in the zip file is 214 characters long. Since MAX_PATH on Windows is 260, this means extracting Git-it in a target directory which has a path longer than 46 characters will fail.

When we extracted the Git-it zip directly under the C:\, the extraction worked and the app runs.

Would it be possible to use something like npm-flatten to flatten the node_modules directories before building the Windows zip?

cc @shiftkey @jlord

Create Resources Page

It should be links to other guides and information. It's been vacant since Git-it first shipped 😭

Launch error on OS X 10.11.3

I get this error upon launch:

Uncaught Exception:
Error: Cannot find module 'electron'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:286:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Applications/Git-it.app/Contents/Resources/app/main.js:4:11)
    at Module._compile (module.js:430:26)
    at Object.Module._extensions..js (module.js:448:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Object.<anonymous> (/Applications/Git-it.app/Contents/Resources/atom.asar/browser/lib/init.js:108:10)

Build Verify UI Component

Previously the user ran git-it verify in terminal and was told, in terminal, whether they passed or failed the challenge. Now we'll do that via a button on a website. This needs design and wiring up (the clicking parts). The actual verifying code we can pull from the old Git-it.

screen shot 2015-05-08 at 9 39 47 pm
a verified challenge in Git-it the terminal app

Log Errors in Console for Easier Debugging for Users

When someone doesn't pass a check in a challenge there is a short message why. Sometimes this is enough to let the user know what they should fix in order to pass the challenge (there are some tips on the bottom related to errors too).

But sometimes it's still hard to know exactly why they are not passing the challenge and when they open the issue I usually go and see what git command that challenge is running and then ask them to run it and paste the output. We can eliminate all of that by logging errors into the console so that we just ask the user to open up dev tools and tell us what they see ✨

We can also add in the guide that they can open up the DevTools for more details on why they didn't pass.

Initially I'm thinking about a helper method for this so that we can have a nice legible error report. Maybe ascii art, too! Ah!

Refactor Challenge Complete/Incomplete

Standardize all the verifies to collect an array of sub-verifies and then when it is full trigger complete or incomplete and group what shows at what time together. Or something like that.

Open External Links Externally...

Make sure to have all links that aren't Git-it (that link to other, real websites) open a new browser window a la:

require('shell').openExternal('http://github.com/jlord/git-it-electron')

Emoji on Windows and Linux

So this is a bummer:

screen shot 2015-09-03 at 10 47 52 am

Windows is also not supporting the arrows: ⤷ but it is supporting ☞ ►

Linux is replacing emoji with ☺︎

So, we need a plan, should we keep emoji or replace it?

cc @muan

House Keeping

These are smaller bits that need to be considered at some point:

list can be edited/added to

  • File organization #45
  • Ship with fonts so that it isn't fetching from Google 76c960c
  • Supporting pages should use template with header/footer df0b85f

Other Things To Do

Not critical, but would be ✨

  • Remember directories #47
  • TESTS (Ok, pretty critical)
  • Refactor HTML & scripts for verify buttons. #55
  • Separate concerns correctly between helper.js and challenge-completed.js
  • Have the 'Get Started' button change to a 'Finish Where I Left Off' button depending on if they've completed a challenge or not.

[Ported Issue] Windows Capitalization Bug

This issue is being ported from jlord/git-it since it would still apply here, too.

There is a weird bug when going back and forth between Windows and Mac computers that makes a capitalized filename become 'modified' in Git when you haven't actually done anything to it.

I'm not sure exactly how to solve for this. There was a point when I had everything turned .toLowercase() and I believe that ran into a problem, though I don't remember what...

It's likely the culprit of:
🔗 https://github.com/jlord/git-it/issues/218
🔗 https://github.com/jlord/git-it/issues/195

UX: verifying----- feedfback

Let user know that we're still working.

In the challenge "GitHubbin", there are 3 checks, but the second checks uses GitHub API, and for some reasons it hanged (probably internet issues), and it wasn't clear that something "wasn't working", it seemed like the user passed the check(the first one) but the challenge wasn't marked as completed.

More ideal if:

  • Spinner?
  • Let people know exactly how many checks there are when we start checking, and fill in the result one by one.

Beautify

  • How completed challenges should look
  • How uncompleted challenges look
  • How errors look
  • App icons
  • Less website feel
  • How buttons look

What Next Page

When you complete Git-it there should be a 'What Next' type of page that points you directly to easy projects to do on GitHub. Ideas:

Language Content Updates

I'm keeping a running list here of text I'm updating in the English version that will need to be updated in the Traditional Chinese and Japanese versions as well.

I'm going to do a lot of text updates between now and getting Get-it out of beta so nothing should be updated just yet. I'll update this thread when the list is complete ✨

  • 👀 especially on changes to the GitHub UI 💻
  • afa435d

Can't spawn git on windows by default with cmd.exe

by default cmd.exe doesn't have git.exe in its PATH. it's really complicated to set the path on windows, so instead if we're on windows we should have people install Git for Windows and then use this instead:

exec('"' + p.join('C:', 'Program Files', 'Git', 'bin', 'git.exe') + '"', cb)

One caveat is it relies on them having a C: drive

All the code that does spawning will have to be updated to do if (os.platform === 'win32') {} to set the git cmd to the above value.

There might be a way override path when spawning on windows but I don't know how

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.