This is the official website for the Japanese Student Association (JSA) at UW-Madison.
It provides event listings, organization information, study abroad guidance, FAQ, career resources, and a contact form.
- React 19
- TypeScript
- Vite
- React Router (
HashRouter) - React Bootstrap + Bootstrap 5
- i18next / react-i18next
npm install
npm run devThe app runs at http://localhost:5173.
npm run dev: Start the development servernpm run build: Run TypeScript build and production buildnpm run preview: Preview the production build locallynpm run lint: Run ESLint
The following variables are used for Google Calendar event integration.
VITE_GOOGLE_CALENDAR_API_KEY=your_google_calendar_api_key_here
VITE_GOOGLE_CALENDAR_ID_CAREER=your_career_calendar_id_here
VITE_GOOGLE_CALENDAR_ID_COMMUNITY_CULTURE=your_community_culture_calendar_id_here
VITE_GOOGLE_CALENDAR_ID_COLLABORATIONS=your_collaborations_calendar_id_here
VITE_GOOGLE_CALENDAR_ID_EXTERNAL=your_external_calendar_id_hereCopy .env.example to .env and fill in your values.
/Home/aboutAbout/eventsEvents/exchange/exchange/considering-uw-madison/exchange/preparing-for-uw-madison/exchange/arriving-in-madison/exchange/resources/board/board/2025-2026/faq/careers/contact
Pushes to the main branch trigger GitHub Pages deployment via GitHub Actions (.github/workflows/deploy.yml).
The following GitHub Secrets are required in Actions.
VITE_GOOGLE_CALENDAR_API_KEYVITE_GOOGLE_CALENDAR_ID_CAREERVITE_GOOGLE_CALENDAR_ID_COMMUNITY_CULTUREVITE_GOOGLE_CALENDAR_ID_COLLABORATIONSVITE_GOOGLE_CALENDAR_ID_EXTERNAL
src/pages/: Page componentssrc/components/: Reusable UI componentssrc/config/appConfig.ts: Environment variable loading and app configsrc/utils/googleCalendar.ts: Google Calendar fetching logicsrc/i18n.ts: English/Japanese translation resources