6 weeks workshop
# Nodedathon – African Node Operator Training Program
Welcome to Nodedathon, Africa's premier node operator training platform. This project empowers users to learn validator setup, DVT integration, and earn POAPs through hands-on challenges, building the future of blockchain in Africa.
## Features
- **Modern Next.js 13+ App** with App Router and React Server Components
- **Supabase Integration** for user registration and data storage
- **Tailwind CSS** for rapid, themeable UI development
- **Radix UI** and custom UI components for accessible, beautiful interfaces
- **Animated registration dialog** with Framer Motion
- **Toast notifications** with Sonner, styled to match the app theme
- **Modular, scalable component structure**
- **Database migrations** for easy schema management
## Project Structure
```
.
├── app/ # Next.js app directory (routing, layout, pages)
│ ├── layout.tsx # Root layout with Toaster
│ ├── page.tsx # Main landing page
│ └── globals.css # Global styles
├── components/ # Reusable UI and logic components
│ ├── registration-dialog.tsx
│ ├── sections/ # Landing page sections
│ └── ui/ # UI primitives (button, dialog, input, etc.)
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries (if any)
├── supabase/ # Supabase backend integration
│ └── migrations/ # SQL migration files
├── package.json # Project metadata and dependencies
├── tailwind.config.ts # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
```
## Database Schema
The main table is `registrations`:
| Column | Type | Description |
| ----------- | --------- | ---------------------- |
| id | uuid | Primary key |
| full_name | text | User's full name |
| telegram | text | Telegram handle |
| eth_address | text | Ethereum address |
| email | tex …