App for exploring voting and performance statistics from Eurovision Song Contests throughout the years.
-
Clone the repository
-
Install dependencies
npm install
-
Set up your Supabase environment variables
Create a
.env.localfile in the root of the project with the following:NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key NEXT_PUBLIC_SUPABASE_PROJECT_ID=your-project-idReplace the values with your actual Supabase project URL, anon key, and project ID.
-
Start the development server
npm run dev
The app uses:
- Next.js 15
- Radix UI for components
- Supabase for database and authentication
- TypeScript for type safety
The database is structured with the following tables:
contests- Information about each Eurovision Song Contestid- Unique identifieryear- Year of the contestcity- Host citycountry- Host country
The project includes a tool to automatically generate TypeScript types from your Supabase database schema:
-
Make sure your environment variables are set up in
.env.local:NEXT_PUBLIC_SUPABASE_PROJECT_ID=your-project-idYou can get your project ID from the URL in the Supabase dashboard:
https://app.supabase.com/project/[your-project-id] -
Generate an access token:
- Go to https://app.supabase.com/account/tokens
- Generate a new token with an appropriate name
- Copy the token value
-
Run the script to generate types:
SUPABASE_ACCESS_TOKEN=your-access-token npm run update-types
Replace
your-access-tokenwith the token you generated.
This will generate TypeScript types based on your current database schema and update the src/types/supabase.ts file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.