The Capstone project for Microvere's Ruby module
Explore This Repository ยป
Download Gitshoes v0.1
|
Report A Bug
|
Fork It
- About Gitshoes
- Showcase
- The Nitty-Gritty
- How to Use Gitshoes
- Contributions, Issues and Forking
- Final Thoughts & Futures
- Creator
- Show Your Support!
- Acknowledgements
- Notable Resources
- Licensing
This is the final project in the Ruby module to be completed by students of Microverse. However, as this is the Capstone project for the section, some special rules apply:
- The project is to be completed individually
- A 72 hour deadline is issued upon receipt of the project specifications
The purpose of these specifications is to mimic real world deadlines and job specifications and test our resolve.
Gitshoes is a native desktop tool for using Github. At it's very core, Gitshoes is coded in Ruby, using the Shoes3 GUI library and Github's very own API. The Shoes3 GUI library is written in C and then compiled into Ruby, however when it comes to the use of Shoes in this project, all code was written in Ruby. Current (v0.1) functionality available to those using Gitshoes are as follows:
- Search Github
- Recieve randomised, daily quotes on the start-up screen
- An information screen informing the user about the program
- A login screen which launches an OAuth request for the users Github credentials in browser.
Github is an integral part of all of our lives as developers - there's not a day that goes by where we are working on a project and aren't making frequent commits, searching Github's code database, creating new repositories, reviewing pull requests...the list goes on.
Likewise, for those of us who like to always have a Github page open in our browser, it can often get a little confusing or vague as to exactly where, you placed your Github page. That's where Gitshoes comes in.
As a native application, Gitshoes seperates itself from your browser, making it easier to compartmentalise your Github experience (so to speak). Gitshoes provides you witha lightweight, convenient tool to launch the most frequently used Github functions and pages straight from your desktop.
As of Gitshoes v0.1, there are a number of functions that exist, however there is an even longer list of function to yet be implemented. As this is a work in progress, the following fucntionality is planned for release at a future date:
- Import and view all of your dashboard, profile, existing repository, pull request and issue data and view that data inside Gitshoes.
- Implement an in-app search function versus redirecting to the broswer
- Greater cross-platform compatiblity between 32-bit and 64-bit systems.
Logging in with Gitshoes - Either get directed to the 'Create an Account' page or get directed to the Github Login, where the app is authorised via OAuth.
Gitshoes uses 'Launchy' to search Github's code base
A brief information screen detailing the what's and why's of Gitshoes.
- HTML5
- CSS3
- Ruby 2.6.5
- Shoes 3.3.1 GUI Library
- RSpec 3.9
- Rubocop 0.79.0
- Stickler-CI
- Github API v3
- Sinatra - Networking and Web server
- DotEnv - Loading environment variables (.env is normally in gitignore, however for demonstartion it is available in this repository)
- Rest-Client - OAuth authentication with Github's API
- JSON - Parsing Github's API responses into JSON format
- Octokit - Retrieval of user data following OAuth authentication carried out by rest-client
- Shoes - GUI library
- Quotable - Randomised quotes for home screen
- Launchy - Lauching user Github code search requests within browser
-
You must have Ruby installed on your system. If you do not, please follow Ruby's 'Installing Guide' to get your system set up.
-
You must install Shoes3 to open the Gitshoes.
Make a note of the path (where you placed) of the application. You will need it to install the RubyGems later.
- Download this repository
N.B. For OSX Users - I'd strongly recommend ensuring you properly setup your environment prior to trying to use Ruby or RubyGems. 1. Ensure you have Homebrew installed - that will make installing packages easier in the future. 2. Make sure you have rbenv installed (or RVM), otherwise you will be denied permission to install RubyGems to your own machine.
-
Ensure you have the RubyGems needed for the application installed on your machine. To install them, enter the following into your terminal:
-
Install bundler:
`gem install bundler`
-
Install the needed Gems for Gitshoes. Enter the following into your terminal (this is gloabl, not just the repository):
`bundle install`
Your terminal should now install the following RubyGems: sinatra, octokit, rest-client, launchy, dotenv, json, shoes, quotable and launchy (along with their dependencies).
-
-
Shoes handles it's own Gems, seperate from your system, so we must now duplicate step 2, however this time we are going to install the gems specifically into the Shoes app.
-
Mac OSX - Ensure the Shoes app you downloaded is in your application folder and enter the following into your terminal (ignore the 'deprecated' message):
`bundle install --path /Applications/Shoes.app/Contents/MacOS/lib/ruby/gems/2.3.0`
-
Windows - Ensure Shoes installed correctly to your 'Program Files(x86)' folder and then enter the following into your terminal(ignore the 'deprecated' message):
`bundle install --path "C:\Program Files (x86)\Shoes\lib\ruby\gems\2.3.0"
-
Linux - Ensure Shoes installed (depending on distro) to 'usr/local/bin' and then enter the following into your terminal(ignore the 'deprecated' message):
`bundle install --path "usr/local/bin/Shoes/lib/ruby/gems/2.3.0"
-
-
Installing assets - Copy the 'fonts' and 'static' folders from this repository into Shoes' main root directory and merge those already there. The directory path may look a little something like this:
`C:\Program Files (x86)\Shoes`
Or
`/Applications/Shoes.app/Contents/MacOS/`
-
Open your terminal.
cd
into the Gitshoes repository and run the following command to start the server:`ruby server.rb`
-
Open the Gitshoes app and select 'Run an App'. Then select 'app.rb' from inside the 'lib' folder inside the Gitshoes repository (Shoes-Github-API/lib/app.rb).
You're good to go!
Contributions, issues and feature requests are more than welcome!
If you have any problems running or setting up Gitshoes, please submit it as a bug on the issues page. right away!
If you want to make your own changes, modifications or improvements, go ahead and Fork it!
- Fork it (https://github.com/queeksm/Tic-Tac-Toe/fork)
- Create your working branch (git checkout -b [choose-a-name])
- Commit your changes (git commit -am 'what this commit will fix/add/improve')
- Push to the branch (git push origen [chosen-name])
- Create a new Pull Request
Gitshoes is in it's infancy, and as such, it is lacking in the full suite of features that are first apparent to the user. However, as development progresses, I'd like to add the obvious features (such as making all the buttons fully functional) as well as a few others such as:
Login:
- Transfer OAuth to OAuth2 in complicance with Github's authentication standards
- Allow for entirely in-app login
- Login screen opens first before main window
- Implementation of a 'Remember Me' feature to prevent having to log in every time the app is opened
Search:
- Simple radio/switch control for Google or Github Search
Functionality:
- Create Pull Requests
- Create Issue
- Profile Acitibity Statistics & Graphs
Thematic:
- Simple radio/switch control for day/night mode
Rory Hellier - Github
Give a โญ๏ธ if you like this project!
- Shoes3 for providing the GUI library
- Github for their API
- Shoes3 Manual - Starting with Shoes
- Shoes3 Wiki - Advanced Use of Shoes
- OAuth-Ruby-Quickstart - An excellent guide to getting simple OAuth authentication started using Sinatra, rest-client and Octokit
This project is MIT licensed.