A comprehensive, enterprise-grade job recruitment and career networking platform designed specifically for the Bangladeshi job market. Built with cutting-edge technologies and powered by AI to revolutionize the hiring process.
📖 Documentation • 🎯 Features • 🛠️ Tech Stack • 🚀 Getting Started • 📸 Screenshots
- ✨ Project Overview
- 🎯 Key Features
- 🏗️ System Architecture
- 🛠️ Technology Stack
- 🚀 Getting Started
- 📸 Screenshots & UI Showcase
- 🗂️ Project Structure
- 🔐 Authentication & Authorization
- 🎨 Design System
- 🌐 API Documentation
- 🤝 Contributing
- 📜 License
- 👨💻 About the Developer
HIRELINK is not just another job portal—it's a comprehensive career ecosystem that brings together job seekers, employers, and AI-driven insights to create meaningful professional connections. Designed with the Bangladeshi job market in mind, it features localized currency (BDT), location-based search, and culturally relevant user experiences.
To democratize access to quality employment opportunities and streamline the recruitment process through intelligent automation, creating a bridge between talented professionals and forward-thinking companies in Bangladesh.
- 🤖 AI-Powered Intelligence: Leverages Groq AI to generate optimized job descriptions, analyze skill gaps, and provide personalized career recommendations
- 🎨 Modern User Experience: Built with React 19 and Tailwind CSS 4 for a sleek, responsive, and intuitive interface
- 🔒 Enterprise-Grade Security: JWT-based authentication with role-based access control (RBAC)
- ☁️ Cloud-Native: Cloudinary integration for seamless file uploads and media management
- 📊 Real-Time Analytics: Comprehensive dashboards for employers and job seekers
- 💬 Integrated Messaging: Built-in communication system for seamless interaction
- 🇧🇩 Bangladesh-First: Localized for Bangladeshi job market with BDT currency, local locations, and relevant job categories
🔓 Click to expand Job Seeker features
- ✅ Comprehensive Profile Creation: Build professional profiles with personal info, skills, education, work experience
- 📸 Profile Picture Upload: Upload and manage profile pictures via Cloudinary
- 📄 Resume Management: Upload, update, and manage resumes (PDF, DOC, DOCX)
- 🎯 Skill Portfolio: Add, remove, and showcase your technical and soft skills
- 🏆 Certificate Showcase: Upload certificates and credentials to enhance credibility
- 🔗 Social Profile Integration: Connect LinkedIn, GitHub, and portfolio links
- 🔍 Advanced Search Filters: Search by keywords, location, company, salary range, experience level
- 💼 Multiple Job Types: Full-time, Part-time, Internship, Freelance, Contract positions
- 🏢 Work Mode Preferences: Remote, Onsite, Hybrid job options
- 💰 Salary Range Filtering: Filter jobs based on expected salary (BDT)
- 📍 Location-Based Search: Find jobs in specific cities across Bangladesh
- 🏪 Company Profiles: Explore detailed company information before applying
- ⭐ Save Jobs: Bookmark interesting positions for later review
- 📝 One-Click Apply: Streamlined application process with profile auto-fill
- 📊 Application Dashboard: Track all your applications in one place
- 🔔 Status Updates: Real-time notifications on application progress
- 📈 Application Analytics: View response rates and success metrics
- ⏰ Interview Scheduling: Manage interview invitations and schedules
- 💬 Direct Messaging: Communicate with recruiters seamlessly
- 🤖 Skill Gap Analysis: AI analyzes your profile against job requirements
- 💡 Personalized Recommendations: Get job suggestions based on your profile
- 📚 Learning Path Suggestions: Receive recommendations for skill development
🔓 Click to expand Employer features
- 🏭 Company Branding: Create compelling company profiles with logos and descriptions
- 📊 Company Analytics: Track profile views and engagement metrics
- 👥 Multiple HR Users: Add and manage multiple recruiters under one company
- 🌐 Social Links: Showcase company social media and website
- ✍️ Rich Job Posting: Create detailed job postings with rich text formatting
- 🤖 AI Job Description Generator: Generate optimized job descriptions using Groq AI
- 📋 Custom Requirements: Specify education, experience, skills, and qualifications
- 💵 Flexible Salary Options: Set salary ranges with negotiable options
- ⏳ Application Deadlines: Set deadlines for applications
- 📈 Job Performance Metrics: Track views, applications, and conversion rates
- ✏️ Edit Anytime: Update job postings even after publication
- 🗑️ Job Management: Archive or delete outdated positions
- 📥 Application Dashboard: View all applications in an organized interface
- 👀 Candidate Profiles: Access complete candidate profiles and resumes
- ⭐ Shortlisting System: Mark candidates for further review
- 📝 Application Status: Update candidates through the hiring pipeline
- 💬 Direct Communication: Message candidates directly through the platform
- 🎯 Candidate Filtering: Filter applicants by skills, experience, education
- 📊 Hiring Analytics: Track time-to-hire and other recruitment metrics
- 🔍 Candidate Search: Search through job seeker database
- 📧 Bulk Actions: Manage multiple applications simultaneously
- 📈 Recruitment Dashboard: Comprehensive overview of hiring activities
- 🎯 Skills Matching: AI-powered matching of candidates to job requirements
🔓 Click to expand Platform features
- 🔐 Secure Authentication: JWT-based auth with refresh token mechanism
- 🎭 Role-Based Access Control: Separate experiences for job seekers, employers, and admins
- 📱 Fully Responsive Design: Perfect experience on mobile, tablet, and desktop
- 🌙 Theme Support: Light and dark mode with customizable color schemes
- 💬 Messaging System: Real-time communication between users
- 🔔 Notification Center: Stay updated with all platform activities
- 🔍 Global Search: Quick search across jobs, companies, and users
- 📊 Analytics Dashboard: Comprehensive insights for all user types
- 🔒 Password Management: Change password and forgot password functionality
- 🎯 Personalized Onboarding: Role-specific onboarding flows
- ⚡ Performance Optimized: Fast load times and smooth interactions
- ♿ Accessibility: WCAG 2.1 compliant design
- 🌍 Localization Ready: Built for easy language expansion
graph TB
subgraph Frontend[Frontend Layer - React + Vite]
A[React 19.1.1] --> B[Redux Toolkit State Management]
A --> C[React Router v7 Navigation]
A --> D[Tailwind CSS 4 Styling]
B --> E[Authentication State]
B --> F[User Data State]
end
subgraph API[API Layer - Express.js]
G[Express Server] --> H[JWT Middleware]
G --> I[Multer File Upload]
G --> J[CORS Configuration]
H --> K[Protected Routes]
end
subgraph Services[External Services]
L[Cloudinary - Media Storage]
M[Groq AI - Job Description Generation]
end
subgraph Database[Database Layer - MongoDB]
N[(MongoDB Atlas)] --> O[User Collection]
N --> P[Job Collection]
N --> Q[Company Profile Collection]
N --> R[Job Seeker Profile Collection]
N --> S[Application Collection]
N --> T[Message Collection]
end
Frontend -->|HTTP/HTTPS| API
API -->|Mongoose ODM| Database
API -->|SDK| L
API -->|API| M
style Frontend fill:#61dafb,stroke:#333,stroke-width:2px
style API fill:#68a063,stroke:#333,stroke-width:2px
style Database fill:#4db33d,stroke:#333,stroke-width:2px
style Services fill:#ff6b6b,stroke:#333,stroke-width:2px
- Three-Tier Architecture: Clean separation of presentation, business logic, and data layers
- RESTful API Design: Standard HTTP methods with proper status codes
- Schema-Based Validation: Mongoose schemas ensure data integrity
- Middleware Pipeline: Request processing through authentication, validation, and error handling
- File Upload Strategy: Multipart form data handling with size and type validation
- State Management: Centralized Redux store with slice-based organization
| Technology | Version | Purpose |
|---|---|---|
| ⚛️ React | 19.1.1 | UI library for building component-based interfaces |
| ⚡ Vite | 7.1.7 | Next-generation frontend build tool with HMR |
| 🎨 Tailwind CSS | 4.1.13 | Utility-first CSS framework for rapid UI development |
| 🔄 Redux Toolkit | 2.9.0 | State management with simplified store configuration |
| 🧭 React Router | 7.9.3 | Client-side routing with nested routes support |
| 📡 Axios | 1.12.2 | Promise-based HTTP client with interceptors |
| 🎭 Hero Icons | 2.2.0 | Beautiful hand-crafted SVG icons |
| 💎 Font Awesome | 7.0.1 | Comprehensive icon library |
| 🎨 Tremor | 3.18.7 | React components for building dashboards |
| 🎯 Iconify | 4.1.1 | Universal icon framework |
| 🔄 React Icons | 5.5.0 | Popular icon library for React |
| Technology | Version | Purpose |
|---|---|---|
| 🟢 Node.js | - | JavaScript runtime for server-side execution |
| 🚂 Express.js | 5.1.0 | Fast, unopinionated web framework for Node.js |
| 🍃 MongoDB | - | NoSQL database for flexible data modeling |
| 📦 Mongoose | 8.18.2 | Elegant MongoDB object modeling for Node.js |
| 🔐 JWT | 9.0.2 | Secure token-based authentication |
| 🔒 Bcrypt.js | 3.0.2 | Password hashing with salt generation |
| ☁️ Cloudinary | 2.7.0 | Cloud-based image and video management |
| 🤖 Groq SDK | 0.33.0 | AI integration for intelligent features |
| 📁 Multer | 2.0.2 | Middleware for handling multipart/form-data |
| 🍪 Cookie Parser | 1.4.7 | Parse and handle HTTP cookies |
| 🌐 CORS | 2.8.5 | Enable Cross-Origin Resource Sharing |
| 🧹 DOMPurify | 3.2.7 | XSS sanitization for HTML content |
| 🔧 dotenv | 17.2.2 | Environment variable management |
- 📝 ESLint - Code linting and quality assurance
- 🎨 Prettier - Code formatting for consistency
- 🔍 VS Code - Primary development environment
- 🐙 Git - Version control and collaboration
- 📦 npm - Package management
Follow these comprehensive instructions to set up and run HireLink on your local development environment.
Before you begin, ensure you have the following installed on your system:
Node.js (v18.x or higher)
npm (v9.x or higher)
MongoDB (v6.x or higher) or MongoDB Atlas account
GitRecommended Tools:
- VS Code or your preferred code editor
- MongoDB Compass for database visualization
- Postman or Thunder Client for API testing
git clone https://github.com/Rockstatata/HireLink.git
cd HireLink/hirelink-backendnpm installThis will install all required packages:
- Express.js server framework
- MongoDB & Mongoose for database
- JWT for authentication
- Cloudinary for file uploads
- Groq SDK for AI features
- And more...
Create a .env file in the hirelink-backend directory:
# Server Configuration
PORT=5000
NODE_ENV=development
# Database Configuration
MONGODB_URI=mongodb://localhost:27017/hirelink
# OR for MongoDB Atlas:
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/hirelink
# JWT Configuration
ACCESS_TOKEN_SECRET=your_super_secret_access_token_key_here_min_32_chars
ACCESS_TOKEN_EXPIRY=1d
REFRESH_TOKEN_SECRET=your_super_secret_refresh_token_key_here_min_32_chars
REFRESH_TOKEN_EXPIRY=10d
# Cloudinary Configuration (Get from https://cloudinary.com)
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
# Groq AI Configuration (Get from https://groq.com)
GROQ_API_KEY=your_groq_api_key_here
# CORS Configuration
CORS_ORIGIN=http://localhost:5173🔑 How to get API keys:
Cloudinary Setup
- Visit cloudinary.com and sign up for a free account
- Navigate to your Dashboard
- Copy your Cloud Name, API Key, and API Secret
- Paste them into your
.envfile
Free tier includes:
- 25 GB storage
- 25 GB bandwidth per month
- Perfect for development and small projects
Groq AI Setup
- Visit console.groq.com and create an account
- Navigate to API Keys section
- Generate a new API key
- Copy and paste it into your
.envfile
Free tier includes:
- Fast inference speeds
- Multiple model options (Llama, Mixtral, etc.)
- Great for AI-powered features
npm start✅ Success! Your backend should now be running at http://localhost:5000
Verify the server:
# Check if server is running
curl http://localhost:5000/api/v1/users/ping
# Expected response: { "success": true, "message": "Server is running" }cd ../hirelink-frontendnpm installThis installs:
- React 19 with latest features
- Vite for lightning-fast development
- Tailwind CSS 4 for modern styling
- Redux Toolkit for state management
- Axios for API communication
- And more...
Create a config.js file in hirelink-frontend directory (if not exists):
const config = {
// Backend API URL
API_BASE_URL: import.meta.env.VITE_API_URL || 'http://localhost:5000/api/v1',
// Application Settings
APP_NAME: 'HireLink',
APP_VERSION: '1.0.0',
// Feature Flags
ENABLE_AI_FEATURES: true,
ENABLE_MESSAGING: true,
ENABLE_NOTIFICATIONS: true,
};
export default config;Optional: Create .env file for environment variables:
VITE_API_URL=http://localhost:5000/api/v1
VITE_APP_NAME=HireLinknpm run dev✅ Success! Your frontend should now be running at http://localhost:5173
🎉 Open your browser and visit: http://localhost:5173
For Job Seekers
- Register - Click "Sign Up" and choose "Job Seeker"
- Complete Onboarding - Fill in your basic information
- Build Profile - Add skills, education, work experience
- Upload Resume - Upload your latest resume (PDF/DOC)
- Search Jobs - Use filters to find relevant opportunities
- Apply - One-click apply to jobs that match your profile
- Track Applications - Monitor your application status in the dashboard
For Employers
- Register - Click "Sign Up" and choose "Employer"
- Company Setup - Complete your company profile
- Add Logo - Upload your company logo
- Post Jobs - Create job postings (or use AI to generate descriptions)
- Review Applications - Check candidate profiles and resumes
- Shortlist - Mark promising candidates for further review
- Contact - Message candidates directly through the platform
cd hirelink-frontend
npm run buildThis creates an optimized production build in the dist/ directory.
Preview the production build:
npm run previewThe backend is production-ready. For deployment:
-
Set production environment variables
-
Use a process manager like PM2:
npm install -g pm2 pm2 start src/app.js --name hirelink-backend
-
Configure Nginx as reverse proxy (optional)
Common Issues and Solutions
Issue: MongoDB connection error
Solution:
- Ensure MongoDB is running: `mongod` or use MongoDB Atlas
- Check your MONGODB_URI in .env file
- Verify network connectivity
Issue: Port already in use
Solution:
- Change PORT in backend .env file
- Kill the process using the port: `npx kill-port 5000`
- On Windows: `netstat -ano | findstr :5000` then `taskkill /PID <PID> /F`
Issue: CORS errors
Solution:
- Verify CORS_ORIGIN in backend .env matches frontend URL
- Check that frontend is running on the specified port
- Clear browser cache and reload
Issue: Cloudinary upload fails
Solution:
- Verify Cloudinary credentials in .env
- Check file size (default limit: 10MB)
- Ensure file type is supported (jpg, png, pdf, doc, docx)
Issue: Groq AI features not working
Solution:
- Verify GROQ_API_KEY in .env
- Check API rate limits
- Ensure internet connectivity
# Backend tests (if configured)
cd hirelink-backend
npm test
# Frontend tests (if configured)
cd hirelink-frontend
npm testExperience the beautiful and intuitive interface of HireLink through these screenshots:
| Welcome Screen | Login Interface |
|---|---|
![]() |
![]() |
| Modern landing page with compelling CTAs | Secure login with form validation |
| Job Seeker Registration | Employer Registration |
|---|---|
![]() |
![]() |
| Simple registration for job seekers | Company registration with details |
| Onboarding Flow | Profile Building |
|---|---|
![]() |
![]() |
| Step-by-step onboarding process | Guided profile completion |
| Dashboard | Job Search & Listings |
|---|---|
![]() |
![]() |
| Personalized job seeker dashboard | Advanced job search with filters |
| Job Filters | Job Details |
|---|---|
![]() |
![]() |
| Comprehensive filtering options | Detailed job information view |
| Complete Job Info | My Applications |
|---|---|
![]() |
![]() |
| Full job description with AI insights | Track all your applications |
| User Profile | Profile Details |
|---|---|
![]() |
![]() |
| Comprehensive profile overview | Skills and experience showcase |
| Certifications | Saved Jobs |
|---|---|
![]() |
![]() |
| Upload certificates and credentials | Bookmark jobs for later |
| Employer Onboarding | Company Setup |
|---|---|
![]() |
![]() |
| Company information collection | Additional company details |
| Brand Setup | Employer Dashboard |
|---|---|
![]() |
![]() |
| Company branding and logo upload | Comprehensive employer dashboard |
| Job Posting - Step 1 | Job Posting - Step 2 |
|---|---|
![]() |
![]() |
| Basic job information | Requirements and qualifications |
| Job Posting - Step 3 | Applications Management |
|---|---|
![]() |
![]() |
| Final details and AI description | Review and manage applicants |
| Shortlisted Candidates | Company Profile |
|---|---|
![]() |
![]() |
| Manage shortlisted applicants | Public company profile view |
| Company Details | Companies Directory |
|---|---|
![]() |
![]() |
| Detailed company information | Browse all companies on platform |
- 🎨 Modern UI/UX: Clean, intuitive interface following Material Design principles
- 📱 Fully Responsive: Perfect experience across all devices and screen sizes
- 🎭 Consistent Theming: Beautiful color scheme throughout the application
- ⚡ Smooth Animations: Delightful micro-interactions and transitions
- ♿ Accessible Design: WCAG 2.1 compliant for inclusive user experience
- 🖼️ Rich Media Support: Optimized image loading and display
- 🔄 Loading States: Skeleton screens and progress indicators
- ✅ Form Validation: Real-time feedback and error messages
HireLink follows a well-organized, scalable folder structure that separates concerns and promotes maintainability.
hirelink-frontend/
├── 📁 public/ # Static assets
│ ├── vite.svg # Vite logo
│ └── ...
├── 📁 src/ # Source code
│ ├── 📄 main.jsx # Application entry point
│ ├── 📄 App.jsx # Root component with routing
│ ├── 📄 App.css # Global app styles
│ ├── 📄 index.css # Global CSS with Tailwind imports
│ ├── 📄 config.js # Application configuration
│ │
│ ├── 📁 components/ # Reusable React components
│ │ ├── 📁 Common/ # Shared components
│ │ ├── 📁 Home/ # Landing page components
│ │ ├── 📁 JobListing/ # Job search & listings
│ │ ├── 📁 JobDetails/ # Job detail views
│ │ ├── 📁 JobSeekerDashboard/ # Job seeker features
│ │ ├── 📁 CompanyDashboard/ # Employer features
│ │ ├── 📁 LoginSignup/ # Authentication UI
│ │ ├── 📁 UserOnboarding/ # Onboarding flows
│ │ └── 📁 UserProfile/ # Profile management
│ │
│ ├── 📁 Pages/ # Page-level components
│ │ ├── Home.jsx, JobListing.jsx, JobDetails.jsx
│ │ ├── Dashboard.jsx, UserProfile.jsx, Messages.jsx
│ │ └── Companies.jsx, SavedJobs.jsx
│ │
│ ├── 📁 services/ # API service layer
│ │ ├── apiBase.js # Axios instance & interceptors
│ │ ├── userService.js, jobService.js
│ │ └── companyService.js, contentService.js
│ │
│ ├── 📁 store/ # Redux state management
│ │ ├── store.js # Redux store configuration
│ │ └── authSlice.js # Authentication state
│ │
│ └── 📁 hooks/ # Custom React hooks
│
├── 📄 package.json, vite.config.js
├── 📄 tailwind.config.js, eslint.config.js
└── 📄 index.html, README.md
hirelink-backend/
├── 📁 src/
│ ├── 📄 app.js, index.js, constants.js
│ │
│ ├── 📁 controllers/ # Business logic
│ │ ├── user.controller.js
│ │ ├── job.controller.js
│ │ ├── company.controller.js
│ │ └── message.controller.js
│ │
│ ├── 📁 models/ # Mongoose schemas
│ │ ├── user.model.js, job.model.js
│ │ ├── companyProfile.model.js
│ │ └── jobSeekerProfile.model.js
│ │
│ ├── 📁 routes/ # API routes
│ ├── 📁 middlewares/ # Express middlewares
│ ├── 📁 utils/ # Helper functions
│ └── 📁 db/ # Database config
│
└── 📄 package.json, .env
- 🔒 JWT Authentication: Secure token-based authentication
- 🔑 Password Hashing: Bcrypt with salt rounds for password security
- 🛡️ Input Validation: Sanitization to prevent XSS attacks
- 🚫 SQL Injection Protection: MongoDB's parameterized queries
- 🔐 CORS Configuration: Controlled cross-origin requests
- 🍪 HTTP-Only Cookies: Secure token storage
- ⏱️ Token Expiration: Automatic session timeout
- 🔄 Refresh Token Rotation: Enhanced security for long sessions
| Feature | Job Seeker | Employer | Admin |
|---|---|---|---|
| View Jobs | ✅ | ✅ | ✅ |
| Apply for Jobs | ✅ | ❌ | ❌ |
| Post Jobs | ❌ | ✅ | ✅ |
| View Applications (Own) | ✅ | ❌ | ❌ |
| Manage Applicants | ❌ | ✅ | ✅ |
| Company Profile | ❌ | ✅ | ✅ |
| Platform Moderation | ❌ | ❌ | ✅ |
/* Primary Brand Colors */
--primary: #4F46E5; /* Indigo */
--primary-dark: #4338CA; /* Dark Indigo */
/* Neutral Colors */
--background: #FFFFFF;
--background-secondary: #F9FAFB;
--text-primary: #111827;
--text-secondary: #6B7280;
/* Status Colors */
--success: #10B981; --error: #EF4444;
--warning: #F59E0B; --info: #3B82F6;- Font Family: Inter, system fonts
- Sizes: xs (12px) → 4xl (36px)
- Weights: light (300), regular (400), medium (500), semibold (600), bold (700)
POST /users/signup- Register new userPOST /users/login- User loginPOST /users/logout- User logoutGET /users/current-user- Get authenticated user
GET /jobs/jobs- List all jobs (with filters)GET /jobs/jobs/:id- Get single jobPOST /jobs/post-job- Create job (Employer)PUT /jobs/update-job/:id- Update jobPOST /jobs/apply/:id- Apply for job (Job Seeker)POST /jobs/generate-description- AI job description
PUT /users/update-profile- Update user profilePOST /users/profile-picture- Upload profile picturePOST /users/resume- Upload resumeGET /users/public-profile/:id- View public profileGET /users/skill-gap/:jobId- AI skill gap analysis
GET /jobs/companies- List all companiesPUT /company/profile- Update company profileGET /company/jobs- Get company's job postings
Authorization: Bearer <access_token>master/main → Production-ready code
dev → Development branch
feature/* → New features
bugfix/* → Bug fixes
hotfix/* → Emergency fixes
feat: Add new feature
fix: Bug fix
docs: Documentation changes
style: Code style changes
refactor: Code refactoring
test: Add tests
chore: Build/config changes
# Lint code
npm run lint
# Format code
npm run format
# Run tests
npm test- ⚡ Vite Build Tool: Lightning-fast HMR and optimized builds
- 🎯 Code Splitting: Route-based lazy loading
- 📦 Tree Shaking: Remove unused code
- 🖼️ Image Optimization: Cloudinary automatic optimization
- 📡 API Caching: Redux state caching for API responses
- 🔄 Debouncing: Search and filter optimizations
- 📱 Responsive Images: Optimized for different screen sizes
- ⚙️ Lazy Loading: Components and images load on demand
cd hirelink-frontend
npm run build
# Deploy dist/ folder to hosting service# Using PM2
npm install -g pm2
pm2 start src/app.js --name hirelink-backend
pm2 save
pm2 startup- Create MongoDB Atlas cluster
- Whitelist IP addresses
- Update MONGODB_URI in production
.env
Ensure all production environment variables are set:
- Database URLs
- API keys (Cloudinary, Groq)
- JWT secrets
- CORS origins
We warmly welcome contributions from the community! HireLink is built with passion, and we'd love your help to make it even better.
-
🍴 Fork the Repository
# Click the "Fork" button on GitHub -
📥 Clone Your Fork
git clone https://github.com/YOUR_USERNAME/HireLink.git cd HireLink -
🌿 Create a Feature Branch
git checkout -b feature/amazing-feature # or git checkout -b bugfix/fix-issue-123 -
💻 Make Your Changes
- Write clean, readable code
- Follow the existing code style
- Add comments for complex logic
- Test your changes thoroughly
-
✅ Commit Your Changes
git add . git commit -m "feat: add amazing feature"
-
📤 Push to Your Fork
git push origin feature/amazing-feature
-
🎯 Create a Pull Request
- Go to the original repository
- Click "New Pull Request"
- Provide a clear description of your changes
- Link any related issues
- Follow ESLint configuration
- Use meaningful variable and function names
- Write self-documenting code
- Add JSDoc comments for functions
- Keep functions small and focused
Follow the Conventional Commits specification:
feat: Add new feature
fix: Bug fix
docs: Documentation changes
style: Code style changes
refactor: Code refactoring
test: Add unit tests for user service
chore: Update dependencies
We especially welcome contributions in these areas:
- 🐛 Bug Fixes: Help us squash bugs
- ✨ New Features: Implement features from our roadmap
- 📚 Documentation: Improve docs and add examples
- 🎨 UI/UX: Enhance the user interface
- ♿ Accessibility: Improve accessibility features
- 🌍 Localization: Add support for more languages
- 🧪 Testing: Write unit and integration tests
- ⚡ Performance: Optimize code and queries
- 🔒 Security: Identify and fix security issues
This project is licensed under the MIT License.
MIT License
Copyright (c) 2025 HireLink
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
This project was crafted with ❤️ and countless hours of dedication by a passionate developer committed to solving real-world problems in the Bangladeshi job market.
HireLink represents months of:
- 💡 Planning & Research: Understanding the job market needs
- 🎨 Design: Creating an intuitive and beautiful user experience
- 💻 Development: Writing clean, scalable, and maintainable code
- 🧪 Testing: Ensuring reliability and performance
- 📚 Documentation: Making it accessible for others
- 🔧 Optimization: Continuously improving the platform
Through this project:
- ⚛️ Mastered React 19 with hooks and modern patterns
- 🟢 Built robust RESTful APIs with Node.js and Express
- 🍃 Designed scalable MongoDB schemas
- 🎨 Created responsive UIs with Tailwind CSS 4
- 🔐 Implemented secure JWT authentication
- ☁️ Integrated cloud services (Cloudinary)
- 🤖 Leveraged AI for intelligent features
- 📦 Managed complex state with Redux Toolkit
- ⚡ Optimized performance and UX
- 📁 Files Created: 100+
- 📝 Lines of Code: 15,000+
- ⏱️ Development Time: 400+ hours
- ☕ Coffee Consumed: Countless cups
- 🌙 Late Nights: Too many to count
- 💪 Determination: Unlimited
- 🐙 GitHub: @Rockstatata
- 📧 Repository: HireLink
Special thanks to:
- 🙌 Open Source Community: For amazing libraries and tools
- 🎓 Online Resources: MDN, Stack Overflow, and dev communities
- ☁️ Cloudinary: For excellent media management APIs
- 🤖 Groq: For powerful AI capabilities
- 🍃 MongoDB: For flexible database solutions
- ⚛️ React Team: For an incredible UI library
- 🎨 Tailwind CSS: For making styling a breeze
- 📖 Read the Documentation
- 🐛 Report bugs via GitHub Issues
- 💬 Ask questions in Discussions
Please report it with:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Environment details (browser, OS, etc.)
- 📱 Mobile App (React Native)
- 💬 Real-time Chat Improvements
- 🔔 Push Notifications
- 📊 Advanced Analytics Dashboard
- 🎥 Video Interview Integration
- 🌐 Multi-language Support
- 🤝 Networking Features
- 📝 Blog Platform for Career Tips
- 🎓 Skill Assessment Tests
- 🏆 Gamification Elements
- ✅ Complete authentication system
- ✅ Job posting and searching
- ✅ Application management
- ✅ Company profiles
- ✅ User profiles
- ✅ AI-powered features
- ✅ Messaging system
- ✅ File uploads
- ✅ Responsive design
HireLink - Where Careers Meet Opportunities
Made with ❤️ by Rockstatata | © 2025 All Rights Reserved
HireLink follows a well-organized, scalable folder structure that separates concerns and promotes maintainability.
hirelink-frontend/
├── 📁 public/ # Static asse---
## 🤝 **Contributing**
We warmly welcome contributions from the community! HireLink is built with passion, and we'd love your help to make it even better.
### **How to Contribute**
1. **🍴 Fork the Repository**
```bash
# Click the "Fork" button on GitHub
-
📥 Clone Your Fork
git clone https://github.com/YOUR_USERNAME/HireLink.git cd HireLink -
🌿 Create a Feature Branch
git checkout -b feature/amazing-feature # or git checkout -b bugfix/fix-issue-123 -
💻 Make Your Changes
- Write clean, readable code
- Follow the existing code style
- Add comments for complex logic
- Test your changes thoroughly
-
✅ Commit Your Changes
git add . git commit -m "feat: add amazing feature"
-
📤 Push to Your Fork
git push origin feature/amazing-feature
-
🎯 Create a Pull Request
- Go to the original repository
- Click "New Pull Request"
- Provide a clear description of your changes
- Link any related issues
- Follow ESLint configuration
- Use meaningful variable and function names
- Write self-documenting code
- Add JSDoc comments for functions
- Keep functions small and focused
Follow the Conventional Commits specification:
feat: add user profile picture upload
fix: resolve login redirect issue
docs: update API documentation
style: format code with prettier
refactor: simplify job search logic
test: add unit tests for user service
chore: update dependencies
We especially welcome contributions in these areas:
- 🐛 Bug Fixes: Help us squash bugs
- ✨ New Features: Implement features from our roadmap
- 📚 Documentation: Improve docs and add examples
- 🎨 UI/UX: Enhance the user interface
- ♿ Accessibility: Improve accessibility features
- 🌍 Localization: Add support for more languages
- 🧪 Testing: Write unit and integration tests
- ⚡ Performance: Optimize code and queries
- 🔒 Security: Identify and fix security issues
This project is licensed under the MIT License.
MIT License
Copyright (c) 2025 HireLink
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
This project was crafted with ❤️ and countless hours of dedication by a passionate developer committed to solving real-world problems in the Bangladeshi job market.
HireLink represents months of:
- 💡 Planning & Research: Understanding the job market needs
- 🎨 Design: Creating an intuitive and beautiful user experience
- 💻 Development: Writing clean, scalable, and maintainable code
- 🧪 Testing: Ensuring reliability and performance
- 📚 Documentation: Making it accessible for others
- 🔧 Optimization: Continuously improving the platform
Through this project:
- ⚛️ Mastered React 19 with hooks and modern patterns
- 🟢 Built robust RESTful APIs with Node.js and Express
- 🍃 Designed scalable MongoDB schemas
- 🎨 Created responsive UIs with Tailwind CSS 4
- 🔐 Implemented secure JWT authentication
- ☁️ Integrated cloud services (Cloudinary)
- 🤖 Leveraged AI for intelligent features
- 📦 Managed complex state with Redux Toolkit
- ⚡ Optimized performance and UX
- 📁 Files Created: 100+
- 📝 Lines of Code: 15,000+
- ⏱️ Development Time: 400+ hours
- ☕ Coffee Consumed: Countless cups
- 🌙 Late Nights: Too many to count
- 💪 Determination: Unlimited
- 🐙 GitHub: @Rockstatata
- 📧 Repository: HireLink
Special thanks to:
- 🙌 Open Source Community: For amazing libraries and tools
- 🎓 Online Resources: MDN, Stack Overflow, and dev communities
- ☁️ Cloudinary: For excellent media management APIs
- 🤖 Groq: For powerful AI capabilities
- 🍃 MongoDB: For flexible database solutions
- ⚛️ React Team: For an incredible UI library
- 🎨 Tailwind CSS: For making styling a breeze
- 📖 Read the Documentation
- 🐛 Report bugs via GitHub Issues
- 💬 Ask questions in Discussions
Please report it with:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Environment details (browser, OS, etc.)
- 📱 Mobile App (React Native)
- 💬 Real-time Chat Improvements
- 🔔 Push Notifications
- 📊 Advanced Analytics Dashboard
- 🎥 Video Interview Integration
- 🌐 Multi-language Support
- 🤝 Networking Features
- 📝 Blog Platform for Career Tips
- 🎓 Skill Assessment Tests
- 🏆 Gamification Elements
- ✅ Complete authentication system
- ✅ Job posting and searching
- ✅ Application management
- ✅ Company profiles
- ✅ User profiles
- ✅ AI-powered features
- ✅ Messaging system
- ✅ File uploads
- ✅ Responsive design
HireLink - Where Careers Meet Opportunities
Made with ❤️ by Rockstatata | © 2025 All Rights Reserved
hirelink-backend/
├── 📁 src/
│ ├── 📄 app.js, index.js, constants.js
│ │
│ ├── 📁 controllers/ # Business logic
│ │ ├── user.controller.js
│ │ ├── job.controller.js
│ │ ├── company.controller.js
│ │ └── message.controller.js
│ │
│ ├── 📁 models/ # Mongoose schemas
│ │ ├── user.model.js, job.model.js
│ │ ├── companyProfile.model.js
│ │ └── jobSeekerProfile.model.js
│ │
│ ├── 📁 routes/ # API routes
│ ├── 📁 middlewares/ # Express middlewares
│ ├── 📁 utils/ # Helper functions
│ └── 📁 db/ # Database config
│
└── 📄 package.json, .env
- 🔒 JWT Authentication: Secure token-based authentication
- 🔑 Password Hashing: Bcrypt with salt rounds for password security
- 🛡️ Input Validation: Sanitization to prevent XSS attacks
- 🚫 SQL Injection Protection: MongoDB's parameterized queries
- 🔐 CORS Configuration: Controlled cross-origin requests
- 🍪 HTTP-Only Cookies: Secure token storage
- ⏱️ Token Expiration: Automatic session timeout
- 🔄 Refresh Token Rotation: Enhanced security for long sessions
| Feature | Job Seeker | Employer | Admin |
|---|---|---|---|
| View Jobs | ✅ | ✅ | ✅ |
| Apply for Jobs | ✅ | ❌ | ❌ |
| Post Jobs | ❌ | ✅ | ✅ |
| View Applications (Own) | ✅ | ❌ | ❌ |
| Manage Applicants | ❌ | ✅ | ✅ |
| Company Profile | ❌ | ✅ | ✅ |
| Platform Moderation | ❌ | ❌ | ✅ |
/* Primary Brand Colors */
--primary: #4F46E5; /* Indigo */
--primary-dark: #4338CA; /* Dark Indigo */
/* Neutral Colors */
--background: #FFFFFF;
--background-secondary: #F9FAFB;
--text-primary: #111827;
--text-secondary: #6B7280;
/* Status Colors */
--success: #10B981; --error: #EF4444;
--warning: #F59E0B; --info: #3B82F6;- Font Family: Inter, system fonts
- Sizes: xs (12px) → 4xl (36px)
- Weights: light (300), regular (400), medium (500), semibold (600), bold (700)
POST /users/signup- Register new userPOST /users/login- User loginPOST /users/logout- User logoutGET /users/current-user- Get authenticated user
GET /jobs/jobs- List all jobs (with filters)GET /jobs/jobs/:id- Get single jobPOST /jobs/post-job- Create job (Employer)PUT /jobs/update-job/:id- Update jobPOST /jobs/apply/:id- Apply for job (Job Seeker)POST /jobs/generate-description- AI job description
PUT /users/update-profile- Update user profilePOST /users/profile-picture- Upload profile picturePOST /users/resume- Upload resumeGET /users/public-profile/:id- View public profileGET /users/skill-gap/:jobId- AI skill gap analysis
GET /jobs/companies- List all companiesPUT /company/profile- Update company profileGET /company/jobs- Get company's job postings
Authorization: Bearer <access_token>master/main → Production-ready code
dev → Development branch
feature/* → New features
bugfix/* → Bug fixes
hotfix/* → Emergency fixes
feat: Add new feature
fix: Bug fix
docs: Documentation changes
style: Code style changes
refactor: Code refactoring
test: Add tests
chore: Build/config changes
# Lint code
npm run lint
# Format code
npm run format
# Run tests
npm test- ⚡ Vite Build Tool: Lightning-fast HMR and optimized builds
- 🎯 Code Splitting: Route-based lazy loading
- 📦 Tree Shaking: Remove unused code
- 🖼️ Image Optimization: Cloudinary automatic optimization
- 📡 API Caching: Redux state caching for API responses
- 🔄 Debouncing: Search and filter optimizations
- 📱 Responsive Images: Optimized for different screen sizes
- ⚙️ Lazy Loading: Components and images load on demand
cd hirelink-frontend
npm run build
# Deploy dist/ folder to hosting service# Using PM2
npm install -g pm2
pm2 start src/app.js --name hirelink-backend
pm2 save
pm2 startup- Create MongoDB Atlas cluster
- Whitelist IP addresses
- Update MONGODB_URI in production
.env
Ensure all production environment variables are set:
- Database URLs
- API keys (Cloudinary, Groq)
- JWT secrets
- CORS origins
A comprehensive, enterprise-grade job recruitment and career networking platform designed specifically for the Bangladeshi job market. Built with cutting-edge technologies and powered by AI to revolutionize the hiring process.
📖 Documentation • 🎯 Features • 🛠️ Tech Stack • 🚀 Getting Started • 📸 Screenshots
- ✨ Project Overview
- 🎯 Key Features
- 🏗️ System Architecture
- 🛠️ Technology Stack
- 🚀 Getting Started
- 📸 Screenshots & UI Showcase
- 🗂️ Project Structure
- 🔐 Authentication & Authorization
- 🎨 Design System
- 🌐 API Documentation
- 🤝 Contributing
- 📜 License
- 👨💻 About the Developer
HIRELINK is not just another job portal—it's a comprehensive career ecosystem that brings together job seekers, employers, and AI-driven insights to create meaningful professional connections. Designed with the Bangladeshi job market in mind, it features localized currency (BDT), location-based search, and culturally relevant user experiences.
To democratize access to quality employment opportunities and streamline the recruitment process through intelligent automation, creating a bridge between talented professionals and forward-thinking companies in Bangladesh.
- 🤖 AI-Powered Intelligence: Leverages Groq AI to generate optimized job descriptions, analyze skill gaps, and provide personalized career recommendations
- 🎨 Modern User Experience: Built with React 19 and Tailwind CSS 4 for a sleek, responsive, and intuitive interface
- 🔒 Enterprise-Grade Security: JWT-based authentication with role-based access control (RBAC)
- ☁️ Cloud-Native: Cloudinary integration for seamless file uploads and media management
- 📊 Real-Time Analytics: Comprehensive dashboards for employers and job seekers
- 💬 Integrated Messaging: Built-in communication system for seamless interaction
- 🇧🇩 Bangladesh-First: Localized for Bangladeshi job market with BDT currency, local locations, and relevant job categories
🔓 Click to expand Job Seeker features
- ✅ Comprehensive Profile Creation: Build professional profiles with personal info, skills, education, work experience
- 📸 Profile Picture Upload: Upload and manage profile pictures via Cloudinary
- 📄 Resume Management: Upload, update, and manage resumes (PDF, DOC, DOCX)
- 🎯 Skill Portfolio: Add, remove, and showcase your technical and soft skills
- 🏆 Certificate Showcase: Upload certificates and credentials to enhance credibility
- 🔗 Social Profile Integration: Connect LinkedIn, GitHub, and portfolio links
- 🔍 Advanced Search Filters: Search by keywords, location, company, salary range, experience level
- 💼 Multiple Job Types: Full-time, Part-time, Internship, Freelance, Contract positions
- 🏢 Work Mode Preferences: Remote, Onsite, Hybrid job options
- 💰 Salary Range Filtering: Filter jobs based on expected salary (BDT)
- 📍 Location-Based Search: Find jobs in specific cities across Bangladesh
- 🏪 Company Profiles: Explore detailed company information before applying
- ⭐ Save Jobs: Bookmark interesting positions for later review
- 📝 One-Click Apply: Streamlined application process with profile auto-fill
- 📊 Application Dashboard: Track all your applications in one place
- 🔔 Status Updates: Real-time notifications on application progress
- 📈 Application Analytics: View response rates and success metrics
- ⏰ Interview Scheduling: Manage interview invitations and schedules
- 💬 Direct Messaging: Communicate with recruiters seamlessly
- 🤖 Skill Gap Analysis: AI analyzes your profile against job requirements
- 💡 Personalized Recommendations: Get job suggestions based on your profile
- 📚 Learning Path Suggestions: Receive recommendations for skill development
🔓 Click to expand Employer features
- 🏭 Company Branding: Create compelling company profiles with logos and descriptions
- 📊 Company Analytics: Track profile views and engagement metrics
- 👥 Multiple HR Users: Add and manage multiple recruiters under one company
- 🌐 Social Links: Showcase company social media and website
- ✍️ Rich Job Posting: Create detailed job postings with rich text formatting
- 🤖 AI Job Description Generator: Generate optimized job descriptions using Groq AI
- 📋 Custom Requirements: Specify education, experience, skills, and qualifications
- 💵 Flexible Salary Options: Set salary ranges with negotiable options
- ⏳ Application Deadlines: Set deadlines for applications
- 📈 Job Performance Metrics: Track views, applications, and conversion rates
- ✏️ Edit Anytime: Update job postings even after publication
- 🗑️ Job Management: Archive or delete outdated positions
- 📥 Application Dashboard: View all applications in an organized interface
- 👀 Candidate Profiles: Access complete candidate profiles and resumes
- ⭐ Shortlisting System: Mark candidates for further review
- 📝 Application Status: Update candidates through the hiring pipeline
- 💬 Direct Communication: Message candidates directly through the platform
- 🎯 Candidate Filtering: Filter applicants by skills, experience, education
- 📊 Hiring Analytics: Track time-to-hire and other recruitment metrics
- 🔍 Candidate Search: Search through job seeker database
- 📧 Bulk Actions: Manage multiple applications simultaneously
- 📈 Recruitment Dashboard: Comprehensive overview of hiring activities
- 🎯 Skills Matching: AI-powered matching of candidates to job requirements
🔓 Click to expand Platform features
- 🔐 Secure Authentication: JWT-based auth with refresh token mechanism
- 🎭 Role-Based Access Control: Separate experiences for job seekers, employers, and admins
- 📱 Fully Responsive Design: Perfect experience on mobile, tablet, and desktop
- 🌙 Theme Support: Light and dark mode with customizable color schemes
- 💬 Messaging System: Real-time communication between users
- 🔔 Notification Center: Stay updated with all platform activities
- 🔍 Global Search: Quick search across jobs, companies, and users
- 📊 Analytics Dashboard: Comprehensive insights for all user types
- 🔒 Password Management: Change password and forgot password functionality
- 🎯 Personalized Onboarding: Role-specific onboarding flows
- ⚡ Performance Optimized: Fast load times and smooth interactions
- ♿ Accessibility: WCAG 2.1 compliant design
- 🌍 Localization Ready: Built for easy language expansion
graph TB
subgraph Frontend[Frontend Layer - React + Vite]
A[React 19.1.1] --> B[Redux Toolkit State Management]
A --> C[React Router v7 Navigation]
A --> D[Tailwind CSS 4 Styling]
B --> E[Authentication State]
B --> F[User Data State]
end
subgraph API[API Layer - Express.js]
G[Express Server] --> H[JWT Middleware]
G --> I[Multer File Upload]
G --> J[CORS Configuration]
H --> K[Protected Routes]
end
subgraph Services[External Services]
L[Cloudinary - Media Storage]
M[Groq AI - Job Description Generation]
end
subgraph Database[Database Layer - MongoDB]
N[(MongoDB Atlas)] --> O[User Collection]
N --> P[Job Collection]
N --> Q[Company Profile Collection]
N --> R[Job Seeker Profile Collection]
N --> S[Application Collection]
N --> T[Message Collection]
end
Frontend -->|HTTP/HTTPS| API
API -->|Mongoose ODM| Database
API -->|SDK| L
API -->|API| M
style Frontend fill:#61dafb,stroke:#333,stroke-width:2px
style API fill:#68a063,stroke:#333,stroke-width:2px
style Database fill:#4db33d,stroke:#333,stroke-width:2px
style Services fill:#ff6b6b,stroke:#333,stroke-width:2px
- Three-Tier Architecture: Clean separation of presentation, business logic, and data layers
- RESTful API Design: Standard HTTP methods with proper status codes
- Schema-Based Validation: Mongoose schemas ensure data integrity
- Middleware Pipeline: Request processing through authentication, validation, and error handling
- File Upload Strategy: Multipart form data handling with size and type validation
- State Management: Centralized Redux store with slice-based organization
| Technology | Version | Purpose |
|---|---|---|
| ⚛️ React | 19.1.1 | UI library for building component-based interfaces |
| ⚡ Vite | 7.1.7 | Next-generation frontend build tool with HMR |
| 🎨 Tailwind CSS | 4.1.13 | Utility-first CSS framework for rapid UI development |
| 🔄 Redux Toolkit | 2.9.0 | State management with simplified store configuration |
| 🧭 React Router | 7.9.3 | Client-side routing with nested routes support |
| 📡 Axios | 1.12.2 | Promise-based HTTP client with interceptors |
| 🎭 Hero Icons | 2.2.0 | Beautiful hand-crafted SVG icons |
| 💎 Font Awesome | 7.0.1 | Comprehensive icon library |
| 🎨 Tremor | 3.18.7 | React components for building dashboards |
| 🎯 Iconify | 4.1.1 | Universal icon framework |
| 🔄 React Icons | 5.5.0 | Popular icon library for React |
| Technology | Version | Purpose |
|---|---|---|
| 🟢 Node.js | - | JavaScript runtime for server-side execution |
| 🚂 Express.js | 5.1.0 | Fast, unopinionated web framework for Node.js |
| 🍃 MongoDB | - | NoSQL database for flexible data modeling |
| 📦 Mongoose | 8.18.2 | Elegant MongoDB object modeling for Node.js |
| 🔐 JWT | 9.0.2 | Secure token-based authentication |
| 🔒 Bcrypt.js | 3.0.2 | Password hashing with salt generation |
| ☁️ Cloudinary | 2.7.0 | Cloud-based image and video management |
| 🤖 Groq SDK | 0.33.0 | AI integration for intelligent features |
| 📁 Multer | 2.0.2 | Middleware for handling multipart/form-data |
| 🍪 Cookie Parser | 1.4.7 | Parse and handle HTTP cookies |
| 🌐 CORS | 2.8.5 | Enable Cross-Origin Resource Sharing |
| 🧹 DOMPurify | 3.2.7 | XSS sanitization for HTML content |
| 🔧 dotenv | 17.2.2 | Environment variable management |
- 📝 ESLint - Code linting and quality assurance
- 🎨 Prettier - Code formatting for consistency
- 🔍 VS Code - Primary development environment
- 🐙 Git - Version control and collaboration
- 📦 npm - Package management
Follow these comprehensive instructions to set up and run HireLink on your local development environment.
Before you begin, ensure you have the following installed on your system:
Node.js (v18.x or higher)
npm (v9.x or higher)
MongoDB (v6.x or higher) or MongoDB Atlas account
GitRecommended Tools:
- VS Code or your preferred code editor
- MongoDB Compass for database visualization
- Postman or Thunder Client for API testing
git clone https://github.com/Rockstatata/HireLink.git
cd HireLink/hirelink-backendnpm installThis will install all required packages:
- Express.js server framework
- MongoDB & Mongoose for database
- JWT for authentication
- Cloudinary for file uploads
- Groq SDK for AI features
- And more...
Create a .env file in the hirelink-backend directory:
# Server Configuration
PORT=5000
NODE_ENV=development
# Database Configuration
MONGODB_URI=mongodb://localhost:27017/hirelink
# OR for MongoDB Atlas:
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/hirelink
# JWT Configuration
ACCESS_TOKEN_SECRET=your_super_secret_access_token_key_here_min_32_chars
ACCESS_TOKEN_EXPIRY=1d
REFRESH_TOKEN_SECRET=your_super_secret_refresh_token_key_here_min_32_chars
REFRESH_TOKEN_EXPIRY=10d
# Cloudinary Configuration (Get from https://cloudinary.com)
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
# Groq AI Configuration (Get from https://groq.com)
GROQ_API_KEY=your_groq_api_key_here
# CORS Configuration
CORS_ORIGIN=http://localhost:5173🔑 How to get API keys:
Cloudinary Setup
- Visit cloudinary.com and sign up for a free account
- Navigate to your Dashboard
- Copy your Cloud Name, API Key, and API Secret
- Paste them into your
.envfile
Free tier includes:
- 25 GB storage
- 25 GB bandwidth per month
- Perfect for development and small projects
Groq AI Setup
- Visit console.groq.com and create an account
- Navigate to API Keys section
- Generate a new API key
- Copy and paste it into your
.envfile
Free tier includes:
- Fast inference speeds
- Multiple model options (Llama, Mixtral, etc.)
- Great for AI-powered features
npm start✅ Success! Your backend should now be running at http://localhost:5000
Verify the server:
# Check if server is running
curl http://localhost:5000/api/v1/users/ping
# Expected response: { "success": true, "message": "Server is running" }cd ../hirelink-frontendnpm installThis installs:
- React 19 with latest features
- Vite for lightning-fast development
- Tailwind CSS 4 for modern styling
- Redux Toolkit for state management
- Axios for API communication
- And more...
Create a config.js file in hirelink-frontend directory (if not exists):
const config = {
// Backend API URL
API_BASE_URL: import.meta.env.VITE_API_URL || 'http://localhost:5000/api/v1',
// Application Settings
APP_NAME: 'HireLink',
APP_VERSION: '1.0.0',
// Feature Flags
ENABLE_AI_FEATURES: true,
ENABLE_MESSAGING: true,
ENABLE_NOTIFICATIONS: true,
};
export default config;Optional: Create .env file for environment variables:
VITE_API_URL=http://localhost:5000/api/v1
VITE_APP_NAME=HireLinknpm run dev✅ Success! Your frontend should now be running at http://localhost:5173
🎉 Open your browser and visit: http://localhost:5173
For Job Seekers
- Register - Click "Sign Up" and choose "Job Seeker"
- Complete Onboarding - Fill in your basic information
- Build Profile - Add skills, education, work experience
- Upload Resume - Upload your latest resume (PDF/DOC)
- Search Jobs - Use filters to find relevant opportunities
- Apply - One-click apply to jobs that match your profile
- Track Applications - Monitor your application status in the dashboard
For Employers
- Register - Click "Sign Up" and choose "Employer"
- Company Setup - Complete your company profile
- Add Logo - Upload your company logo
- Post Jobs - Create job postings (or use AI to generate descriptions)
- Review Applications - Check candidate profiles and resumes
- Shortlist - Mark promising candidates for further review
- Contact - Message candidates directly through the platform
cd hirelink-frontend
npm run buildThis creates an optimized production build in the dist/ directory.
Preview the production build:
npm run previewThe backend is production-ready. For deployment:
-
Set production environment variables
-
Use a process manager like PM2:
npm install -g pm2 pm2 start src/app.js --name hirelink-backend
-
Configure Nginx as reverse proxy (optional)
Common Issues and Solutions
Issue: MongoDB connection error
Solution:
- Ensure MongoDB is running: `mongod` or use MongoDB Atlas
- Check your MONGODB_URI in .env file
- Verify network connectivity
Issue: Port already in use
Solution:
- Change PORT in backend .env file
- Kill the process using the port: `npx kill-port 5000`
- On Windows: `netstat -ano | findstr :5000` then `taskkill /PID <PID> /F`
Issue: CORS errors
Solution:
- Verify CORS_ORIGIN in backend .env matches frontend URL
- Check that frontend is running on the specified port
- Clear browser cache and reload
Issue: Cloudinary upload fails
Solution:
- Verify Cloudinary credentials in .env
- Check file size (default limit: 10MB)
- Ensure file type is supported (jpg, png, pdf, doc, docx)
Issue: Groq AI features not working
Solution:
- Verify GROQ_API_KEY in .env
- Check API rate limits
- Ensure internet connectivity
# Backend tests (if configured)
cd hirelink-backend
npm test
# Frontend tests (if configured)
cd hirelink-frontend
npm testExperience the beautiful and intuitive interface of HireLink through these screenshots:
| Welcome Screen | Login Interface |
|---|---|
![]() |
![]() |
| Modern landing page with compelling CTAs | Secure login with form validation |
| Job Seeker Registration | Employer Registration |
|---|---|
![]() |
![]() |
| Simple registration for job seekers | Company registration with details |
| Onboarding Flow | Profile Building |
|---|---|
![]() |
![]() |
| Step-by-step onboarding process | Guided profile completion |
| Dashboard | Job Search & Listings |
|---|---|
![]() |
![]() |
| Personalized job seeker dashboard | Advanced job search with filters |
| Job Filters | Job Details |
|---|---|
![]() |
![]() |
| Comprehensive filtering options | Detailed job information view |
| Complete Job Info | My Applications |
|---|---|
![]() |
![]() |
| Full job description with AI insights | Track all your applications |
| User Profile | Profile Details |
|---|---|
![]() |
![]() |
| Comprehensive profile overview | Skills and experience showcase |
| Certifications | Saved Jobs |
|---|---|
![]() |
![]() |
| Upload certificates and credentials | Bookmark jobs for later |
| Employer Onboarding | Company Setup |
|---|---|
![]() |
![]() |
| Company information collection | Additional company details |
| Brand Setup | Employer Dashboard |
|---|---|
![]() |
![]() |
| Company branding and logo upload | Comprehensive employer dashboard |
| Job Posting - Step 1 | Job Posting - Step 2 |
|---|---|
![]() |
![]() |
| Basic job information | Requirements and qualifications |
| Job Posting - Step 3 | Applications Management |
|---|---|
![]() |
![]() |
| Final details and AI description | Review and manage applicants |
| Shortlisted Candidates | Company Profile |
|---|---|
![]() |
![]() |
| Manage shortlisted applicants | Public company profile view |
| Company Details | Companies Directory |
|---|---|
![]() |
![]() |
| Detailed company information | Browse all companies on platform |
- 🎨 Modern UI/UX: Clean, intuitive interface following Material Design principles
- 📱 Fully Responsive: Perfect experience across all devices and screen sizes
- 🎭 Consistent Theming: Beautiful color scheme throughout the application
- ⚡ Smooth Animations: Delightful micro-interactions and transitions
- ♿ Accessible Design: WCAG 2.1 compliant for inclusive user experience
- 🖼️ Rich Media Support: Optimized image loading and display
- 🔄 Loading States: Skeleton screens and progress indicators
- ✅ Form Validation: Real-time feedback and error messages





























