A modern, responsive job board application built with React that allows users to search, filter, and manage job listings. The application features a beautiful UI with a focus on user experience and functionality. Features intelligent job scraping from LinkedIn with advanced filtering and prioritization.
-
Frontend (This Repository):
- Modern React-based UI
- Responsive design
- Real-time job updates
- Advanced search and filtering
- Beautiful job cards
- Intuitive user interface
-
Backend: JobHuntPro-Job-Listing-Backend
- RESTful API
- LinkedIn job scraping
- Database management
- Job analytics
- Search optimization
-
Job Search & Filtering
- Search jobs by keyword, title, or location
- Filter by location, company, job type, and experience level
- Sort jobs by date posted, title, company, or location
- Real-time search results
- Advanced filtering system
- Clear all filters option
-
Job Management
- Post new job listings with detailed information
- Edit existing job listings
- Delete job listings
- Automated job scraping functionality through LinkedIn
- View job statistics and metrics
-
Intelligent LinkedIn Integration
- Display of scraped jobs with smart filtering
- Focus on full-time, mid to senior positions
- Advanced job prioritization system
- Technology-aware ranking
- Quality-based sorting
- Last 24 hours listings
-
Modern UI/UX
- Responsive design for all devices
- Beautiful gradient backgrounds
- Smooth animations and transitions
- Loading states and error handling
- Clean and intuitive interface
- Accessibility features
- Node.js (v14 or higher)
- npm or yarn
- Backend API running on
http://localhost:5000
- Clone both repositories:
# Clone Frontend
git clone <repository-url>
cd job-listings-frontend
# Clone Backend
git clone https://github.com/M-Husnain-Ali/JobHuntPro-Job-Listing-Backend
cd JobHuntPro-Job-Listing-Backend- Install dependencies for both:
# Frontend dependencies
cd job-listings-frontend
npm install
# Backend dependencies
cd ../JobHuntPro-Job-Listing-Backend
npm install- Start both servers:
# Start Backend (in JobHuntPro-Job-Listing-Backend directory)
npm start
# Start Frontend (in job-listings-frontend directory)
npm startThe frontend application will be available at http://localhost:3000 and will connect to the backend at http://localhost:5000.
The frontend is configured to connect to the backend API at http://localhost:5000. This can be modified in:
src/services/BackendService.js- API base URLpackage.json- proxy configuration.envfile - Environment variables
REACT_APP_API_URL=http://localhost:5000
REACT_APP_VERSION=1.0.0
src/
βββ components/ # Reusable UI components
β βββ common/ # Shared components
β β βββ Button.js # Custom button component
β β βββ Input.js # Form input component
β β βββ Modal.js # Modal dialog component
β βββ Header.js # App header with navigation
β βββ HeroSection.js # Hero section with search
β βββ JobCard.js # Job listing card component
β βββ FilterSidebar.js# Filtering sidebar
β βββ AddJobModal.js # Job posting modal
βββ screens/ # Screen components
β βββ JobListScreen.js# Main job listing screen
β βββ DashboardScreen.js# Statistics dashboard
β βββ AboutScreen.js # About page
βββ services/ # API services
β βββ BackendService.js# Backend API integration
β βββ JobService.js # Job-related API calls
βββ hooks/ # Custom React hooks
β βββ useJobs.js # Job data management
β βββ useFilters.js # Filter state management
βββ context/ # React context providers
β βββ JobContext.js # Job data context
βββ utils/ # Utility functions
β βββ api.js # API helper functions
β βββ filters.js # Filter helper functions
βββ styles/ # Styling files
β βββ global.css # Global styles
β βββ variables.css # CSS variables
βββ App.js # Main application component
βββ App.css # Global styles
βββ index.js # Application entry point
// Get all jobs with filters
GET /api/jobs?location=&company=&job_type=&experience=&sort_by=&sort_order=
// Create new job
POST /api/jobs
{
title: string,
company: string,
location: string,
description: string,
salary: string,
job_type: string,
experience_level: string,
application_url: string
}
// Update job
PUT /api/jobs/:id
{
// Same fields as POST
}
// Delete job
DELETE /api/jobs/:id// Trigger job scraping
POST /api/scrape
// Get scraping status
GET /api/scrape/status// Get job statistics
GET /api/stats- CORS configuration
- Input validation
- XSS prevention
- API error handling
- Rate limiting handling
- Secure HTTP headers
- Full-text search across job title, company, and location
- Advanced filtering options:
- Location filter
- Company filter
- Job type (Full-time, Part-time, Contract, Internship)
- Experience level (Entry, Mid, Senior)
- Sort by multiple criteria
- Clear all filters option
- Add new jobs with detailed information
- Edit existing jobs
- Delete jobs
- Automated job scraping from external sources
- Bulk operations support
- Total jobs count
- Scraped vs. manually added jobs ratio
- Top companies chart
- Location distribution
- Job type breakdown
- Real-time updates
- User authentication and authorization
- Job application tracking
- Email notifications
- Advanced search filters
- Company profiles
- Mobile app version
- Saved searches
- Job alerts
- Resume parser
- Application tracking system
- Storybook integration for component development
- Jest and React Testing Library for unit tests
- E2E tests with Cypress
- ESLint and Prettier for code formatting
- React Context for global state
- Custom hooks for reusable logic
- Local storage for persistence
- Real-time updates
- Fork the repository
- Create a new branch for your feature
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- JobHunt Pro Backend - The Flask backend for this application