This project is a simple GitHub repository and commit browser for a given organization. The stack was initialized using create-react-app. Tests are written using jest and enzyme. The UI framework is the fantastic material-ui. Lastly, axios is implemented for communicating with the GitHub API.
Demo
Limitations
In an effort to limit the scope, this project uses local React state and the test coverage is fairly trivial.
In a production application, test coverage would be much more aggressive and API interactions would be properly mocked.
redux
or mobx
would likely be used for state management.
During development, a GitHub OAuth application was created for authenticated calls. This substantially raised
the rate limit and sped up development, but it isn't advisable to commit the Client Secret
. Anyway, please
be aware of rate limits because they are aggressive.
Features include:
- Auto-suggest during organization search
- A
localStorage
implementation of the chosen organization - Sorting by Popularity (Forks), Stars, and Open Issues
- A fancy panel for browsing commits :)
Note: Organization details and repos are intentionally missing from localStorage
. Arguably, the details could
be saved but the repos and commits are both fairly dynamic.
brew install yarn
yarn install
yarn start
yarn test