Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/malaksadek/jobfolio

A front-end web app for posting and viewing jobs using React.
https://github.com/malaksadek/jobfolio

Last synced: about 7 hours ago
JSON representation

A front-end web app for posting and viewing jobs using React.

Awesome Lists containing this project

README

        

# JobFolio

JobFolio is a front-end web application that displays and manages job postings. It is made using **React** and **TailwindCSS**. I made this to refresh my React knowledge, including hooks, props, components, wrapper components, routing, and data loaders. The project also uses several React libraries such as react-icons, react-toastify, react-spinners, and react-router-dom.

## Features

- A home screen displaying recent job postings pulled from a local development server (**Vite**)
- A detailed job view showing a job's information when given its ID
- Form-based screens for adding, updating, and deleting jobs utilising PUT, POST and DELETE requests as mock API calls to a local `json-server`

## Screenshots
![Screenshot of the homepage for JobFolio showing some recent jobs.](/src/assets/screenshots/JobFolio-HomeScreen.png)
![Screenshot of a single job's details showing the role, type, description, salary, location, company name, company description, and contacts.](/src/assets/screenshots/JobFolio-JobListing.png)
![Screenshot of a form for adding new jobs by entering all the relevant information.](/src/assets/screenshots/JobFolio-AddJob.png)

## Installation and Running the Application

1. Clone the repository:

`git clone https://github.com/YourUsername/JobFolio.git`

`cd JobFolio`
2. Install dependencies:

`npm install`

3. Start the json-server (in one terminal):

`npm run server`

4. In a separate terminal, start the Vite development server:

`npm run preview`

5. Open your browser and navigate to the local address provided by Vite

## Project Structure

```
💼 JobFolio
├─ README.md
├─ eslint.config.js
├─ index.html
├─ package-lock.json
├─ package.json
├─ postcss.config.js
├─ src
│  ├─ App.jsx
│  ├─ assets
│  │  └─ images
│  │     └─ logo.png
│  ├─ components
│  │  ├─ Card.jsx
│  │  ├─ Hero.jsx
│  │  ├─ HomeCards.jsx
│  │  ├─ JobListing.jsx
│  │  ├─ JobListings.jsx
│  │  ├─ Navbar.jsx
│  │  ├─ Spinner.jsx
│  │  └─ ViewAllJobs.jsx
│  ├─ index.css
│  ├─ jobs.json
│  ├─ layouts
│  │  └─ MainLayout.jsx
│  ├─ main.jsx
│  └─ pages
│     ├─ AddJobPage.jsx
│     ├─ EditJobPage.jsx
│     ├─ HomePage.jsx
│     ├─ JobPage.jsx
│     ├─ JobsPage.jsx
│     └─ NotFoundPage.jsx
├─ tailwind.config.js
└─ vite.config.js
```
©generated by [Project Tree Generator](https://woochanleee.github.io/project-tree-generator)

## License
This project is licensed under the MIT License.

## Contact
Author: Malak Sadek - [Personal Website](https://malaksadekapps.com/) - [Linkedin](https://linkedin.com/in/MalakSadek)

Project Link: [https://github.com/MalakSadek/JobFolio](https://github.com/MalakSadek/JobFolio)