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.
- 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
.
├── 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
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 |
| text | Email address | |
| created_at | timestamp | Registration timestamp |
- Row Level Security is enabled.
- Policies allow public inserts and authenticated users to read their own registrations.
- Node.js 18+
- npm or yarn
- Supabase project (for backend)
-
Clone the repository:
git clone <your-repo-url> cd nodedathon
-
Install dependencies:
npm install # or yarn install -
Set up environment variables:
- Copy
.env.local.exampleto.env.local(if provided) and fill in your Supabase credentials:NEXT_PUBLIC_SUPABASE_URL=your-supabase-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
- Copy
-
Run database migrations:
- Use the SQL in
supabase/migrations/to set up your database schema in Supabase.
- Use the SQL in
-
Start the development server:
npm run dev # or yarn dev -
Open your browser:
- Visit http://localhost:3000
npm run dev– Start the development servernpm run build– Build for productionnpm run start– Start the production servernpm run lint– Lint the codebase
- Next.js
- React
- Supabase
- Tailwind CSS
- Radix UI
- Framer Motion
- Sonner (toast notifications)
- TypeScript
Contributions are welcome! Please open issues or submit pull requests for improvements or bug fixes.