A comprehensive React-based website for Ghana's premier dance competition, featuring registration, gallery, and admin functionality.
- Responsive Design: Mobile-first design with smooth animations
- Team Registration: Complete registration form with validation
- Database Integration: Appwrite backend for data management
- Email Notifications: Automated email notifications via EmailJS
- Admin Dashboard: View and manage registrations
- Gallery: Showcase past events and hall of fame
- Search Functionality: Smart search across all pages
- Progressive Loading: Animated section loading for better UX
- Frontend: React 19.1, Vite 7.1
- Styling: TailwindCSS 4.1, DaisyUI 5.0
- Backend: Appwrite (Database, Authentication)
- Email: EmailJS for notifications
- Icons: Lucide React
- Routing: React Router 7.8
Before running this project, make sure you have:
- Node.js (v18+ recommended)
- npm or yarn package manager
- Appwrite account and project setup
- EmailJS account for email notifications
-
Clone the repository
git clone <your-repo-url> cd ABK
-
Install dependencies
npm install
-
Environment Setup Copy the
.envfile and update with your credentials:# Appwrite Configuration VITE_APPWRITE_PROJECT_ID=your_project_id VITE_APPWRITE_ENDPOINT=https://fra.cloud.appwrite.io/v1 VITE_APPWRITE_DATABASE_ID=your_database_id VITE_APPWRITE_REGISTRATION_COLLECTION_ID=registrations # EmailJS Configuration VITE_EMAILJS_PUBLIC_KEY=your_emailjs_public_key VITE_EMAILJS_SERVICE_ID=your_service_id VITE_EMAILJS_TEMPLATE_ID=your_template_id VITE_EMAILJS_CONFIRMATION_TEMPLATE_ID=your_confirmation_template_id VITE_ADMIN_EMAIL=your_admin_email@gmail.com
-
Database Setup
npm run dev # Navigate to http://localhost:5173/setup # Click "Test Connection" → "Setup Collection" → "Test Registration"
npm run devThe app will be available at http://localhost:5173
npm run buildnpm run previewnpm run lint/- Home page with event info and auditions/register- Team registration form/gallery- Past events and hall of fame/admin- Admin dashboard (view registrations)/test- Test registration system/setup- Database setup and testing
- Create an Appwrite project
- Create a database named "abk-database"
- The application will auto-create the "registrations" collection
- See
APPWRITE_SETUP.mdfor detailed setup instructions
- Create EmailJS account
- Set up email service and templates
- See
EMAILJS_SETUP.mdfor detailed setup instructions
- Navigate to
/testto run registration system tests - Choose between full system, Appwrite-only, or email-only tests
- Home page loads and animations work
- Navigation between pages works
- Search functionality works across pages
- Registration form validation works
- Registration submission saves to database
- Email notifications are sent
- Admin dashboard displays registrations
- Gallery tabs and content work
- Responsive design works on mobile/desktop
src/
├── appwrite/ # Appwrite configuration and services
├── components/ # Reusable components
│ └── assets/ # Images and static assets
├── routes/ # Page components
├── services/ # External service integrations
├── styles/ # CSS and styling
└── utils/ # Utility functions and setup
- Dark Theme: Professional dark color scheme
- Smooth Animations: Progressive loading and hover effects
- Mobile Responsive: Optimized for all screen sizes
- Modern UI: Clean, professional design with TailwindCSS
- Accessibility: Proper ARIA labels and keyboard navigation
- Build Errors: Run
npm run lintto check for code issues - Database Connection: Use
/setuproute to test and configure - Email Not Working: Check EmailJS configuration and spam folder
- Assets Not Loading: Verify all images are in
src/components/assets/
- Ensure all VITE_ prefixed environment variables are set
- Restart development server after changing environment variables
- Check browser console for detailed error messages
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Email: pcjosh00@gmail.com
- Check the setup guides in
APPWRITE_SETUP.mdandEMAILJS_SETUP.md - Use the
/testroute for system diagnostics
Accra Boogie King 2025 - Ghana's Ultimate Dance Competition