Skip to content

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UITJobs - Full-Stack Recruitment Platform

Next.js Express TypeScript MongoDB Socket.io Docker License: MIT

UITJobs is a specialized recruitment platform and career hub developed for student candidates and IT recruiters. The platform connects students seeking early-career opportunities with hiring companies through job discovery, application status tracking, real-time notifications, and an interview preparation hub.


Key Features

Candidate Workflow

  • Academic Profile Management: Student account setup with profile fields (Student ID, Major, Cohort) for identity verification.
  • Job Discovery & Search: Keyword and filter-based job search supporting position levels, skills, working forms, and locations.
  • Personalized Job Recommendations: Skill-based scoring engine surfaces best-fit vacancies from the candidate's profile skills.
  • Saved Jobs & Company Following: Bookmark job postings and follow companies to track new openings.
  • Application Status Tracking: Centralized dashboard tracking CV submissions through real-time updates (Initial/Pending, Viewed, Approved, Rejected).
  • Interview Preparation Hub: Peer-shared interview experiences tagged by company and difficulty, alongside curated study resources and DSA code templates.
  • Company Reviews & Salary Trends: 5-axis employer reviews with optional student anonymity and aggregated market salary statistics.

Employer Workflow

  • Job Posting & Rich Editor: Rich-text job creation (TinyMCE) with workplace image uploads, expiration dates, and applicant capacity caps.
  • Candidate CV Management: Searchable applicant inbox with direct PDF viewing and status management (Approved / Rejected).
  • Recruitment Analytics: Dashboard presenting total views, application counts, approval rates, and performance statistics.

Admin Moderation

  • Role-Based Access Control (RBAC): Permission-based administration protecting core management routes.
  • Account & Content Moderation: User account verification, employer approval workflows, content moderation, and action audit logs.

Technology Stack

  • Frontend: Next.js 16 (App Router, Hybrid SSR/CSR), React 19, Tailwind CSS 4, Recharts, Socket.IO Client, React Hook Form, Zod.
  • Backend: Node.js, Express 5, TypeScript, Socket.IO, Nodemailer, Bcryptjs, Joi, Helmet, express-rate-limit.
  • Database & Storage: MongoDB Atlas (Mongoose ORM), Atlas Search, Cloudinary CDN.
  • Infrastructure: Docker, Docker Compose, Nginx Reverse Proxy.

Project Structure

UITJobs/
├── BE/                  # Express REST API (TypeScript)
│   ├── config/          # Environment variables & constants
│   ├── controllers/     # Domain controllers (admin/, candidate/, company/) plus flat controllers (auth, job, search, review, salary, location, interview-experience)
│   ├── helpers/         # Search, mail, socket, cache, cloudinary, audit-log, & mongoose-plugins/
│   ├── interfaces/      # Custom type extensions & interfaces
│   ├── middlewares/     # Auth JWT, RBAC guards, rate limiters, & request logging
│   ├── models/          # 18 Mongoose data schemas & plugins
│   ├── routes/          # API route definitions (admin, auth, candidate, company, job, review, salary, search, location, interview-experience; flat *.route.ts files)
│   ├── validates/       # Joi request payload validation schemas
│   ├── index.ts         # Backend server entry point & Socket.IO server
│   └── Dockerfile       # Backend container configuration
├── FE/                  # Next.js 16 App Router Frontend
│   ├── public/          # Static assets & public files
│   ├── src/
│   │   ├── actions/     # Server actions (revalidation)
│   │   ├── app/         # App router (public: home, job, search, salary-insights, faq; auth dashboards: admin-manage, candidate-manage, company-manage; components)
│   │   ├── configs/     # App variables & configurations
│   │   ├── contexts/    # React contexts (AuthContext, SocketContext, AdminSocketContext)
│   │   ├── hooks/       # Custom React hooks (useAuth, useSocket)
│   │   ├── schemas/     # Zod form validation schemas
│   │   ├── types/       # TypeScript type definitions
│   │   ├── utils/       # Helper utilities (date, currency, API URL)
│   │   └── middleware.ts# Next.js request path header middleware
│   ├── next.config.ts   # Next.js build configuration
│   └── Dockerfile       # Frontend container configuration
├── Nginx_proxy/         # Nginx reverse proxy configuration
│   ├── nginx.conf       # Proxy routing configuration
│   └── Dockerfile       # Nginx container configuration
└── docker-compose.yaml  # Multi-container orchestration

Getting Started

Prerequisites

  • Node.js (v20+ for FE, v22+ for BE)
  • Yarn or npm
  • MongoDB Atlas account
  • Cloudinary account

Quick Start (Docker)

# Clone the repository
git clone https://github.com/thaihadefi/Innovation-Project.git
cd Innovation-Project

# Set up environment variables
cp BE/.env.example BE/.env
cp FE/.env.example FE/.env

# TinyMCE API key is a Docker build-arg, not read from FE/.env — export it in your shell first
export NEXT_PUBLIC_API_TINYMCE="your-tinymce-api-key"

# Start services using Docker Compose
docker compose up --build -d

Screenshots

Candidate Experience

Candidate Dashboard

 

Job Search and Filters

 

Company Reviews

 

Interview Preparation Hub

 

Employer Workspace

Recruitment Analytics Dashboard

 

Job Vacancy Management

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages