Challenge: Create a job search using an API. Use Front-end libraries like React or Vue. Don’t look at the existing solution. Fulfill user stories below:
-
User story: I can see a list of jobs in a city by default
-
User story: I can search for jobs with a given keyword
-
User story: I can search for jobs with a city name, zip code, or other location
-
User story: I can select one option from at least 4 pre-defined options
-
User story: I can search for a full-time job only
-
User story: I can see a list of jobs with their logo, company name, location, and posted time.
-
User story: When I select a job, I can see job descriptions and how to apply like the given design.
-
User story: When I am on the job details page, I can go back to the search page
-
User story (optional): I can see a list of jobs in the closest city from my location by default
-
User story (optional): I can see jobs on different pages, 5 items on each page
NOTE: The used API for jobs returns up to 10 items per page
- Astro
- React
- TypeScript
- Sass
- BEM
- zod
- zustand
- @hrc/button
- @hrc/input
- @hrc/material-icons
- @hrc/spinner
- @hrc/toggle-theme
- react-paginate
- react-router
- fontsource
- @material-design-icons/font
- SerpApi Goggle Jobs API
- Weather API
- Dark mode
- Loading and Error states
- Counter for remaining free searches
- Use
react-routerto navigate between pages - Handle pagination
- Handle errors and its data as a tuple. It reduces the usage of try-catch/then-catch
To clone and run this application, you'll need Git, Node.js and pnpm installed on your computer. From your command line:
# Clone this repository
git clone https://github.com/Hdoc1509/dev-challenges
# install all workspace dependencies
cd dev-challenges && pnpm install
# Run github-jobs in dev-mode
cd legacy/github-jobs
pnpm run dev