A full-stack application for managing candidate referrals, built with the MERN stack (MongoDB, Express, React, Node.js) and AWS S3 for resume storage.
- Authentication: Secure recruiter login (JWT-based). Registration is handled internally via API.
- Referral Management: Add, view, and delete candidate referrals.
- Resume Handling: Securely upload and store resumes on AWS S3 with Pre-signed URL access.
- Dashboard: Filter candidates by job title or status (Pending, Reviewed, Hired, Rejected).
- Security: Protected API routes and secure file access.
- Responsive Design: Fully responsive UI for desktop and mobile.
git clone https://github.com/AyushCoder9/Candidate-Referral-Management.git
cd Candidate-Referral-ManagementNavigate to the backend directory and install dependencies:
cd backend
npm installCreate a .env file in the backend directory:
PORT=5001
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_REGION=your_aws_region
AWS_BUCKET_NAME=your_s3_bucket_name
FRONTEND_URL=http://localhost:3000Start the backend server:
npm run devOpen a new terminal, navigate to the frontend directory, and install dependencies:
cd ../frontend
npm installCreate a .env file in the frontend directory:
REACT_APP_API_URL=http://localhost:5001Start the React application:
npm startThe app will run at http://localhost:3000.
- Render Cold Start: The backend is hosted on Render's free tier. Please wait 1-2 minutes for the initial request to process, as the service spins down after inactivity. if the login fails initially, simply try again after a minute.
- Login Credentials: Use the mock credentials displayed on the Login page to access the system (Username:
admin, Password:password123). - Resume Format: Only PDF files are supported for resume uploads.
- AWS S3: The application assumes valid AWS credentials are provided. If running locally without AWS keys, upload functionality will fail.
- Single User Role: Currently, the system supports a single 'Recruiter' role. Multi-tenant or Admin/User role separation is a future enhancement.
POST /api/auth/login: Login user. (Default PORT: 5001)POST /api/auth/register: Create new user (Internal/Admin tool only, no UI).GET /api/candidates: Fetch all candidates.POST /api/candidates: Create a referral.
- Frontend: React.js, Context API, CSS.
- Backend: Node.js, Express.js.
- Database: MongoDB.
- Storage: AWS S3.