The official website for the Cal Poly San Luis Obispo Red Cross Club, serving as the primary digital hub for students interested in volunteering with the American Red Cross chapter on campus.
This website provides information about the Cal Poly Red Cross Club, including:
- Mission and Organization: Learn about the American Red Cross mission and the Cal Poly chapter
- Volunteer Opportunities: Information about blood drives, disaster relief, health and safety training
- Getting Started: Step-by-step guides for becoming an approved Red Cross volunteer
- Deployment Information: Details about GAP training and disaster response opportunities
- Contact: Multiple ways to connect with the club (email, GroupMe, Instagram)
- Frontend: Next.js 16 with App Router, React 19, Tailwind CSS 4
- Backend: Convex (backend-as-a-service)
- Authentication: Convex Auth with password strategy
- Package Manager: Bun
- Code Quality: Biome + Ultracite presets
- Node.js 20 or later
- Bun 1.3+
-
Clone the repository
-
Install dependencies:
bun install
-
Set up environment variables: Create a
.env.localfile with:NEXT_PUBLIC_CONVEX_URL=your_convex_url NEXT_PUBLIC_POSTHOG_KEY=your_posthog_project_key (optional) RESEND_API_KEY=your_resend_api_key (optional, required for password reset and carpool emails) -
Set up Convex authentication:
npx convex dev
Follow the setup prompts to configure your Convex backend.
-
Run the development server:
bun run dev
If you only want the frontend without a connected Convex backend:
bun run dev:frontend
The app will be available at http://localhost:3000.
├── app/ # Next.js App Router pages
│ ├── page.tsx # Home page (mission, who we are)
│ ├── contact/ # Contact information
│ ├── events/ # Events and volunteer opportunities
│ ├── deployment/ # Deployment and GAP training info
│ ├── volunteer-connection/ # Red Cross signup guide
│ ├── signin/ # Authentication page
│ └── admin/ # Admin dashboard
├── components/ # Shared React components
│ ├── site-header.tsx # Main navigation
│ └── convex-client-provider.tsx
├── convex/ # Convex backend functions
│ ├── schema.ts # Database schema
│ └── index.ts # API functions
└── biome.jsonc # Code formatting config
This project uses strict code quality standards:
- Linting: Run
npx ultracite checkto check code quality - Formatting: Biome auto-formats on save (if configured in your editor)
- Standards: See
AGENTS.mdand.rulesfor detailed coding guidelines
bun run dev- Start development server (runs both Next.js and Convex)bun run dev:frontend- Start frontend only (no Convex login required)bun run build- Build for productionbun run start- Start production serverbun run lint- Run Ultracite lint checks
- Informational pages about the Red Cross Club and volunteer opportunities
- Step-by-step volunteer onboarding guides
- Contact information and social media links
- Authentication system for future member features
- Forgot/reset password flow for password-based accounts
- Responsive design with Tailwind CSS
- Internal event management system
- Member RSVP functionality
- Volunteer hour tracking
- Officer dashboard for event creation and analytics
This is a student organization project. If you're a Cal Poly student interested in contributing, please reach out to the club officers.
- Email: redcrossclub@calpoly.edu
- Instagram: @calpolyredcross
- GroupMe: Join via the contact page
To learn more about the technologies used in this project: