This is a Next.js project bootstrapped with create-next-app
.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx
. The page auto-updates as you edit the file.
This project uses next/font
to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
This project includes integration with Google Sheets to store user registration data.
-
Create a Google Cloud project:
- Go to the Google Cloud Console
- Create a new project
-
Enable the Google Sheets API:
- In your project, go to "APIs & Services" > "Library"
- Search for "Google Sheets API" and enable it
-
Create a service account:
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "Service Account"
- Fill in the required information and create the account
- Click on the service account email to view details
- Go to the "Keys" tab
- Add a new key (JSON format)
- Download the JSON file
-
Set up environment variables:
- Create a
.env.local
file with the following variables:GOOGLE_SPREADSHEET_ID=your-spreadsheet-id GOOGLE_SERVICE_ACCOUNT_EMAIL=your-service-account-email GOOGLE_PRIVATE_KEY="your-private-key"
- Replace the values with your actual credentials
- Create a
-
Share your Google Sheet:
- Open your Google Sheet
- Click "Share" and add your service account email with Editor permissions
The app uses the following structure in the spreadsheet:
- Sheet1: User registrations (Name, Phone Number, Gender, Branch/Department, Interests)
- Contact: Contact form submissions (Name, Email, Message)