New version of SpeedRunEthereum built with Scaffold-ETH 2. An expanded experience for builders where you'll be able to unlock your builder profile after completing a few challenges. This will open the gates to:
- Interact with other BuidlGuidl curriculums like ETH Tech Tree and BuidlGuidl CTF
- Share your builds and discover what other builders are up to
- Earn badges
You can find the repository containing the challenges here.
Before you begin, you need to install the following tools:
- Node (>= v18.18)
- Yarn (v1 or v2+)
- Git
- Docker Engine
- Install dependencies
yarn install
- Spin up the Postgres database service + create database + seed
docker compose up -d
yarn drizzle-kit migrate
yarn db:seed
- Start your NextJS app:
yarn start
Visit your app on: http://localhost:3000
.
- You can explore the database with:
yarn drizzle-kit studio
We are using Drizzle with Postgres for database management. You can run drizzle-kit
commands from the root with yarn drizzle-kit
.
Anytime we update the schema in packages/nextjs/services/database/config/schema.ts
, we can generate a migration with:
yarn drizzle-kit generate
Then we can apply the migration with:
yarn drizzle-kit migrate
We also need to make sure we commit the migration to the repo.
To iterate fast on the database locally:
- Tweak the schema in
schema.ts
- Run
yarn drizzle-kit push
to apply the changes. - Copy
seed.data.example.ts
toseed.data.ts
, tweak as needed and runyarn db:seed
(will delete existing data)
-
In the Firebase Console, go to "Project settings" (the gear icon)
-
Navigate to the "Service accounts" tab
-
Click "Generate new private key" for the Firebase Admin SDK
-
Save the JSON file securely
-
In
.env.local
file in thepackages/nextjs
directory, add the following variables:
FIREBASE_SERVICE_ACCOUNT_KEY='{
"type": "service_account",
"project_id": "your-project-id",
...,
}'
FIREBASE_STORAGE_BUCKET=your-project-id.appspot.com
Replace the content of FIREBASE_SERVICE_ACCOUNT_KEY
with the JSON content from your service account key file (wrap the json in single quotes).
The FIREBASE_STORAGE_BUCKET
should be set to your Firebase Storage bucket name, typically in the format your-project-id.appspot.com
.