Job Portal is an free and open source platform, designed to help job seekers find suitable employment opportunities and employers post job listings efficiently. build with React, Node, Express, MongoDB and TailwindCSS.
- People can register as job seekers, build their profiles, and look for jobs matching their skill sets.
- Users can upload their existing resumes. If they do not have one, they should be able to fill out a form and have a resume built for them.
- People can apply directly to posted jobs.
- Companies can register, post jobs, and search job seeker profiles.
- Multiple representatives from a company should be able to register and post jobs.
- Company representatives can view a list of job applicants and can contact them, initiative an interview, or perform some other action related to their post.
- Registered users should be able to search for jobs and filter the results based on location, required skills, salary, experience level, etc
![image](https://private-user-images.githubusercontent.com/12173976/327283587-676ddd8e-f9bb-4fc1-810f-fcde07817348.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3NDYxNTUsIm5iZiI6MTcyMzc0NTg1NSwicGF0aCI6Ii8xMjE3Mzk3Ni8zMjcyODM1ODctNjc2ZGRkOGUtZjliYi00ZmMxLTgxMGYtZmNkZTA3ODE3MzQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDE4MTczNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhNWNlODFjZjc0ZDQ0OGI0OGUyNDQ0NGUwOThiMjdjYjFiY2YxZGRlYmJlYjRlZjNlNDc4NGRjNDk4Zjc5NGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.18J9sve3E5zXFaMFCdpmtWF_K3oxtXuNLNV7GjkxcUk)
![image](https://private-user-images.githubusercontent.com/12173976/327283683-818dc01f-7915-42da-914c-2b011bcbfa60.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3NDYxNTUsIm5iZiI6MTcyMzc0NTg1NSwicGF0aCI6Ii8xMjE3Mzk3Ni8zMjcyODM2ODMtODE4ZGMwMWYtNzkxNS00MmRhLTkxNGMtMmIwMTFiY2JmYTYwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDE4MTczNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZmMmRmMzRhNzViMWU2M2IxZjZiZDI4NmI4YWNiNTQyYjIyOTIwNjJlYzcwZjc4ZWQxYThiOTY3YTJiMzk4YjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.8SBDLWmwa_4X1SnwOIKIlT8EkvmkntNOW8G9D_IhtDU)
![image](https://private-user-images.githubusercontent.com/12173976/327283783-362e5330-e25b-4591-a1f1-20c87a7d4836.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3NDYxNTUsIm5iZiI6MTcyMzc0NTg1NSwicGF0aCI6Ii8xMjE3Mzk3Ni8zMjcyODM3ODMtMzYyZTUzMzAtZTI1Yi00NTkxLWExZjEtMjBjODdhN2Q0ODM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDE4MTczNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzNWNiMTg5YzU5ZjE2ZTAyNTZhN2Y0Mjc4NWFmYjRiOTA2MmQzMTRkMWEyZjk0M2E5NDZkMWI2OGU4Y2JjYjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Qy366Yvpl0AN16kJCnIw2vaT305dT0Z_FWRDD3hf3VY)
![image](https://private-user-images.githubusercontent.com/12173976/327283878-42526467-2b0a-4138-b0aa-f546d4735004.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3NDYxNTUsIm5iZiI6MTcyMzc0NTg1NSwicGF0aCI6Ii8xMjE3Mzk3Ni8zMjcyODM4NzgtNDI1MjY0NjctMmIwYS00MTM4LWIwYWEtZjU0NmQ0NzM1MDA0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDE4MTczNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWViZWU0NzkxOWExNDgxNzg0OWU2ZTU3ZjIyZDUxNThhYTZkYWQ1YjZlYjcxM2E4MzVlMWM3YTkwYzk5NTdjMWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.d6i3zga1MFntCgNlStI2Q-7Cd_4FowKJS3MLKRHmR9I)
- React - Frontend UI Library
- Vite - Frontend Tooling
- Express - Backend Framework
- Typescript – Language
- Tailwind – CSS
- MongoDB - Database
- Mogoose - Database ODM
- Axios - Promise based Http Client
- Formik - Form handler
- Zustand - State Management
Here's what you need to be able to run Job Portal:
- Node.js (version>=18.18.0)
- Docker
git clone [email protected]:drbarzaga/job-portal.git
cd job-portal
You need to create a .env
file inside the client
folder, and define the following env variables there:
VITE_API_URL=http://localhost:5555/api/v1
You need to create a .env
file inside the server
folder, and define the following env variables there:
PORT=5555 #API -> http://localhost:5555
NODE_ENV=development
JWT_SECRET=yourJwtSecret
MONGO_URL=mongodb://localhost:27017/job-portal #With docker use this mongodb://job-portal-mongo:27017/job-portal
docker-compose up
Using npm
npm install
npm run install:all
npm run dev
Using yarn
yarn install
yarn run install:all
yarn run dev
If you're going to run the application locally, make sure you have MongoDB installed on your computer and add the
MONGO_URL
environment variable to the server's.env
file.
Visit http://localhost:5137 in your browser.
Job Portal is an open-source project and we welcome contributions from the community.
If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are warmly welcome.