An open API service indexing awesome lists of open source software.

https://github.com/pasek108/fm-joblistingswithfiltering

My solution to the Frontend Mentor "Job listings with filtering" challenge
https://github.com/pasek108/fm-joblistingswithfiltering

angular frontend-mentor frontend-mentor-challenge frontend-mentor-site frontend-mentor-solution frontendmentor frontendmentor-challenge frontendmentor-solution frontendmentorchallenge job-listings-filter typescript

Last synced: 3 months ago
JSON representation

My solution to the Frontend Mentor "Job listings with filtering" challenge

Awesome Lists containing this project

README

        

FM-JobListingsWithFiltering - Readme




My solution to the Frontend Mentor "Job listings with filtering" challenge







> [!CAUTION]
>

Please, don't look at my solutions until you have completed it yourself.


> Challenges like these are an opportunity to improve by coming up with your own solutions. Take your time and think about your approach.
> If you can't complete a challenge, skip it and come back to it later. Only look at someone else's solutions as a last resort, and treat it as a defeat.


# Table of Contents
* [FrontendMentor :thinking:](#frontendmentor-thinking)
* [What is it](#what-is-it)
* [Is it worth doing](#is-it-worth-doing)
* [Overview :sparkles:](#overview-sparkles)
* [About](#about)
* [Features](#features)
* [Technologies](#technologies)
* [Setup](#setup)
* [Copyright](#copyright-copyright)
* [Details :scroll:](#details-scroll)
* [User interface](#user-interface)
* [Performance](#performance)


# FrontendMentor :thinking:

## What is it
[FrontendMentor](https://www.frontendmentor.io/home) is a platform that provides real-world front-end coding challenges to help developers improve their skills. It offers projects ranging from simple layouts to complex web applications, allowing users to practice HTML, CSS, and JavaScript by building solutions that closely resemble professional work.

## Is it worth doing
Frontend Mentor is a great resource for developers looking to gain hands-on experience by working on practical projects. The challenges help reinforce best practices, improve design implementation skills, and build a portfolio. However, since there is no automated grading system, feedback depends on community reviews, making it essential to engage with others for constructive criticism.


# Overview :sparkles:

## About
My solution to the [Frontend Mentor "Job listings with filtering" challenge](https://www.frontendmentor.io/challenges/job-listings-with-filtering-ivstIPCt). The project was created using Angular 19 and TypeScript. The challenge gave me an opportunity to practice Angular basics, especially state management and communication between components.

Check out the [live version](https://pasek108.github.io/FM-JobListingsWithFiltering/) of this project, as well as my [Frontend Mentor profile](https://www.frontendmentor.io/profile/Pasek108).


![preview](/_for_readme/preview.png)

## Technologies
Languages:
- JavaScript
- TypeScript
- CSS
- HTML

Libraries and frameworks:
- [Angular](https://angular.dev) 19.0.0
- [GoogleFonts](https://fonts.google.com)

Programs:
- [VSCode](https://code.visualstudio.com)
- [PowerToys](https://learn.microsoft.com/en-us/windows/powertoys/)
- [ShareX](https://getsharex.com)
- [GIMP](https://www.gimp.org)

## Features
### Challenge requirements
- ✅ View the optimal layout for the site depending on their device's screen size
- ✅ See hover states for all interactive elements on the page
- ✅ Filter job listings based on the categories

## Setup
- Use [live version](https://pasek108.github.io/FM-JobListingsWithFiltering/).

- Download this repository and:
- Open project in VSCode
- Run `npm install`
- Run `ng serve`
- Open generated address in the browser

- Deployment for GitHub:
- Run `ng build --output-path docs --base-href /FM-JobListingsWithFiltering/`
- Move conetent from `/docs/browser` to `/docs`

## Copyright :copyright:
I do not own the rights to the content of the challenges. All challenge data was downloaded and included only to provide context for the solutions.


# Details :scroll:

## User interface
### Jobs listing
![jobs listing](/_for_readme/UI/jobs-listing.png)
The main view of the application displays job offers.


![jobs filtering](/_for_readme/UI/jobs-filtering.png)
Users can filter offers by clicking on a skill.

## Performance
> [!WARNING]
> The accessibility score is lower because of the design's color contrast.

### Desktop
![desktop performance](/_for_readme/desktop-performance.png)

### Mobile
![mobile performance](/_for_readme/mobile-performance.png)