A modern, full-featured job application portal built with React, Vite, and Tailwind CSS. This application features a clean component-based architecture with separate files for better maintainability.
- ✅ User Registration & Login
- ✅ Complete Profile Management (Name, Phone, Location, Skills, Experience, Resume)
- ✅ Job Search with Real-time Filtering
- ✅ View Detailed Job Descriptions
- ✅ Apply for Jobs (One-click application)
- ✅ Withdraw Applications
- ✅ Track Application Status
- ✅ User Dashboard with Statistics
- ✅ Duplicate Application Prevention
- ✅ Admin Login
- ✅ User Management (View, Update, Block/Unblock)
- ✅ Job Management (Add/Remove Jobs)
- ✅ Application Monitoring
- ✅ Prevent Fake/Duplicate Applications
- ✅ Activity Dashboard with Analytics
- ✅ View User Details
- React 18 - UI Library
- Vite - Build Tool & Dev Server
- Tailwind CSS - Utility-first CSS Framework
- Lucide React - Beautiful Icon Library
- LocalStorage - Client-side Data Persistence
job-portal-vite/
├── src/
│ ├── components/ # Reusable components
│ │ ├── Alert.jsx # Alert/notification component
│ │ └── Navbar.jsx # Navigation bar component
│ ├── pages/ # Page components
│ │ ├── Landing.jsx # Landing page
│ │ ├── Login.jsx # Login page
│ │ ├── Register.jsx # Registration page
│ │ ├── Profile.jsx # User profile page
│ │ ├── SearchJobs.jsx # Job search page
│ │ ├── MyApplications.jsx # User applications page
│ │ ├── UserDashboard.jsx # User dashboard
│ │ └── AdminDashboard.jsx # Admin dashboard
│ ├── utils/ # Utility functions
│ │ ├── data.js # Initial data
│ │ └── storage.js # LocalStorage utilities
│ ├── App.jsx # Main app component
│ ├── main.jsx # Entry point
│ └── index.css # Global styles
├── index.html
├── package.json
├── vite.config.js
├── tailwind.config.js
└── postcss.config.js
- Node.js (v16 or higher)
- npm or yarn
-
Extract the zip file
-
Navigate to the project directory:
cd job-portal-vite -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and visit:
http://localhost:5173
npm run buildThe production files will be in the dist folder.
npm run preview- Email: user@example.com
- Password: user123
- Email: admin@example.com
- Password: admin123
- Alert.jsx - Displays success/error notifications
- Navbar.jsx - Responsive navigation bar with user/admin menus
- Landing.jsx - Home page with job listings preview
- Login.jsx - User/Admin login form
- Register.jsx - User registration form
- Profile.jsx - User profile management
- SearchJobs.jsx - Job search with filters and detail modal
- MyApplications.jsx - View and manage job applications
- UserDashboard.jsx - User statistics and quick actions
- AdminDashboard.jsx - Admin panel with 4 sections:
- Overview (Statistics)
- User Management
- Job Management
- Application Monitoring
- data.js - Initial sample data (jobs, users)
- storage.js - LocalStorage helper functions
- Register/Login - Create an account or sign in
- Complete Profile - Add your professional details
- Search Jobs - Filter by title, company, or location
- Apply - One-click application with your saved profile
- Track - Monitor all your applications with status updates
- Withdraw - Cancel applications before they're processed
- Dashboard - Overview of users, jobs, and applications
- User Management - View detailed user profiles and block suspicious accounts
- Job Posting - Add new job listings with full details
- Monitor Activity - Track all application activity in real-time
- Security - Prevent duplicate applications and block fake users
The application uses a gradient color scheme (indigo to purple). To change:
-
Edit the gradient classes in component files:
// Find and replace: from-indigo-600 to-purple-600 // With your preferred colors
-
Or modify the Tailwind config:
// tailwind.config.js theme: { extend: { colors: { primary: '#your-color', } } }
- All styles use Tailwind CSS utility classes
- Custom animations are defined in
index.css - Modify
tailwind.config.jsto extend the theme
All data is stored in the browser's localStorage:
- User accounts and profiles
- Job listings
- Applications
To reset the application:
// In browser console:
localStorage.clear()
location.reload()npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production build
The application is fully responsive and works on:
- ✅ Desktop (1024px+)
- ✅ Tablet (768px - 1023px)
- ✅ Mobile (320px - 767px)
Issue: Jobs not appearing after refresh Solution: Check browser console for localStorage errors, clear cache if needed
Issue: Application not submitting Solution: Ensure profile is completed before applying
Feel free to fork this project and customize it for your needs!
MIT License - Free to use for personal and commercial projects
- React Team for the amazing framework
- Vite for the blazing-fast dev server
- Tailwind CSS for the utility classes
- Lucide for the beautiful icons
Built with ❤️ using React + Vite
For issues or questions, please create an issue in the project repository.