ChrisWiles / githubViewer

A React/Redux UI consuming the GitHub GraphQL API

Home Page:https://chriswiles.github.io/githubViewer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

A React/Redux UI consuming the GitHub GraphQL API

https://chriswiles.github.io/githubViewer


Languages

Language:JavaScript 98.5%Language:CSS 0.8%Language:HTML 0.6%