A full-stack recruitment portal designed for managing recruitment in an efficient way, with a multi-step application form for applicants and an admin dashboard for club members to review responses.
- Multi-step Application Form: Applicants fill out their details and answer domain-specific questions in a dynamic multi-step form.
- Admin Dashboard: Club members can access a dashboard that provides:
- A summary of domain-wise responses.
- A searchable table to quickly find specific applications.
- Database Backups: Automated backups to AWS S3 are set up using GitHub Actions.
- Animations: Used Framer Motion to add smooth animations.
- Authentication: Implemented using Clerk for the admin portal.
- Next.js
- TypeScript
- PostgreSQL
- Prisma
- shadcn/ui
- Framer Motion
- Clerk
- React Hook Form
- Zod
Database backups are automated with GitHub Actions to ensure data is regularly stored in AWS S3. Follow the guide here.
From src/app/data
- domains: Domain and subdomain options for applicants to choose from.
- techQs: A list of technical questions for each domain. (Similarly create for)
From src/app/utils
- generateQs: Returns the questions for each domain, pass the qs to this function
-
Clone the repository:
git clone https://github.com/Swebi/Recruitment.git
-
Install dependencies:
npm install
-
Set up the environment variables in your
.env
file (refer env example):DATABASE_URL= NEXT_PUBLIC_RECRUITMENT_CLOSED= NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= CLERK_SECRET_KEY= NEXT_PUBLIC_CLERK_SIGN_IN_URL=
-
Run the development server:
npm run dev
-
Prisma setup:
npx prisma generate npx prisma db push