Commit Graph

4 Commits

Author SHA1 Message Date
4d31e16381 chore: Remove old authentication configs and clean up environment files
Some checks failed
CI/CD Pipeline / Backend Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Tests (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
Removed old/unused configuration files:
- .env (root) - Old Google OAuth production credentials (not used)
- .env.example (root) - Old Google OAuth template (replaced by Auth0)
- docker-compose.dev.yml - Old Keycloak setup (replaced by Auth0)
- Makefile - Unused build automation

Improved environment configuration:
- Created frontend/.env.example - Auth0 template for frontend
- Updated backend/.env.example:
  - Fixed port numbers (5433 for postgres, 6380 for redis)
  - Added clearer Auth0 setup instructions
  - Matches docker-compose.yml port configuration

Current setup:
- docker-compose.yml - PostgreSQL & Redis services (in use)
- backend/.env - Auth0 credentials (in use, not committed)
- frontend/.env - Auth0 credentials (in use, not committed)
- *.env.example files - Templates for new developers

All old Google OAuth and Keycloak references removed.
Application now runs on Auth0 only.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 17:34:08 +01:00
d3e08cd04c chore: Major repository cleanup - remove 273+ obsolete files
Some checks failed
CI/CD Pipeline / Backend Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Tests (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
This commit removes obsolete, duplicate, and legacy files that have accumulated
over the course of development. The repository is now focused on the current
Auth0-based, NestJS/React implementation.

Files Removed:

1. Old Backup Directories (150+ files)
   - backend-old-20260125/ (entire directory)
   - frontend-old-20260125/ (entire directory)
   These should never have been committed to version control.

2. Obsolete Authentication Documentation (12 files)
   - KEYCLOAK_INTEGRATION_COMPLETE.md
   - KEYCLOAK_SETUP.md
   - SUPABASE_MIGRATION.md
   - GOOGLE_OAUTH_*.md (4 files)
   - OAUTH_*.md (3 files)
   - auth0-action.js
   - auth0-signup-form.json
   We are using Auth0 only - these docs are no longer relevant.

3. Legacy Deployment Files (15 files)
   - DOCKER_HUB_*.md (3 files)
   - STANDALONE_INSTALL.md
   - UBUNTU_INSTALL.md
   - SIMPLE_DEPLOY.md
   - deploy.sh, simple-deploy.sh, standalone-setup.sh
   - setup.sh, setup.ps1
   - docker-compose.{hub,prod,test}.yml
   - Dockerfile.e2e
   - install.md
   These deployment approaches were abandoned.

4. Legacy Populate Scripts (12 files)
   - populate-events*.{js,sh} (4 files)
   - populate-test-data.{js,sh}
   - populate-vips.js
   - quick-populate-events.sh
   - update-departments.js
   - reset-database.ps1
   - test-*.js (2 files)
   All replaced by Prisma seed (backend/prisma/seed.ts).

5. Implementation Status Docs (16 files)
   - BUILD_STATUS.md
   - NAVIGATION_UX_IMPROVEMENTS.md
   - NOTIFICATION_BADGE_IMPLEMENTATION.md
   - DATABASE_MIGRATION_SUMMARY.md
   - DOCUMENTATION_CLEANUP_SUMMARY.md
   - PERMISSION_ISSUES_FIXED.md
   Historical implementation notes - no longer needed.

6. Duplicate/Outdated Documentation (10 files)
   - PORT_3000_SETUP_GUIDE.md
   - POSTGRESQL_USER_MANAGEMENT.md
   - REVERSE_PROXY_OAUTH_SETUP.md
   - WEB_SERVER_PROXY_SETUP.md
   - SIMPLE_USER_MANAGEMENT.md
   - USER_MANAGEMENT_RECOMMENDATIONS.md
   - ROLE_BASED_ACCESS_CONTROL.md
   - README-API.md
   Information already covered in main README.md and CLAUDE.md.

7. Old API Documentation (2 files)
   - api-docs.html
   - api-documentation.yaml
   Outdated - API has changed significantly.

8. Environment File Duplicates (2 files)
   - .env.prod
   - .env.production
   Redundant with .env.example.

Updated .gitignore:
- Added patterns to prevent future backup directory commits
- Added *-old-*, backend-old*, frontend-old*

Impact:
- Removed 273 files
- Reduced repository size significantly
- Cleaner, more navigable codebase
- Easier onboarding for new developers

Current Documentation:
- README.md - Main documentation
- CLAUDE.md - AI context and development guide
- REQUIREMENTS.md - Requirements
- CASL_AUTHORIZATION.md - Current auth system
- ERROR_HANDLING.md - Error handling patterns
- QUICKSTART.md - Quick start guide
- DEPLOYMENT.md - Deployment guide
- TESTING*.md - Testing guides
- SETUP_GUIDE.md - Setup instructions

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 17:00:12 +01:00
d2754db377 Major: Unified Activity System with Multi-VIP Support & Enhanced Search/Filtering
Some checks failed
CI/CD Pipeline / Backend Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Tests (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
## Overview
Complete architectural overhaul merging dual event systems into a unified activity model
with multi-VIP support, enhanced search capabilities, and improved UX throughout.

## Database & Schema Changes

### Unified Activity Model (Breaking Change)
- Merged Event/EventTemplate/EventAttendance into single ScheduleEvent model
- Dropped duplicate tables: Event, EventAttendance, EventTemplate
- Single source of truth for all activities (transport, meals, meetings, events)
- Migration: 20260131180000_drop_duplicate_event_tables

### Multi-VIP Support (Breaking Change)
- Changed schema from single vipId to vipIds array (String[])
- Enables multiple VIPs per activity (ridesharing, group events)
- Migration: 20260131122613_multi_vip_support
- Updated all backend services to handle multi-VIP queries

### Seed Data Updates
- Rebuilt seed.ts with unified activity model
- Added multi-VIP rideshare examples (3 VIPs in SUV, 4 VIPs in van)
- Includes mix of transport + non-transport activities
- Balanced VIP test data (50% OFFICE_OF_DEVELOPMENT, 50% ADMIN)

## Backend Changes

### Services Cleanup
- Removed deprecated common-events endpoints
- Updated EventsService for multi-VIP support
- Enhanced VipsService with multi-VIP activity queries
- Updated DriversService, VehiclesService for unified model
- Added add-vips-to-event.dto for bulk VIP assignment

### Abilities & Permissions
- Updated ability.factory.ts: Event → ScheduleEvent subject
- Enhanced guards for unified activity permissions
- Maintained RBAC (Administrator, Coordinator, Driver roles)

### DTOs
- Updated create-event.dto: vipId → vipIds array
- Updated update-event.dto: vipId → vipIds array
- Added add-vips-to-event.dto for bulk operations
- Removed obsolete event-template DTOs

## Frontend Changes

### UI/UX Improvements

**Renamed "Schedule" → "Activities" Throughout**
- More intuitive terminology for coordinators
- Updated navigation, page titles, buttons
- Changed "Schedule Events" to "Activities" in Admin Tools

**Activities Page Enhancements**
- Added comprehensive search bar (searches: title, location, description, VIP names, driver, vehicle)
- Added sortable columns: Title, Type, VIPs, Start Time, Status
- Visual sort indicators (↑↓ arrows)
- Real-time result count when searching
- Empty state with helpful messaging

**Admin Tools Updates**
- Balanced VIP test data: 10 OFFICE_OF_DEVELOPMENT + 10 ADMIN
- More BSA-relevant organizations (Coca-Cola, AT&T, Walmart vs generic orgs)
- BSA leadership titles (National President, Chief Scout Executive, Regional Directors)
- Relabeled "Schedule Events" → "Activities"

### Component Updates

**EventList.tsx (Activities Page)**
- Added search state management with real-time filtering
- Implemented multi-field sorting with direction toggle
- Enhanced empty states for search + no data scenarios
- Filter tabs + search work together seamlessly

**VIPSchedule.tsx**
- Updated for multi-VIP schema (vipIds array)
- Shows complete itinerary timeline per VIP
- Displays all activities for selected VIP
- Groups by day with formatted dates

**EventForm.tsx**
- Updated to handle vipIds array instead of single vipId
- Multi-select VIP assignment
- Maintains backward compatibility

**AdminTools.tsx**
- New balanced VIP test data (10/10 split)
- BSA-context organizations
- Updated button labels ("Add Test Activities")

### Routing & Navigation
- Removed /common-events routes
- Updated navigation menu labels
- Maintained protected route structure
- Cleaner URL structure

## New Features

### Multi-VIP Activity Support
- Activities can have multiple VIPs (ridesharing, group events)
- Efficient seat utilization tracking (3/6 seats, 4/12 seats)
- Better coordination for shared transport

### Advanced Search & Filtering
- Full-text search across multiple fields
- Instant filtering as you type
- Search + type filters work together
- Clear visual feedback (result counts)

### Sortable Data Tables
- Click column headers to sort
- Toggle ascending/descending
- Visual indicators for active sort
- Sorts persist with search/filter

### Enhanced Admin Tools
- One-click test data generation
- Realistic BSA Jamboree scenario data
- Balanced department representation
- Complete 3-day itineraries per VIP

## Testing & Validation

### Playwright E2E Tests
- Added e2e/ directory structure
- playwright.config.ts configured
- PLAYWRIGHT_GUIDE.md documentation
- Ready for comprehensive E2E testing

### Manual Testing Performed
- Multi-VIP activity creation ✓
- Search across all fields ✓
- Column sorting (all fields) ✓
- Filter tabs + search combination ✓
- Admin Tools data generation ✓
- Database migrations ✓

## Breaking Changes & Migration

**Database Schema Changes**
1. Run migrations: `npx prisma migrate deploy`
2. Reseed database: `npx prisma db seed`
3. Existing data incompatible (dev environment - safe to nuke)

**API Changes**
- POST /events now requires vipIds array (not vipId string)
- GET /events returns vipIds array
- GET /vips/:id/schedule updated for multi-VIP
- Removed /common-events/* endpoints

**Frontend Type Changes**
- ScheduleEvent.vipIds: string[] (was vipId: string)
- EventFormData updated accordingly
- All pages handle array-based VIP assignment

## File Changes Summary

**Added:**
- backend/prisma/migrations/20260131180000_drop_duplicate_event_tables/
- backend/src/events/dto/add-vips-to-event.dto.ts
- frontend/src/components/InlineDriverSelector.tsx
- frontend/e2e/ (Playwright test structure)
- Documentation: NAVIGATION_UX_IMPROVEMENTS.md, PLAYWRIGHT_GUIDE.md

**Modified:**
- 30+ backend files (schema, services, DTOs, abilities)
- 20+ frontend files (pages, components, types)
- Admin tools, seed data, navigation

**Removed:**
- Event/EventAttendance/EventTemplate database tables
- Common events frontend pages
- Obsolete event template DTOs

## Next Steps

**Pending (Phase 3):**
- Activity Templates for bulk event creation
- Operations Dashboard (today's activities + conflicts)
- Complete workflow testing with real users
- Additional E2E test coverage

## Notes
- Development environment - no production data affected
- Database can be reset anytime: `npx prisma migrate reset`
- All servers tested and running successfully
- HMR working correctly for frontend changes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 16:35:24 +01:00
868f7efc23 Major Enhancement: NestJS Migration + CASL Authorization + Error Handling
Some checks failed
CI/CD Pipeline / Backend Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Tests (push) Has been cancelled
CI/CD Pipeline / Build Docker Images (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
Complete rewrite from Express to NestJS with enterprise-grade features:

## Backend Improvements
- Migrated from Express to NestJS 11.0.1 with TypeScript
- Implemented Prisma ORM 7.3.0 for type-safe database access
- Added CASL authorization system replacing role-based guards
- Created global exception filters with structured logging
- Implemented Auth0 JWT authentication with Passport.js
- Added vehicle management with conflict detection
- Enhanced event scheduling with driver/vehicle assignment
- Comprehensive error handling and logging

## Frontend Improvements
- Upgraded to React 19.2.0 with Vite 7.2.4
- Implemented CASL-based permission system
- Added AbilityContext for declarative permissions
- Created ErrorHandler utility for consistent error messages
- Enhanced API client with request/response logging
- Added War Room (Command Center) dashboard
- Created VIP Schedule view with complete itineraries
- Implemented Vehicle Management UI
- Added mock data generators for testing (288 events across 20 VIPs)

## New Features
- Vehicle fleet management (types, capacity, status tracking)
- Complete 3-day Jamboree schedule generation
- Individual VIP schedule pages with PDF export (planned)
- Real-time War Room dashboard with auto-refresh
- Permission-based navigation filtering
- First user auto-approval as administrator

## Documentation
- Created CASL_AUTHORIZATION.md (comprehensive guide)
- Created ERROR_HANDLING.md (error handling patterns)
- Updated CLAUDE.md with new architecture
- Added migration guides and best practices

## Technical Debt Resolved
- Removed custom authentication in favor of Auth0
- Replaced role checks with CASL abilities
- Standardized error responses across API
- Implemented proper TypeScript typing
- Added comprehensive logging

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 08:50:25 +01:00