portfolio

所属分类:IPFS
开发工具:TypeScript
文件大小:0KB
下载次数:0
上传日期:2023-06-11 13:56:05
上 传 者sh-1993
说明:  它是用去中心化的数据库构建的。,
(It was built with a decentralized database.,)

文件列表:
.env.local.example (366, 2023-10-23)
.eslintrc.js (455, 2023-10-23)
.prettierrc (87, 2023-10-23)
.vscode/ (0, 2023-10-23)
.vscode/settings.json (193, 2023-10-23)
contracts/ (0, 2023-10-23)
contracts/.env.example (124, 2023-10-23)
contracts/contracts/ (0, 2023-10-23)
contracts/contracts/Projects.sol (1421, 2023-10-23)
contracts/hardhat.config.ts (1180, 2023-10-23)
contracts/package.json (1060, 2023-10-23)
contracts/scripts/ (0, 2023-10-23)
contracts/scripts/deploy.ts (428, 2023-10-23)
contracts/test/ (0, 2023-10-23)
contracts/test/Projects.ts (3979, 2023-10-23)
contracts/tsconfig.json (201, 2023-10-23)
contracts/yarn.lock (219934, 2023-10-23)
next.config.js (385, 2023-10-23)
package.json (1068, 2023-10-23)
postcss.config.js (81, 2023-10-23)
public/ (0, 2023-10-23)
public/.well-known/ (0, 2023-10-23)
public/.well-known/walletconnect.txt (101, 2023-10-23)
public/favicon.png (1942, 2023-10-23)
public/logo.png (2311, 2023-10-23)
public/ogimage.png (37311, 2023-10-23)
public/robots.txt (108, 2023-10-23)
public/sitemap.xml (271, 2023-10-23)
src/ (0, 2023-10-23)
src/artifacts/ (0, 2023-10-23)
src/artifacts/contracts/ (0, 2023-10-23)
src/artifacts/contracts/Projects.json (25881, 2023-10-23)
src/components/ (0, 2023-10-23)
src/components/atoms/ (0, 2023-10-23)
src/components/atoms/Alert/ (0, 2023-10-23)
src/components/atoms/Alert/Alert.tsx (1639, 2023-10-23)
... ...

paulobordignon-logo Paulo Bordignon's Portfolio

The purpose of this project is to create a personal website to introduce myself and show my projects to all people.
Architecture and decisions The main objective was to create a portfolio using a different backend to manage the projects' list. I chose the Ethereum blockchain which offers us a decentralized, low-price, and transparent solution with data always available. The [smart contract](https://zkevm.polygonscan.com/address/0x74f1E9980D91E516994E24BA0ed03F42b81b8F16) was built using Hardhat, Mocha, and Alchemy. It has functions to add projects, remove projects, and list projects. Inside this smart contract, there is a projects' array that can be manipulated only by the owner(contract deployer). The images of projects also are decentralized hosting using IPFS. In the front-end is used the [atomic design methodology](https://medium.com/@janelle.wg/atomic-design-pattern-how-to-structure-your-react-application-2bb4d9ca5f97) for creating the components, this improves a vision of how the interface and elements are connected promoving scalability. Using React's Context API was built a global notification (inside each page) to always display the alert messages in the same place and always have only one alert displayed each time [[1]](#1). If a non-owner of the contract tries to access the admin page, the [Next.js middleware](https://nextjs.org/docs/pages/building-your-application/routing/middleware) redirects the user to the home page (without flashing content). The admin user is verified through his connected wallet address. For users to connect their wallet was used [Rainbowkit](https://www.rainbowkit.com/docs/introduction) a modern and open-source project. To always have the smart contract content and wallet connect available was used a private provider through Alchemy. The private provider has costs because of this was implemented the [ISR](https://nextjs.org/docs/basic-features/data-fetching/incremental-static-regeneration) data fetching method to get the content only one time per day indifferent of quantity access. The ISR also optimizes the SEO of the website displaying all content in the first render.
Technologies Next.js, Typescript, Solidity, Hardhat, Ethers, Alchemy, Rainbowkit, Mocha, Pinata, Ethereum, Framer Motion, IPFS, and others.
Requirements 1 - Run `yarn` to install the dependencies; 2 - Deploy the smart contract using Hardhat and Alchemy, see more information by accessing the contracts folder; 3 - Fill out environment variables; 4 - Run: `yarn dev`.
Next features Create also a decentralized domain and use the most possible decentralized resources, like Fleek to host the website and others.
References [1] de Carvalho, D. M. (2020). [Handling global notifications with React's Context API.](https://sericaia.me/blog/2020-01-13/handling-global-notifications-with-react-s-context-api)

近期下载者

相关文件


收藏者