A comprehensive job portal platform that connects job seekers with employers, featuring advanced CV analysis, job matching, and analytics dashboard.
- User Registration & Authentication: Secure signup and login with JWT tokens
- Job Discovery: Browse and search through available job postings
- CV Upload & Analysis: Upload resumes and get detailed analysis with ratings
- Job Applications: Apply to jobs with resume submission
- Real-time Notifications: Get notified about new job postings
- Profile Management: Manage personal information and application history
- Company Dashboard: Post and manage job listings
- Application Management: Review and manage job applications
- Analytics Dashboard: View detailed analytics on job performance and applications
- Candidate Evaluation: Access to CV analysis and ratings
- Advanced CV Scanner: AI-powered resume analysis and scoring
- Responsive Design: Modern, mobile-friendly interface with animations
- Real-time Notifications: Live updates on new job postings
- Secure File Upload: Support for PDF, DOCX, and image files
- Role-based Access Control: Different permissions for job seekers and recruiters
- React 19 - Modern React with hooks and concurrent features
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library for smooth interactions
- React Router - Client-side routing
- Axios - HTTP client for API calls
- React Hook Form - Form management
- Chart.js - Data visualization
- React Toastify - Notification system
- Node.js - JavaScript runtime
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- bcryptjs - Password hashing
- Multer - File upload handling
- PDF-parse & Mammoth - Document parsing for CV analysis
- CORS - Cross-origin resource sharing
- Helmet - Security middleware
- Rate Limiting - API rate limiting
Carrier_Path Project/
βββ Clients/ # Frontend React Application
β βββ public/ # Static assets
β βββ src/
β β βββ Components/ # Reusable UI components
β β βββ Pages/ # Page components
β β βββ assets/ # Images and media
β β βββ main.jsx # App entry point
β βββ package.json
β βββ vite.config.js
βββ Server/ # Backend Node.js Application
β βββ Controllers/ # Route controllers
β βββ Models/ # MongoDB schemas
β βββ Routes/ # API routes
β βββ middleware/ # Custom middleware
β βββ Uploads/ # File uploads directory
β βββ index.js # Server entry point
β βββ package.json
βββ README.md
- Node.js (v16 or higher)
- MongoDB (local or cloud instance)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd "Carrier_Path Project"
-
Backend Setup
cd Server npm install
Create a
.env
file in the Server directory:MONGO_URI=mongodb://localhost:27017/jobfinder JWT_SECRET=your-super-secret-jwt-key PORT=5040 NODE_ENV=development
-
Frontend Setup
cd ../Clients npm install
-
Start MongoDB Make sure MongoDB is running on your system.
-
Start the Applications
Terminal 1 - Backend:
cd Server npm run dev
Server will run on
http://localhost:5040
Terminal 2 - Frontend:
cd Clients npm run dev
Frontend will run on
http://localhost:5173
- Sign Up: Create an account using the registration form
- Complete Profile: Add personal information and upload your CV
- Browse Jobs: Explore available job postings on the home page
- Apply: Click on jobs and submit applications with your resume
- Track Applications: View your application history and status
- Get CV Analysis: Use the CV Scanner to get detailed feedback on your resume
- Register: Sign up as a recruiter
- Post Jobs: Create job listings with detailed requirements
- Manage Applications: Review incoming applications and CVs
- View Analytics: Access dashboard with application statistics
- Contact Candidates: Reach out to potential hires
POST /api/jobseeker/signup
- Job seeker registrationPOST /api/jobseeker/login
- Job seeker loginPOST /api/recruiter/signup
- Recruiter registrationPOST /api/recruiter/login
- Recruiter login
GET /api/jobs/public
- Get all public job listingsPOST /api/jobs
- Create new job (Recruiter only)PUT /api/jobs/:id
- Update job (Recruiter only)DELETE /api/jobs/:id
- Delete job (Recruiter only)
POST /api/applications
- Submit job applicationGET /api/applications
- Get applications (Recruiter only)
POST /api/cvscanner/scan
- Analyze uploaded CVGET /api/cvs/rating/:id
- Get CV rating
GET /api/analytics/overview
- Get dashboard analyticsGET /api/analytics/jobs
- Job performance metrics
- Modern Design: Clean, professional interface with consistent branding
- Responsive Layout: Optimized for desktop, tablet, and mobile devices
- Smooth Animations: Framer Motion powered transitions and interactions
- Dark/Light Themes: Consistent color scheme with green-to-teal gradients
- Interactive Elements: Hover effects, loading states, and micro-interactions
- Accessibility: Proper ARIA labels and keyboard navigation support
- JWT Authentication: Secure token-based authentication
- Password Hashing: bcryptjs for secure password storage
- Rate Limiting: Protection against brute force attacks
- Input Validation: Server-side validation with express-validator
- File Upload Security: Restricted file types and size limits
- CORS Configuration: Controlled cross-origin access
- Helmet Security Headers: Security headers for production
{
name: String,
email: String,
password: String, // hashed
role: String, // 'user' or 'recruiter'
profile: {
phone: String,
location: String,
skills: [String],
experience: String
}
}
{
title: String,
companyName: String,
description: String,
requirements: [String],
location: String,
salary: String,
postedBy: ObjectId, // Recruiter reference
applications: [ObjectId], // Application references
companyImage: String,
createdAt: Date
}
{
jobId: ObjectId,
applicantId: ObjectId,
resume: String, // file path
status: String, // 'pending', 'reviewed', 'accepted', 'rejected'
appliedAt: Date
}
# Backend tests
cd Server
npm test
# Frontend tests
cd Clients
npm test
- Set environment variables for production
- Use a process manager like PM2
- Configure MongoDB Atlas for cloud database
- Set up file storage (AWS S3, Cloudinary, etc.)
- Build the production bundle:
cd Clients npm run build
- Deploy to hosting service (Vercel, Netlify, etc.)
- Configure environment variables
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow ESLint configuration
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@jobfinder.com or join our Discord community.
- React and Vite teams for excellent documentation
- Tailwind CSS for the utility-first approach
- Framer Motion for smooth animations
- The open-source community for inspiration and tools
Built with β€οΈ for connecting talent with opportunity