A modern, responsive recruitment website built with Next.js, Tailwind CSS, and Google Sheets integration.
- Modern UI: Dark mode, smooth animations (Framer Motion), clean component structure.
- Application Form: Detailed form with validation (Zod) and "Proof of Work" link support.
- Google Sheets Backend: Automatically saves responses to a Google Sheet.
- Responsive: Fully optimized for mobile and desktop.
- Go to the Google Cloud Console.
- Create a new project (e.g., "Club-Recruitment").
- Search for "Google Sheets API" and enable it.
- Go to IAM & Admin > Service Accounts.
- Click Create Service Account, give it a name (e.g., "sheets-editor").
- Skip the role assignment (optional) and click Done.
- Click on the newly created service account email.
- Go to the Keys tab -> Add Key -> Create new key -> JSON.
- This will download a JSON file. Keep this safe!
- Create a new Google Sheet.
- Share the sheet with the client_email found in your downloaded JSON file (give "Editor" access).
- Copy the Sheet ID from the URL (the string between
/d/and/edit).
- Rename
.env.exampleto.env.local. - Fill in the values from your JSON key file and Sheet ID:
GOOGLE_SHEETS_SPREADSHEET_ID=1X8FoHiuP0usHV_au-1eJ_JJHqPJzWGaYH-DL3QM2S0k GOOGLE_SHEETS_CLIENT_EMAIL=your_service_account_email GOOGLE_SHEETS_PRIVATE_KEY="your_private_key_including_newlines"
npm install
npm run devOpen http://localhost:3000.
- Push your code to GitHub.
- Import the project in Vercel.
- Add the Environment Variables in the Vercel dashboard.
- Note: For
GOOGLE_PRIVATE_KEY, ensure you copy the entire key string. The code is set up to handle newline characters correctly.
- Note: For
src/components: UI components (Hero, Navbar, Form, etc.)src/lib: Helper functions (Google Sheets logic)src/app/api: Backend API routes