This is a demo application that re-implements some of GitHub's pages and functionality.
- React
- RxJS
- TypeScript
- Prettier
- React Testing Library
- Jest
- ESLint
- Styled Components
- Project uses
snake-case
file naming convention over traditionalPascalCase
- Components should be contained in their own
components
directory or module folder and exported via the index file - The following directories should be restricted to the following types of components:
- routes: Only contains top-level page components
- hooks: Only reusable global hooks
Clone the starter.dev-showcases repository from https://github.com/thisdot/starter.dev-github-showcases
git clone https://github.com/thisdot/starter.dev-github-showcases.git
This project comes with a .env.example
file.
REACT_APP_API_URL=https://api.starter.dev/api
REACT_APP_BASE_URL=http://localhost:3000
While in the project directory, run this command in your terminal.
cp .env.example .env
The project connects to a backend which is shared by all the starter showcases to get authentication tokens.
To use this app and authenticate with GitHub, we need to setup the OAuth credentials in GitHub.
- Navigation to the GitHub settings page.
- Click the
Developer settings
link in the left sidebar. - Click the
OAuth Apps
link in the sidebar. - Click the
New OAuth App
button at the top right of the page.
Register a new OAuth application form details
- Application name - Enter a name for the application
- Homepage URL - Enter the url of the RxJS application. (If running locally http://localhost:3000 otherwise the url of the application on the internet)
- Authorization callback URL - Enter the url of the applications OAuth callback. _(If running locally http://localhost:3000/redirect)
Open the project root directory in your terminal and navigate to the cra-rxjs-styled-components
folder.
cd cra-rxjs-styled-components
Run yarn
to install the dependencies.
yarn
In the cra-rxjs-styled-components
folder start the app.
yarn start
Open your browser to http://localhost:3000
This demo app gets deployed to Netlify on changes to the main
branch.