Skip to content

evan-taylor/cprcc

Repository files navigation

Cal Poly Red Cross Club Website

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.

About

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)

Technology Stack

  • 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

Getting Started

Prerequisites

  • Node.js 20 or later
  • Bun 1.3+

Installation

  1. Clone the repository

  2. Install dependencies:

    bun install
  3. Set up environment variables: Create a .env.local file 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)
    
  4. Set up Convex authentication:

    npx convex dev

    Follow the setup prompts to configure your Convex backend.

  5. 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.

Project Structure

├── 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

Development

Code Quality

This project uses strict code quality standards:

  • Linting: Run npx ultracite check to check code quality
  • Formatting: Biome auto-formats on save (if configured in your editor)
  • Standards: See AGENTS.md and .rules for detailed coding guidelines

Available Scripts

  • 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 production
  • bun run start - Start production server
  • bun run lint - Run Ultracite lint checks

Features

Current Features

  • 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

Planned Features

  • Internal event management system
  • Member RSVP functionality
  • Volunteer hour tracking
  • Officer dashboard for event creation and analytics

Contributing

This is a student organization project. If you're a Cal Poly student interested in contributing, please reach out to the club officers.

Contact

Learn More

To learn more about the technologies used in this project:

About

Cal Poly Red Cross Club site/webapp

Resources

Stars

Watchers

Forks

Contributors