- Whitelabel: Build your own web3 educational platform in no time by leveraging Bankless Academy’s infrastructure.
- Documentation: Understand how you can integrate Bankless Academy to your website.
- FAQ: Frequently Asked Questions about Bankless Academy.
- Sponsor: Sponsor a Bankless Academy lesson.
- Gitcoin Grant: Donate on Gitcoin Grant to support the project.
- Dework: Check for open tasks to help us improve Bankless Academy.
- Jobs: Open job positions.
- Next.js
- Chakra UI (includes @emotion/styled, which works like Styled Components)
- wagmi
- Web3Modal
- Ethers
- Typescript
- Linting with ESLint
- Formatting with Prettier
- Linting, typechecking and formatting on by default using
husky
for commit hooks - Testing with Jest and
react-testing-library
- Gitcoin Passport for Sybil protection for lesson badges
yarn dev
Wallet addresses, encrypted Passport stamps & lesson completions are stored in a PostgreSQL database. Database setup is only required for lesson badge distribution but not to run the app.
Setup and connection to database are done via Knex.js.
DM DidierKrux.eth🏴#1559
on Discord if you need the configs to add to your .env.local file (see .env.example).
Migration files: https://github.com/bankless-academy/bankless-academy/tree/main/migrations
# Install Migration CLI
yarn global add knex
# Migrate to latest
knex migrate:latest
# Rollback the last batch of migrations
knex migrate:rollback
# add a new migration
knex migrate:make nameYourMigration
Documentation + data tracked: https://www.notion.so/bankless/Analytics-with-Umami-4f867b3c808e483790db7db617cc51b6
User interactions tracked in the app:
We save the encrypted account username associated with each Passport stamp associated with an address to be able to detect Sybils.
Heatmap recording via hotjar.com This helps us understand how a user interacts with the product in order to improve the user experience.
https://www.notion.so/bankless/1dd77eb6ed4147f6bdfd6f23a30baa46
yarn import-content
yarn import-content 1dd77eb6ed4147f6bdfd6f23a30baa46
The import script connects to a custom unofficial Notion API called Potion https://github.com/didierkrux/potion and transforms the content into this Object.
Note: import keywords before importing content.
https://www.notion.so/bankless/623e965e4f10456094d17aa94ec37105
yarn import-keywords
yarn import-keywords 623e965e4f10456094d17aa94ec37105
- Get familiar with the project
- Check open issues and assign yourself
- Create and submit a PR
- Assign @didierkrux as reviewers