Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ See `docs/RELEASE_CHECKLIST.md` for the production launch & rollback checklist.

3. **Access the application:**
- Open http://localhost:3001
- Use the demo login with any email/name for testing (disabled in production)
- Use SIWE (Sign In With Ethereum) to authenticate with your wallet

### Vercel / CI troubleshooting

Expand All @@ -130,12 +130,10 @@ If `pnpm install` or the Vercel build fails with registry errors such as `ERR_IN

## Authentication

The app includes a demo credentials provider for testing **in development only**. In production:
1. The demo provider is automatically disabled
2. Configure SIWE (Sign In With Ethereum) — works out of the box
3. Optionally configure OAuth providers (Google, GitHub) via env vars
4. Set up email authentication if needed
5. Use a strong, unique `NEXTAUTH_SECRET`
The app uses SIWE (Sign In With Ethereum) for wallet-based authentication. You can also optionally configure:
1. OAuth providers (Google, GitHub) via environment variables
2. Email authentication if needed
3. Use a strong, unique `NEXTAUTH_SECRET` in production

## Troubleshooting

Expand Down
20 changes: 0 additions & 20 deletions deploy.sh

This file was deleted.

4 changes: 2 additions & 2 deletions e2e/login.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { test, expect } from '@playwright/test';

test('login page loads and demo sign-in present', async ({ page }) => {
test('login page loads and SIWE button present', async ({ page }) => {
await page.goto('/login');
await expect(page.locator('text=Sign in to start your Web3 learning journey')).toBeVisible();
await expect(page.getByRole('button', { name: /Sign In with Demo Account/i })).toBeVisible();
await expect(page.getByRole('button', { name: /Sign In with Ethereum/i })).toBeVisible();
});
3 changes: 0 additions & 3 deletions next.config.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
eslint: {
ignoreDuringBuilds: true, // ✅ correct place
},
images: {
remotePatterns: [
{
Expand Down
21 changes: 8 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"private": true,
"packageManager": "pnpm@9.15.4",
"engines": {
"node": "20.x",
"node": ">=20",
"pnpm": ">=9.0.0"
},
"pnpm": {
Expand All @@ -14,7 +14,7 @@
]
},
"scripts": {
"dev": "next dev",
"dev": "next dev --webpack",
"build": "next build",
"start": "next start",
"lint": "eslint",
Expand Down Expand Up @@ -52,6 +52,7 @@
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.7",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tabs": "^1.1.13",
"@radix-ui/react-toggle": "^1.1.10",
"@radix-ui/react-toggle-group": "^1.1.11",
Expand All @@ -61,28 +62,21 @@
"@tabler/icons-react": "^3.35.0",
"@tailwindcss/postcss": "^4",
"@tanstack/react-table": "^8.21.3",
"@tiptap/extension-text-align": "^3.6.1",
"@tiptap/pm": "^3.6.1",
"@tiptap/react": "^3.6.1",
"@tiptap/starter-kit": "^3.6.1",
"@types/nodemailer": "^7.0.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"input-otp": "^1.4.2",
"lucide-react": "^0.544.0",
"motion": "^12.23.22",
"next": "15.5.12",
"next": "16.1.6",
"next-auth": "^4.24.11",
"next-themes": "^0.4.6",
"nodemailer": "^7.0.6",
"pinata": "^2.5.0",
"radix-ui": "^1.4.3",
"react": "19.1.0",
"react": "^19.2.0",
"react-confetti": "^6.4.0",
"react-dom": "19.1.0",
"react-dom": "^19.2.0",
"react-dropzone": "^14.3.8",
"react-hook-form": "^7.63.0",
"react-icons": "^5.5.0",
"recharts": "2.15.4",
"siwe": "^3.0.0",
"sonner": "^2.0.7",
Expand All @@ -98,12 +92,13 @@
"@testing-library/jest-dom": "^6.8.0",
"@testing-library/react": "^16.3.0",
"@types/node": "^20",
"@types/nodemailer": "^7.0.11",
"@types/react": "^19",
"@types/react-dom": "^19",
"@vitejs/plugin-react": "^5.0.4",
"dotenv": "^16.6.1",
"eslint": "^9",
"eslint-config-next": "15.5.12",
"eslint-config-next": "16.1.6",
"jsdom": "^27.0.0",
"prisma": "^6.16.2",
"solc": "^0.8.30",
Expand Down
2 changes: 1 addition & 1 deletion playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default defineConfig({

// Start Next.js dev server automatically when running e2e locally
webServer: {
command: 'PORT=3001 npm run dev',
command: 'PORT=3001 pnpm dev',
port: 3001,
reuseExistingServer: !process.env.CI,
},
Expand Down
Loading
Loading