Coder Social home page Coder Social logo

gh-explorer's People

Contributors

francescocioria avatar giogonzo avatar nerder avatar

Watchers

 avatar

gh-explorer's Issues

Fix lint rrors

Description

I just fix some error that lint throw out.

create the app routes

requirements

  • the app should be organized in two routes (in terms of react-router):
    • one for the main view (list of results)
    • one for the detail view (details of each result/repo)

specs

  • just define an appropriate routes structure and put dummy placeholder content for each one
  • Create 2 routes
  • The second route accept params
  • Linking to the correct route and come back to home route

insert not found Page

Requirements

We need to add a 404 not found page, in order to give feedback for non existing resources

Specs

  • Build new route
  • Use NotFoundRoute

[main page] first iteration

requirements

scope of the iteration:

  • implement the page layout
    • nav bar
      • left: app name
      • center: search component
      • right: empty
    • results panel
      • should be a floating panel

sub-issues

  • main layout structure #8
  • implement NavBar #9
  • implement ResultsPanel #11

mockup

image

main layout structure

<- #7

requirements

The scope of this issue is to simply define the layout. No logic, style nor sub-components (like SearchBar or ResultsPanel should be implemented)

  • page should not scroll vertically (the scroll will be inside the ResultsPanel itself)
  • main content (future ResultsPanel will be inside it) is centered horizontally
  • main content should grow horizontally, but no higher than 1000 px
  • main content should grow vertically (we want it to fill the available vertical space)

for the mockup refer to #7

specs

[Details] Open a Modal when user click on Show More

<- #35

Requirements

Open a Modal box when the user click on Show More button, on the list. Fetch data from the api and let it close when user click out.

Specs

  • Use ModalManager and BasicModal from BRC
  • onDismiss go into the back route
  • Fetch data from the gh API

not found route is not working

description

  • default route is never shown

steps to reproduce

  • go to http://localhost:9090/#/dasa: not found route is not shown

search box value and onChange handling

requirements

  • currently, even though the top level App is the theoretical state owner for the search box value, it has no way of forcing it to a value different than what the input.value holds. This should be fixed
  • value/onChange handling can be simplified, at least at SearchBox level

specs

  • use linkState and componentWillReceiveProps

@nerder we should do this together

[display real data] Handle API errors and show them out

Requirements

You we get some errors that github API gives to you and show them to the user as a feedback

Specs

  • Catch the error into App.js and than propagate it since the ResultPanel.js
  • Show up the message and the status code

implement ResultsPanel

<- #7

requirements

  • fill all available space (constraints should be already defined on its parent with #8 )
  • may scroll internally
    • in this case we want to show an arrow on the bottom right of the panel
      • onClick should scroll programmatically to top with easing (:P)
  • should receive its values as prop
    • if undefined
      • placeholder (user hasn't searched anything yet)
    • if values is an empty array
      • placeholder (no results)
    • if values is a valid array
      • show results (for now implement a mocked basic version of the ResultRow)

specs

you may consider using Panel (https://github.com/buildo/react-components/tree/master/src/Panel)
and ScrollView (https://github.com/buildo/react-components/tree/master/src/scroll)

mockups

initial state
image

no result
image

results
image

[display real data] fetch real results

<- #22

requirements

  • when the user clicks on the search button, we should ask for results from github.
    • You can choose the precise api and parameters (probably https://api.github.com/search/repositories)
  • for each result, we should show the repo name and description
  • each repo name should also link (in a separate window) to the github.com page

specs

  • you should use axios to make http calls
  • probably you want to keep api calls to a separate file e.g. api.js and export functions from there (each one should return a promise)
  • TODO complete here with the final api parameters

RouteHandler refactoring

Requirements

We need to refactor the whole code base in order to use the routing system in the right way. We want to introduce new route search/:query to manage the ResultPanel and search/:query/detail/:idDetail in order to manage ModalManager

Specs

  • Pass router to AppRoute, and use it to change the route programmatically using transitionTo from react-router (v0.13.x)
  • uncouple the massive use of state from App and split it to the dedicated component that really have to manage the state
  • Do the same exact thing with Detail and show his content on click of Show More

[Detail] Show details info & Style Modal

Requirements

Show the right infos fetched from server into the Modal block and style it, in order to be compliant with the rest of the App.

Specs

  • Style the transition for leave and enter of the modal
  • Style the entire box
  • Valuable infos: name, description, owner , stats. Where stats is number of commit, number of issues, number of stars, number of contributors

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.