This application allows users to interact with Pokemons using Ethereum blockchain technologies. It has been developed as an Interview Assignment Project.
![](https://private-user-images.githubusercontent.com/7630720/350026466-cd8492eb-e570-4d20-a820-82081ec2b917.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3MjA3OTcsIm5iZiI6MTcyMzcyMDQ5NywicGF0aCI6Ii83NjMwNzIwLzM1MDAyNjQ2Ni1jZDg0OTJlYi1lNTcwLTRkMjAtYTgyMC04MjA4MWVjMmI5MTcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTVUMTExNDU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NDBlMjBiYWNkNGU3NmRkMTNkZjg4ODM1NDU3NzNhMmIxNDQ2NzNmODFhZTA5MTUwNDFmODlkYTllNTM5ZjBiYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.C6QK67rF3eyDK11aisK_6h8qR9JOLVMwDIBXJ1G9Jpk)
Custom Figma design files have been provided for this project.
![](https://private-user-images.githubusercontent.com/7630720/354258123-65ab28cb-0c62-4d96-849c-edb84106fd51.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3MjA3OTcsIm5iZiI6MTcyMzcyMDQ5NywicGF0aCI6Ii83NjMwNzIwLzM1NDI1ODEyMy02NWFiMjhjYi0wYzYyLTRkOTYtODQ5Yy1lZGI4NDEwNmZkNTEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTVUMTExNDU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjIxY2IwZjY0NmM4ZDA2NzI0NjRkODI0ZTBmMDEzNGFlZGY0MDA2Y2MyNzRjZDQ4NTAzODZhMDFlYzNjODA0OCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.tXzNdiEzJ-1RUxCdlGMkZ7lGsk-bmNIlThY0UzXVWKc)
- Wallet Connection Interface: User-friendly wallet connection interface using RainbowKit.
- Ethereum Transaction Signing: Allow users to "Collect" a Pokemon by signing a simple Ethereum transaction.
- Server-Side Rendering (SSR): Ensure enhanced performance and SEO.
- Authorization: Implemented basic authorization for user access control (Premium Pokemons).
- JWT & SIWE: Authorization, session management, and authentication using JSON Web Tokens (JWT) and Sign-In with Ethereum (SIWE).
- Tooltip Preview with Web Scraping: Display basic Pokemon info using server-side web scraping.
- Data Fetching and State Management: Efficient data-fetching and state management with React Query.
- Responsive Design: Optimized for both desktop and mobile viewing.
- next.js: Framework for React applications with built-in support for server-side rendering and static site generation.
- react: JavaScript library for building user interfaces.
- tailwind css: Utility-first CSS framework for styling.
- rainbowkit: Library for building a wallet connection interface.
- siwe: Sign-In with Ethereum (SIWE) for Ethereum authentication.
- viem: Ethereum library for building decentralized applications.
- wagmi: React Hooks library for Ethereum.
- ethers.js: Library for interacting with the Ethereum blockchain.
- jose: Library for JSON Web Tokens (JWT) and other security features.
- react-query: Powerful data-fetching and state management for React.
- cheerio: Library for web scraping and parsing HTML.
pnpm i && pnpm dev
(for development)pnpm build && pnpm start
(for production)
Make sure to set up the following environment variables in a .env
file:
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=
NEXT_PUBLIC_SIGNIN_MESSAGE=
AUTH_SECRET_KEY=
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GNU License. See the LICENSE file for details.