A modern, responsive React application designed for college tech clubs to display coding problem statements and handle registrations via Google Forms.
- Responsive Design: Works on mobile, tablet, and desktop (Tailwind CSS).
- Accordion Cards: Smooth expansion animations for problem details.
- Google Forms Integration: Automatically pre-fills the selected problem title in the registration form.
- Accessibility: Keyboard navigation, ARIA attributes, and focus management.
-
Install Dependencies (assuming a generic React setup):
npm install
Note: If you are creating this from scratch, ensure you have
react,react-dom, andtypescriptinstalled. -
Run Development Server:
npm run dev # or npm start
All content and settings are located in constants.ts.
Open constants.ts and modify the PROBLEMS array. You can change titles, descriptions, constraints, and resources.
To make the "Register" button work with your own form:
- Create a Google Form with a "Short Answer" question for "Problem Name".
- Get the pre-filled link:
- Click the three dots menu in Google Forms -> Get pre-filled link.
- Type "TEST" into the "Problem Name" field.
- Click Get Link and copy it.
- Extract the IDs:
- The link looks like:
https://docs.google.com/forms/d/e/1FAIpQLSd.../viewform?usp=pp_url&entry.123456=TEST - FORM_ID: The long string between
/d/e/and/viewform(e.g.,1FAIpQLSd...). - ENTRY_ID: The number after
&entry.(e.g.,123456).
- The link looks like:
- Update
constants.ts:export const FORM_CONFIG = { formId: 'YOUR_FORM_ID_HERE', prefillEntryId: 'YOUR_ENTRY_ID_HERE' };
- Push this code to a GitHub repository.
- Import the project into Netlify or Vercel.
- The build settings usually detect Create React App or Vite automatically.
- Build Command:
npm run build - Publish Directory:
distorbuild
- Build Command:
- Deploy!
- Keyboard: Use
Tabto navigate cards. UseEnterorSpaceto expand a card. UseTabto reach the "Register" button inside. - Modal: When the modal opens, focus moves to it. Press
Escapeto close it.