ByteSteps is a comprehensive digital skills learning platform specifically designed for elderly users and those new to technology. Built with accessibility, security, and user-friendliness at its core, ByteSteps provides personalized learning pathways to help users gain confidence with digital tools.
- Personalized Learning Paths: AI-powered assessment creates custom learning journeys
- Accessibility First: WCAG AA compliant with large touch targets and screen reader support
- Offline Support: Continue learning even without internet connection
- Local Resources: Connects users with nearby libraries and support centers
- GDPR Compliant: Full data privacy with export and deletion capabilities
- Multi-Language Ready: Infrastructure prepared for Welsh language support
- Frontend: React 18.3 + TypeScript 5.6
- Styling: Tailwind CSS + Radix UI components
- Backend: Supabase (PostgreSQL + Edge Functions)
- AI Integration: OpenAI GPT-4 for personalized coaching
- Security: AES-GCM encryption, comprehensive RLS policies
- Deployment: Vercel with global CDN
- Node.js 18+
- npm or pnpm
- Supabase account
- OpenAI API key
- Clone the repository:
git clone https://github.com/yourusername/bytesteps.git
cd bytesteps- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env.local- Configure your environment variables:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
OPENAI_API_KEY=your_openai_key- Run database migrations:
npm run db:migrate- Start the development server:
npm run devbytesteps/
├── src/
│ ├── components/ # React components
│ ├── pages/ # Route pages
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Utility functions
│ ├── content/ # Learning content
│ └── types/ # TypeScript definitions
├── supabase/
│ ├── functions/ # Edge functions
│ └── migrations/ # Database schema
└── public/ # Static assets
- Encryption: AES-GCM 256-bit encryption for sensitive data
- Rate Limiting: Comprehensive API protection
- Input Sanitization: AI prompt injection prevention
- RLS Policies: Row-level security on all database tables
- Security Headers: Full CSP, HSTS, and XSS protection
ByteSteps has passed comprehensive security auditing. For detailed security status and verification queries, see Security Status.
# Verify no SECURITY DEFINER views (should return 0)
psql -c "SELECT COUNT(*) FROM pg_views WHERE schemaname = 'public' AND definition ILIKE '%security definer%';"See Known Issues for Supabase linter false positives and workarounds.
# Run unit tests
npm run test
# Run E2E tests
npm run test:e2e
# Run security audit
npm run security:audit- Lighthouse Score: 95+ across all metrics
- Bundle Size: <200KB gzipped
- Time to Interactive: <2s on 3G
- Memory Usage: <50MB typical usage
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Designed with input from Age UK digital inclusion research
- Accessibility testing by local charities
- Security audit performed by independent security researchers
- Documentation: docs.bytesteps.co.uk
- Issues: GitHub Issues
- Email: support@bytesteps.co.uk