Skip to content

huyho1/RecruitMe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recruit.me

A full-stack recruitment platform that connects job applicants with companies, built for CS 509 (Team Maryland).

Live Demo

Production URL: http://recruit-me3.s3-website-us-east-1.amazonaws.com/

This URL is inactive due to it being very costly to maintain on AWS

Overview

Recruit.me is a comprehensive job recruitment platform that facilitates the hiring process between applicants and companies. The platform supports three user types:

  • Applicants: Search for jobs, apply to positions, manage applications, and accept/reject offers
  • Companies: Post job listings, review applicants, manage offers, and search for candidates by skills
  • Admins: Generate reports and manage platform content

Architecture

Frontend

  • Framework: Next.js 16.0.0 (React 19.2.0)
  • Styling: Tailwind CSS 4
  • Language: TypeScript
  • Deployment: AWS S3 Static Website Hosting

Backend

  • Runtime: AWS Lambda Functions (Node.js ES Modules)
  • Database: MySQL (RDS)
  • API: RESTful endpoints via API Gateway

Project Structure

recruit.me/
├── src/app/              # Next.js application pages
│   ├── applicant/        # Applicant-facing pages
│   ├── company/          # Company-facing pages
│   ├── admin/            # Admin pages
│   └── api/              # API route handlers
├── lambda-functions/     # AWS Lambda backend functions
│   ├── acceptOffer/
│   ├── applyToJob/
│   ├── createJob/
│   └── ... (30+ functions)
└── database/
    └── schema.sql        # MySQL database schema

Getting Started

Prerequisites

  • Node.js 18+ and npm
  • MySQL database (local or RDS)
  • AWS CLI configured (for Lambda deployment)

Frontend Setup

  1. Navigate to the frontend directory:
cd recruit.me
  1. Install dependencies:
npm install
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser

Database Setup

  1. Create the database using the provided schema:
mysql -u your_username -p < recruit.me/database/schema.sql
  1. Update database connection settings in lambda-functions/config.mjs

Backend Setup (Lambda Functions)

  1. Navigate to the lambda functions directory:
cd recruit.me/lambda-functions
  1. Install dependencies:
npm install
  1. Package functions for deployment:
./package-lambdas.sh
  1. Deploy to AWS Lambda (configure your deployment script as needed)

Available Scripts

Frontend

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint

Backend

  • ./package-lambdas.sh - Package all Lambda functions into ZIP files

Features & Use Cases

Iteration 3

Admin:

  • Administrative features (TBD)

Company:

  • Review Applicants for Job

Applicant:

  • Accept Offer

Iteration 2

Company:

  • Activate Job
  • Close Job
  • Review Applicants for Job
  • Offer Jobs
  • Rescind Offer to Applicant

Applicant:

  • Search Jobs
  • Apply to Job
  • Accept Offer
  • Withdraw from Job
  • Reject Offer from Company

Iteration 1

Company:

  • Register Company
  • Review Company Profile
  • Edit Company Profile
  • Create Job
  • Edit Job

Applicant:

  • Register Applicant
  • Review Profile
  • Edit Profile

Database Schema

The database includes the following main entities:

  • Companies: Company profiles and information
  • Applicants: Applicant profiles and information
  • Jobs: Job postings with status (Draft, Active, Closed)
  • Applications: Application records linking applicants to jobs
  • Skills: Centralized skills database
  • Applicant Skills: Skills associated with applicant profiles
  • Job Skills: Required skills for job postings
  • Application Skills: Skills highlighted in specific applications
  • Admin: Administrative user accounts

See recruit.me/database/schema.sql for the complete schema definition.

Lambda Functions

The backend consists of 30+ Lambda functions handling various operations:

Authentication & Registration

  • registerApplicants - Applicant registration
  • registerCompanies - Company registration
  • loginApplicants - Applicant login
  • loginCompany - Company login

Profile Management

  • getApplicant - Retrieve applicant profile
  • getCompany - Retrieve company profile
  • editApplicant - Update applicant profile
  • editCompany - Update company profile

Job Management

  • createJob - Create new job posting
  • editJob - Update job posting
  • getJob - Retrieve job details
  • getJobById - Get job by ID
  • filterJobs - Search and filter jobs

Application Management

  • applyToJob - Submit job application
  • postApply - Process application submission
  • getApply - Retrieve application details
  • withdrawApplication - Withdraw an application
  • reapplyApplication - Reapply to a job

Applicant Review & Offers

  • getApplicantsFromJob - Get applicants for a job
  • reviewApplicant - Review and rate applicants
  • editApplicantRating - Update applicant rating
  • offerJob - Send job offer to applicant
  • acceptOffer - Accept a job offer
  • rejectOffer - Reject a job offer
  • rescindOffer - Rescind an offer
  • getApplicantOffers - Get offers for an applicant
  • getCompanyOffers - Get offers sent by company

Skills & Search

  • listSkills - Get all available skills
  • getApplicantsBySkills - Search applicants by skills

Reporting

  • reportApplicants - Generate applicant reports
  • reportJobs - Generate job reports

Tech Stack

  • Frontend: Next.js, React, TypeScript, Tailwind CSS
  • Backend: AWS Lambda, Node.js
  • Database: MySQL
  • Deployment: AWS S3, AWS Lambda, AWS API Gateway
  • Development: ESLint, Prettier

License

This project is developed for CS 509 coursework.

Team

Team Maryland - CS 509


For more details about specific features or implementation, refer to the source code in the respective directories.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors