https://github.com/saswatamcode/react_job_board
A web application which lists various jobs using the Github Jobs API. Built using React, Node.js, Express and Redis.
https://github.com/saswatamcode/react_job_board
express nodejs react redis typescript
Last synced: 2 months ago
JSON representation
A web application which lists various jobs using the Github Jobs API. Built using React, Node.js, Express and Redis.
- Host: GitHub
- URL: https://github.com/saswatamcode/react_job_board
- Owner: saswatamcode
- License: apache-2.0
- Created: 2020-01-12T19:01:07.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2022-12-13T23:06:49.000Z (about 3 years ago)
- Last Synced: 2025-02-11T08:48:26.238Z (about 1 year ago)
- Topics: express, nodejs, react, redis, typescript
- Language: TypeScript
- Homepage:
- Size: 1.45 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://opensource.org/licenses/Apache-2.0)
[](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)
[](https://GitHub.com/Naereen/ama)
[](https://code.visualstudio.com/)
[](https://GitHub.com/saswatamcode/react_job_board/network/)
[](https://GitHub.com/saswatamcode/react_job_board/stargazers/)
[](https://GitHub.com/saswatamcode/react_job_board/issues/)
[](https://github.com/ellerbrock/open-source-badges/)
[](https://github.com/ellerbrock/javascript-badges/)
# GitHub Job Board
A web application which lists various jobs using the Github Jobs API. Built using React, Node.js, Express, Cron, TypeScript and Redis.
## Description
A simple web application which consists of a data feed, an API and a client end. The data feed is a cron job which fires every hour and gets updated jobs from Github Jobs and then populates it into a Redis datastore. The node.js API fetches jobs from redis and presents it to the frontend built with React, material-ui and TypeScript.
## Screenshot
 
## Dependencies
### For server
- `express`: For server
- `cron`: For running cron job
- `ioredis`: Redis client
- `node-fetch`: For making API calls
- `winston`: Logger
- `typescript`
- `prettier`
### For client
- `react`
- `material-ui`: For styling
- `axios`: For API calls
- `react-loader-spinner`: For loading animation
- `typescript`
- `prettier`
## To run
- Clone into repo
### For worker and server
- Cd into `server`
- Make sure your local Redis server is up and running
- Run `yarn` to install packages
- Run `yarn watch`
- Fire up a new terminal in same directory and run `yarn run dev-worker`
- Fire up a new terminal in same directory and set an env var `PORT` to `9000`
- Run `yarn run dev`
- Your worker and server should have started. If the hourly cron job is too slow, change cron tab in `src/worker/worker.ts`
### For client
- Cd into client and run `yarn`
- Run `yarn start`