albertov / re-github-stargazers

A simple ReasonML React app which displays information from all repositories of a Github organization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

re-github-stargazers

This is a simple ReasonML application which displays information about an organization's Github repositories and their stargazers.

It was written primarily as en exercise to familiarise myself with the language and libraries.

Getting started

This should be buildable in any platform that can build the patched Ocaml compiler BuckleScript needs. If in doubt, you can build the development Docker container declared here.

If using Nix, you can install the compiler using this derivation:

nix-env -iA ocaml-bs -f nix/release.nix

You will also need to install binutils and gnumake

Run Project

yarn install
yarn start
# in another tab
yarn run webpack

After you see the webpack compilation succeed (the yarn run webpack step), open up build/index.html (no server needed!). Then modify whichever .re file in src and refresh the page to see the changes.

Run tests

yarn test

Build for Production

yarn run build
yarn run webpack:production

This will replace the development artifact build/index.js for an optimized version.

TODO

  • List all GitHub public repositories from an organization
  • For each repository display:
    • Repo full name, with link to the actual repo
    • License info
      • Embedded license info from repositories API response
      • Full license info from license_url endpoint?
    • Number of stargazers
  • Drill down to a repository's 20 first stargazers in a different panel
  • Display error message
    • If API is down
    • If organization is not found
  • Make page responsive
  • Bundle application with Webpack
  • Unit tests
    • Rendering tests
    • reducer tests

About

A simple ReasonML React app which displays information from all repositories of a Github organization

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:OCaml 86.0%Language:JavaScript 6.3%Language:CSS 3.1%Language:Nix 2.2%Language:Shell 1.0%Language:C++ 0.8%Language:HTML 0.6%