A modern recruitment platform UI: jobs, applications, recruiter and admin portals, and Stripe-powered course purchases against the Quick Hire API.
QUICK HIRE CLIENT is the Next.js frontend for Quick Hire. Applicants browse jobs, manage profiles, apply with CV upload, and buy published courses (checkout hosted by Stripe). Recruiters manage listings and incoming applications. Staff use the dashboard for moderation, taxonomy (industries / sub-industries), user administration, and course management.
🌐 Frontend Live URL: https://quick-hire-client-chi.vercel.app
🌐 Backend Live URL: https://quick-hire-server.onrender.com
🌐 Frontend GitHub: https://github.com/mazharul90007/quick-hire
🌐 Backend GitHub: https://github.com/mazharul90007/quick-hire-server
📚 API documentation: Postman Documentation
APPLICANT · RECRUITER · ADMIN · SUPER_ADMIN
- Job discovery: Listing and detail pages with filters (e.g. title, location, type).
- Featured jobs on the home experience.
- Apply: Authenticated apply flow with CV (PDF) and note; aligns with application APIs.
- Profile: Applicant profile and assets (backed by Cloudinary on the server).
- Courses: Public catalog, Stripe Checkout via server session (redirect), purchase history, success/cancel pages, receipt download when the API returns a PDF.
- Auth: Better Auth (email/password), session-aware navigation; email verification and password reset are handled by the backend mailer.
- Dashboard overview and job/application workflows.
- Jobs: Create and update postings (including fields such as employment type, salary, deadlines, featured flag, extended requirements where exposed in the UI).
- Applications: Review applications tied to their jobs.
- Overview and operational stats (jobs, applications, users) where implemented in the UI.
- Users: Manage applicants, recruiters, and staff lists with filtering/tabs as provided.
- Applications: Cross-cutting application views for moderation.
- Taxonomy: Industry and sub-industry management.
- Courses: CRUD for sellable courses (pricing, access duration, publish flag) against
/admin/courses.
- Marketing/home sections, public job and course catalog, and sign-in/register entry points.
- Framework: Next.js (v16.1.6), App Router
- UI: React 19, Tailwind CSS v4, Radix UI, Shadcn-style components
- Data: TanStack Query, Axios instance for REST
- State: Zustand
- Auth: Better Auth client (
baseURLderived fromNEXT_PUBLIC_API_URL) - Forms: React Hook Form, Zod,
@hookform/resolvers - UX: Sonner toasts, SweetAlert2 where used, Lucide React & React Icons
Stripe secrets and webhooks live on the server; the client starts checkout using the API and follows the returned checkout URL.
- Node.js v20+ recommended
- pnpm or npm
- A running Quick Hire Server (local or deployed) — see quick-hire-server README for database, Cloudinary, email, and Stripe setup
git clone https://github.com/mazharul90007/quick-hire.git
cd quick-hire/quick-hire-clientpnpm install
# or
npm installCreate .env.local in this directory.
Production / hosted API
NEXT_PUBLIC_API_URL="https://quick-hire-server.onrender.com/api/v1"Local API (default server port from backend README is 4000)
NEXT_PUBLIC_API_URL="http://localhost:4000/api/v1"The Better Auth client uses the same host with /api/v1 stripped, so it must match your server’s public URL and CORS/cookie settings.
pnpm dev
# or
npm run devOpen http://localhost:3000.
For full flows (uploads, checkout, mail), run the backend with a valid .env as described in the server README.
src/app— App Router routes: public site,(applicant),(recruiter),(dashboard)admin, auth pagessrc/components— Shared UI, dashboard, auth, jobs, portal shellsrc/hooks— React Query hooks and data helperssrc/lib— Axios client, Better Auth client, API helpers, utilitiessrc/store— Zustand storessrc/types— Shared TypeScript shapes for API responsessrc/assets— Static images and media
Data model and REST surface are documented in the server repo (including ERD image and endpoint list). Use the Postman link above for request/response details.
Mazharul Islam Sourabh
ISC
