A React-based platform built on the Sport Wales Project Template (SWPT) that enables athletes to share their experiences and stories securely. The platform facilitates anonymous feedback and story sharing to help improve Welsh sport.
The Athlete's Voice Platform transforms Sport Wales' athlete feedback process into a secure, accessible digital platform. It enables:
- Access code-based authentication
- Multiple story submission formats (written, voice, video)
- Anonymous sharing options
- Guided and free-form story submissions
- Safeguarding awareness and compliance
- Bilingual accessibility (English/Welsh)
- Progress tracking and story review
- Secure access code system
- Multiple entry points (direct/panel member referral)
- Session-based progress saving
- Dynamic routing based on submission stage
- Written submissions:
- Free-form journal style
- Guided question format
- Media submissions:
- Voice recordings
- Video messages
- Privacy controls:
- Anonymous submission option
- Contact preferences
- Sensitive content marking
- Welcome page with platform overview
- Access code verification
- Privacy and consent information
-
Personal Information (Optional)
- Sport selection
- Competition level
- Age range
- Privacy preferences
-
Story Submission
- Multiple format options
- Content guidelines
- Safeguarding information
- Progress saving
-
Final Review
- Content review
- Sharing preferences
- Submission confirmation
- Node.js (v18 or higher)
- npm (comes with Node.js)
- Git for version control
- Clone the repository:
git clone https://github.com/sportwales/athletes-voice.git
cd athletes-voice
- Install dependencies:
npm install
- Start development server:
npm run dev
athletes-voice/
├── src/
│ ├── components/
│ │ ├── engage/ # Story submission components
│ │ └── ui/ # UI components
│ ├── context/ # AthleteContext
│ ├── pages/ # Main page components
│ │ ├── EnterPage.jsx # Welcome & access
│ │ ├── LandingPage.jsx # Information & panel
│ │ ├── EngagePage.jsx # Story submission
│ │ └── ExitPage.jsx # Confirmation
│ └── styles/ # Global styles
AthleteInfoForm
: Personal information collectionStorySubmission
: Multi-format story inputFinalSteps
: Review and submission
AthleteContext
handles:
- Form data management
- Progress tracking
- Submission state
- Privacy preferences
AccessCodeInput
: Entry verificationLayout
: Page structureErrorBoundary
: Error handling
- Uses SWPT base configuration
- Follows Sport Wales Brand Guidelines
- Implements bilingual support
- Accessibility compliance
- Utilises SWPT styling system
- Custom components follow brand guidelines
- Responsive design for all devices
- Accessible color schemes
# Development server
npm run dev
# Production build
npm run build
# Preview production
npm run preview
- Build the project:
npm run build
- Deploy options:
- Use existing SWPT deployment pipeline
- Manual deployment to preferred hosting
- Netlify/Vercel supported
- Built on SWPT foundation
- React Router for navigation
- Tailwind CSS styling
- Form state management
- Bilingual support (English/Welsh)
- Accessibility compliance
- Error boundary implementation
- Progressive form saving
- Always use SWPT style guidelines
- Test bilingual content thoroughly
- Ensure safeguarding compliance
- Follow data protection guidelines
- Regular security updates
- Maintain accessibility standards
For technical support, contact the Sport Wales development team at [support-email].
Report security concerns to [security-email] or through the appropriate Sport Wales channels.
This project is proprietary to Sport Wales. All rights reserved.