View the site here: https://depaulcss.vercel.app
Club website for the DePaul University Computer Science Society. This project is a React single-page application built with Vite and deployed with a Vercel SPA rewrite so client-side routes work in production.
The site currently includes four main sections:
/- landing page with club information, meeting details, and Discord call to action/events- upcoming and past events rendered from CSV data inpublic/events/events.csv/projects- project inquiry section and project showcase area/eboard- executive board member profiles
- React 18
- Vite 5
- React Router DOM 6
- Papa Parse for reading event data from CSV files
- ESLint 9 for linting
- Node.js
- npm
npm installnpm run devBy default Vite will print the local development URL in the terminal.
npm run buildnpm run previewnpm run lint.
├── public/
│ ├── events/
│ │ ├── events.csv
│ │ └── pastEvents.csv
│ └── images/
├── src/
│ ├── components/
│ ├── pages/
│ ├── App.jsx
│ └── main.jsx
├── index.html
├── package.json
├── vercel.json
└── vite.config.js
The Events page parses public/events/events.csv in the browser using Papa Parse. The current CSV header is:
title,date,description,googleDriveLinkBehavior to be aware of:
- events with a future date are shown under Upcoming Events
- events with a past date are shown under Past Events
- both sections are derived from
events.csv googleDriveLinkis optional and can be used for event resources or photo folders
When editing dates, use a format that JavaScript Date can parse consistently.
Board member content is currently hard-coded in src/pages/Eboard.jsx. Update names, roles, bios, and image paths there.
The Projects page is currently scaffolded with static placeholder cards in src/pages/Projects.jsx and src/components/project/Project.jsx. If you want real project content, this is the next area to make data-driven.
The app includes vercel.json with a rewrite rule that sends all routes to /, which is required for React Router paths like /events, /projects, and /eboard to work after deployment.
- Static assets are served from
public/and referenced with root-relative paths such as/images/logo.png. - The landing page copy and social links are maintained directly in the React components under
src/components/.