Skip to content

ChrisWiles/githubViewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Currently query for new repos doesn't work, GitHub changed their GraphQL API and the app hasn't been updated

Github Viewer

Requires Early Access to use GitHub’s GraphQL

Early Access

Uses Apollo to connect the client with GitHub’s GraphQL. The queries are saved into the redux store and the UI is rendered with React and Material UI components.

See Live Github Viewer

User Story

  • Users should be able to type a github login and get a list of repositories

  • Select a repo to see info and commit history

  • Each of the commits should display the author’s name and the commit message as well as how long ago it occurred

  • Clicking the author’s name should go to a separate page that displays the authors info

Tech

  • Apollo Client - A simple caching client for any GraphQL server and UI framework built on top of Redux
  • GitHub GraphQL API - API documentation
  • GraphQL - GraphQL is a new way to think about building and querying APIs. Rather than construct several REST requests to fetch data that you're interested in, you can often make a single call to fetch the information you need.
  • Material UI - Google's material design UI components built with React.
  • React Router - React Router is a complete routing library for React. React Router keeps your UI in sync with the URL
  • React - Open-source JavaScript library providing a view for data rendered as HTML
  • Redux-Thunk - The easiest way to write async action creators
  • Redux - Predictable state container for JavaScript apps
  • moment - Parse, validate, manipulate, and display dates in JavaScript.

Installation

Requires Node.js v6+ to run.

Install the dependencies and devDependencies and start the server.

$ npm install
$ npm start

ToDo

  • Add Pagination

Imgur

  |   createApolloClient.js
  |   darkTheme.js
  |   index.css
  |   index.js
  |   material_ui_raw_theme_file.jsx
  |   reactLinksData.js
  |   README.md
  |   routes.js
  |   
  +---actionCreators
  |       contactSnackbarActions.js
  |       loginActions.js
  |       ownerActions.js
  |       repoActions.js
  |       UIActions.js
  |       
  +---components
  |       App.jsx
  |       CommitsList.jsx
  |       ContactSnackbar.jsx
  |       FollowList.jsx
  |       GitHubIcon.jsx
  |       Login.jsx
  |       NavBar.jsx
  |       Organizations.jsx
  |       OwnerContent.jsx
  |       OwnerPage.jsx
  |       RepositoryPage.jsx
  |       SearchBar.jsx
  |       SlideDrawer.jsx
  |       SlideDrawerMenu.jsx
  |       
  +---constants
  |       actionTypes.js
  |       
  +---containers
  |       SmartApp.js
  |       SmartOwnerPage.js
  |       SmartRepositoryPage.js
  |       SmartSearchBar.js
  |       
  +---queries
  |       index.js
  |       
  \---reducers
        contactSnackbarReducer.js
        index.js
        loginReducer.js
        ownerReducer.js
        repoReducer.js
        UIReducer.js

Releases

No releases published

Packages

No packages published

Languages