This is a Job Listing Web Application where users can:
- View a list of job opportunities on the left-hand side.
- Click on a job to view its details on the right-hand side dynamically.
- Filter jobs by location using a search bar.
- Sort jobs by posted date or other criteria.
- Pagination support for better navigation through job listings.
The application is built with:
- Frontend: React.js (styled with Tailwind CSS)
- Backend: Node.js, Express.js, and MongoDB (via Mongoose)
- Deployment:
- Frontend on Vercel
- Backend on Railway.app
- Dynamic job listing: Displays job opportunities fetched from the backend.
- Search by location: Filters jobs based on user input.
- Pagination: Allows users to navigate jobs in chunks.
- Sort and Filters: Jobs can be sorted by posted date or other parameters.
- Responsive Design: Works seamlessly across devices.
- REST API:
/api/jobs
: Fetches all job data./api/jobs?location=<location>
: Filters jobs by location.
- MongoDB Integration: Data is fetched from a MongoDB database populated with job listings.
frontend/
├── public/
├── src/
│ ├── components/
│ │ ├── JobDetails.jsx
│ │ ├── JobList.jsx
│ │ ├── SearchBar.jsx
│ ├── App.jsx
│ ├── index.css
│ ├── main.jsx
├── .gitignore
├── package.json
├── tailwind.config.js
backend/
├── src/
│ ├── config/
│ │ ├── db.js
│ ├── controllers/
│ │ ├── jobController.js
│ ├── models/
│ │ ├── job.js
│ ├── routes/
│ │ ├── jobRoutes.js
│ ├── app.js
├── .env
├── .gitignore
├── package.json
Ensure you have the following installed:
- Node.js (v14+)
- MongoDB
- npm or yarn
- Git
git clone https://github.com/karthik738/job-listing.git
cd job-listing
- Navigate to the
backend
folder:cd backend
- Install dependencies:
npm install
- Set up your environment variables in a
.env
file:MONGO_URI=<your_mongo_connection_string> PORT=5000
- Start the backend server:
npm start
- Navigate to the
frontend
folder:cd frontend
- Install dependencies:
npm install
- Start the frontend development server:
npm run dev
- Log in to Railway.app.
- Create a new project and link your GitHub repository.
- Add your
.env
variables to Railway's environment settings. - Deploy the backend.
- Log in to Vercel.
- Create a new project and link your GitHub repository.
- Configure the build settings:
- Framework: React.js
- Build command:
npm run build
- Output directory:
dist
- Deploy the frontend.
- Users are searching for jobs primarily based on location.
- Default sort is by relevance unless specified otherwise.
- Handling large data sets with efficient pagination.
- Ensuring seamless integration between frontend and backend.
- Frontend: Deployed Frontend URL
- Backend: Deployed Backend URL
Feel free to contribute! Please fork the repository and make a pull request.
This project is licensed under the MIT License.