-
Notifications
You must be signed in to change notification settings - Fork 0
Projects
The projects page has been designed to dynamically populate itself using the GitHub Rest API to collect all the repo data for myself. The same system could easily be copied over onto your own React site and used in a similar manner (in accordance with the MIT license restrictions).
A call is made in the useEffect hook after the page has loaded to populate the project list with a list of every public repository for the MatthewNobes GitHub profile, call seen below. The response causes a change in state, which rerenders the ProjectList component with the newly acquired project data.
https://api.github.com/users/matthewnobes/repos
For each project, a Project component is rendered within the Project List. Each Project by default will always load with its Title and a button directing the user to the GitHub page, as these two are guaranteed for any GitHub repository. Optional elements for each project include a link to the hosted version, its description, and badges showing, open issues, language used, project topics, as well as its license.
A few hidden features have been planned for these elements, one already exists; clicking on the open issues button will open the issues page for that repository. In the future clicking on the topics may enable the user to view only projects with that topic in common.
Currently, projects can only be filtered by the language they were developed in, using a combo box above the project list (to be rolled out in version 1.1.0). Going forward more filters may be added, however, nothing is confirmed yet.