Skip to content

sheikhlimon/quick-hire

Repository files navigation

🚀 QuickHire – Job Board & Application Platform

A full-stack job application platform where users can browse jobs, apply with resumes, and admins can manage job listings through a dedicated dashboard.

🔗 Live Demo: https://quick-hire-web-delta.vercel.app

⚙️ API: https://quick-hire-dr7g.onrender.com

✨ Key Features

  • User authentication and authorization (JWT-based)
  • Job browsing with search and filtering
  • Application submission with resume support
  • Admin dashboard for managing job listings
  • Responsive UI for mobile and desktop

🧱 Tech Stack

Next.js, Node.js, Express, MongoDB, Prisma, TypeScript, TailwindCSS

📁 Project Structure

quick-hire/
├── apps/
│   ├── web/      # Next.js frontend (port 3001)
│   └── server/   # Express backend (port 3000)
├── packages/
│   ├── db/       # Prisma schema & client
│   └── env/      # Environment validation (Zod)
└── package.json  # Monorepo root (Turborepo)

🚦 Getting Started

Prerequisites

  • Node.js 18+
  • MongoDB database
  • npm 10.9.4

Installation

  1. Clone the repository

    git clone <your-repo-url>
    cd quick-hire
  2. Install dependencies

    npm install
  3. Setup environment files

    Backend (apps/server/.env):

    cp apps/server/.env.example apps/server/.env
    # Then generate JWT secret:
    openssl rand -base64 32

    Frontend (apps/web/.env):

    cp apps/web/.env.example apps/web/.env
  4. Run database migrations

    npm run db:generate
    npm run db:push
  5. Start development servers

    npm run dev
  6. Open in browser

📡 API Endpoints

Health

  • GET /api/health - API health check

Jobs

  • GET /api/jobs - List all jobs
  • GET /api/jobs/:id - Get job details
  • POST /api/jobs - Create job (Admin)
  • DELETE /api/jobs/:id - Delete job (Admin)

Applications

  • POST /api/applications - Submit application

Auth

  • POST /api/auth/signup - Register user
  • POST /api/auth/login - Login user
  • GET /api/auth/me - Get current user

📝 Environment Variables

Variable Description Example
DATABASE_URL MongoDB connection string mongodb+srv://user:pass@cluster/db
CORS_ORIGIN Frontend URL for CORS http://localhost:3001
JWT_SECRET Secret for JWT tokens Generate with: openssl rand -base64 32
NEXT_PUBLIC_API_URL Backend API URL http://localhost:3000

🛠 Available Scripts

  • npm run dev - Start all apps
  • npm run build - Build all apps
  • npm run dev:web - Start frontend only
  • npm run dev:server - Start backend only
  • npm run check-types - Type check all apps
  • npm run db:push - Push schema to database
  • npm run db:generate - Generate Prisma client
  • npm run db:studio - Open Prisma Studio

About

Job board application allowing users to browse jobs, submit applications, and admins to manage listings

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors