This is a full-stack web application for managing volleyball club operations, including member registration, personnel management, team formations, training sessions, and payment processing. The system is designed specifically for volleyball clubs to track members, organize teams, schedule sessions, and handle administrative tasks.
- August 6, 2025: Added comprehensive README.md with local setup instructions
- Enhanced Personnel, Club Members, and Family pages with professional formatting and icons
- Applied pastel color scheme throughout the application
- Created Email Logs page to display system-generated emails
- Fixed padding consistency across all pages to match Locations page
- Added sample email log data for demonstration
- Implemented role-based icons and visual enhancements
Preferred communication style: Simple, everyday language.
- Framework: React 18 with TypeScript for type safety
- Routing: Wouter for lightweight client-side routing
- State Management: TanStack Query for server state management and caching
- UI Components: Radix UI primitives with shadcn/ui component library
- Styling: Tailwind CSS with custom CSS variables for theming
- Forms: React Hook Form with Zod validation for type-safe form handling
- Build Tool: Vite for fast development and optimized production builds
- Runtime: Node.js with TypeScript
- Framework: Express.js for REST API endpoints
- Database Layer: Drizzle ORM for type-safe database operations
- Validation: Zod schemas shared between client and server
- Session Management: PostgreSQL-based session storage with connect-pg-simple
- Build Process: esbuild for server bundling and tsx for development
- Database: PostgreSQL with Neon serverless hosting
- Schema Management: Drizzle migrations in
migrations/directory - Core Entities:
- Locations (Head/Branch offices with capacity tracking)
- Personnel (Staff with roles and mandate types)
- Club Members (Players with SSN/Medicare validation and family associations)
- Family Members (Emergency contacts and guardians)
- Team Formations (Gender-based teams with coaches and duration)
- Sessions (Training/Game sessions with scoring)
- Payments (Membership fees and donations)
- Roles and Hobbies (Reference data)
- Relationships: Foreign key constraints linking members to families, teams to coaches, sessions to teams
- Data Integrity: Unique constraints on SSN and Medicare numbers, status enums for data consistency
- RESTful Design: CRUD operations for all major entities
- Endpoint Pattern:
/api/{resource}with standard HTTP methods - Data Validation: Request validation using Zod schemas
- Error Handling: Centralized error middleware with proper HTTP status codes
- Response Format: Consistent JSON responses with error details
- Monorepo Structure: Client, server, and shared code in single repository
- Hot Reload: Vite HMR for frontend, tsx watch mode for backend
- Path Aliases: TypeScript path mapping for clean imports (@/, @shared/)
- Replit Integration: Custom plugins for development environment integration
- Neon Database: Serverless PostgreSQL hosting with connection pooling
- WebSocket Support: Required for Neon serverless connections (ws package)
- Radix UI: Comprehensive set of accessible component primitives
- Lucide React: Icon library for consistent iconography
- Tailwind CSS: Utility-first CSS framework with PostCSS processing
- Class Variance Authority: Type-safe component variant management
- TypeScript: Static type checking across entire codebase
- Drizzle Kit: Database schema management and migration tools
- React Hook Form: Form state management with validation
- TanStack Query: Server state synchronization and caching
- Zod: Runtime type validation and schema definition
- Vite: Frontend build tool with plugin ecosystem
- esbuild: Fast JavaScript bundler for production server builds
- tsx: TypeScript execution for development server
- Wouter: Minimalist routing library for single-page application navigation