|
1 | | -# 🏗 Scaffold-ETH 2 |
| 1 | +E-commerce dApp to sell products without intermediaries 💰, while engaging with the community 🫂. |
2 | 2 |
|
3 | | -<h4 align="center"> |
4 | | - <a href="https://docs.scaffoldeth.io">Documentation</a> | |
5 | | - <a href="https://scaffoldeth.io">Website</a> |
6 | | -</h4> |
| 3 | +# 🛍️ Features |
7 | 4 |
|
8 | | -🧪 An open-source, up-to-date toolkit for building decentralized applications (dapps) on the Ethereum blockchain. It's designed to make it easier for developers to create and deploy smart contracts and build user interfaces that interact with those contracts. |
| 5 | +- 🤹♂️ **Articles media**: Articles can have text, image, audio, video and links |
| 6 | +- 💰 **Multiple payment methods**: Pay with native gas (ETH) or with USDC. |
| 7 | +- 📈 **Revenue dashboard**: Track and analyze your revenue and spending |
| 8 | +- 🔔 **Notifications**: Receive alerts on activity |
| 9 | +- 💌 **Messaging**: Private messaging to communicate between seller and buyer |
| 10 | +- 🎨 **Profile customization**: Users can customize their profile |
| 11 | +- 📱 **Web 2.5 login**: Social login options with Web2 platforms (Google, Twitter, etc.) |
| 12 | +- 🌐 **Multi-chain support**: Interact with the platform on multiple chains |
| 13 | +- 🎧 **Accessibility support**: ARIA compliant for screen readers and other assistive technologies |
9 | 14 |
|
10 | | -⚙️ Built using NextJS, RainbowKit, Foundry, Wagmi, Viem, and Typescript. |
| 15 | +# 🛍️ Roadmap |
11 | 16 |
|
12 | | -- ✅ **Contract Hot Reload**: Your frontend auto-adapts to your smart contract as you edit it. |
13 | | -- 🪝 **[Custom hooks](https://docs.scaffoldeth.io/hooks/)**: Collection of React hooks wrapper around [wagmi](https://wagmi.sh/) to simplify interactions with smart contracts with typescript autocompletion. |
14 | | -- 🧱 [**Components**](https://docs.scaffoldeth.io/components/): Collection of common web3 components to quickly build your frontend. |
15 | | -- 🔥 **Burner Wallet & Local Faucet**: Quickly test your application with a burner wallet and local faucet. |
16 | | -- 🔐 **Integration with Wallet Providers**: Connect to different wallet providers and interact with the Ethereum network. |
| 17 | +## 🐣 Phase 1 (MVP) |
17 | 18 |
|
18 | | - |
| 19 | +- ✅ **Create BasedArticles contract** |
| 20 | +- ✅ **Create BasedProfile contract to register users info** |
| 21 | +- ✅ **Article creation tool** |
| 22 | +- ✅ **User profile page** |
19 | 23 |
|
20 | | -## Requirements |
| 24 | +## 👥 Phase 2 (Social Activity and Indexing) |
21 | 25 |
|
22 | | -Before you begin, you need to install the following tools: |
| 26 | +- ✅ **BasedSociety contract:** Social interactions |
| 27 | +- ✅ **Search**: By address or username |
| 28 | +- ✅ Enable options for sharing on other platforms |
| 29 | +- Enable following users, liking, commenting and sharing articles on frontend |
| 30 | +- **Notification system** |
| 31 | +- **Individual article viewer** |
| 32 | +- **Integrate The Graph to index activity** and save RPC calls (Reference: [Bootstrap a Full Stack Modern dapp using the Scaffold-ETH CLI and Subgraph Extension](https://siddhantk08.hashnode.dev/bootstrap-a-full-stack-modern-dapp-using-the-scaffold-eth-cli-and-subgraph-extension) | [The Graph tool for creating a subgraph](https://thegraph.com/docs/en/developing/creating-a-subgraph/)) |
23 | 33 |
|
24 | | -- [Node (>= v18.18)](https://nodejs.org/en/download/) |
25 | | -- Yarn ([v1](https://classic.yarnpkg.com/en/docs/install/) or [v2+](https://yarnpkg.com/getting-started/install)) |
| 34 | +## 💰 Phase 3 (Shop features) |
| 35 | + |
| 36 | +- **Stablecoin payment methods:** Pay with native gas or with `$USDC`. (Reference: [Easy2Pay](https://github.com/luloxi/Easy2Pay)) |
| 37 | +- **Categories**: Allow users to categorize their articles, filter by category and search by category |
| 38 | +- **Direct messages:** Allow users to send private messages to each other |
| 39 | +- **Dashboard Insights**: Track and analyze revenue |
| 40 | +- **Revenue Model**: BasedShop collects fees from purchases |
| 41 | + |
| 42 | +## ✍️ Phase 4 (Gasless activity) |
| 43 | + |
| 44 | +- **Signatures:** Interact with the platform without paying gas fees |
| 45 | +- **Database:** To store and retrieve EIP 712 signatures (Reference: [SE-2 firebase-auth-extension](https://github.com/ByteAtATime/firebase-auth-extension)) |
| 46 | + |
| 47 | +## 💬 Phase 5 (Social enhancement) |
| 48 | + |
| 49 | +- Enable audio, video and links on articles |
| 50 | +- **Customization**: Allow users to customize their profile appearance |
| 51 | + |
| 52 | +## 👨🦽 Phase 6 (Ease of use) |
| 53 | + |
| 54 | +- **Account abstraction**: Interact with the platform without having to sign every interaction. |
| 55 | +- **Built-in wallet manager**: Built-in simple wallet for sending supported tokens and receiving funds, generating and scanning QR, buying gas, etc (Reference: [PunkWallet](https://app.buidlguidl.com/build/mTKhXMLEOCQEgPgG57R9) |
| 56 | +- **Accesibility support**: For the hearing and visually impaired, the app should be ARIA compliant to support screen readers and other assistive technologies (Reference: [ARIA](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA)) |
| 57 | +- **Web 2.5 social login:** Sign up and log in with Google, Twitter, Instagram, etc |
| 58 | +- **Multi-language support**: Switch between languages |
| 59 | +- **Educational Content**: Include onboarding tutorials and step-by-step guides to help users understand NFTs and Web3 concepts |
| 60 | + |
| 61 | +# 🛍️ Development |
| 62 | + |
| 63 | +## 🛠️ Technical details |
| 64 | + |
| 65 | +⚙️ Built using Foundry, NextJS, RainbowKit, Wagmi, Viem, and Typescript, |
| 66 | + |
| 67 | +🔗 To be deployed on Base and/or EVM compatible chains |
| 68 | + |
| 69 | +📥 To see current development tasks, [see here](https://lulox.notion.site/BasedShop-11e13362a5748056b5bfe8bc5d4ff260?pvs=4) |
| 70 | + |
| 71 | +## 📚 Prerequisites |
| 72 | + |
| 73 | +- [Node (>= v18.17)](https://nodejs.org/en/download/package-manager) |
| 74 | +- Yarn ([v1](https://classic.yarnpkg.com/en/docs/install/#windows-stable) or [v2+](https://yarnpkg.com/getting-started/install)) |
26 | 75 | - [Git](https://git-scm.com/downloads) |
| 76 | +- [Foundry](https://book.getfoundry.sh/getting-started/installation) |
27 | 77 |
|
28 | | -## Quickstart |
| 78 | +## 👨🏫 Instructions |
29 | 79 |
|
30 | | -To get started with Scaffold-ETH 2, follow the steps below: |
| 80 | +To get started follow the steps below: |
31 | 81 |
|
32 | | -1. Install dependencies if it was skipped in CLI: |
| 82 | +1. Open a terminal and run this commands to clone this repo and install dependencies: |
33 | 83 |
|
34 | 84 | ``` |
35 | | -cd my-dapp-example |
| 85 | +git clone https://github.com/luloxi/BasedShop.git |
| 86 | +cd BasedShop |
36 | 87 | yarn install |
37 | 88 | ``` |
38 | 89 |
|
39 | | -2. Run a local network in the first terminal: |
| 90 | +2. After everything is installed, run this command to start a local blockchain network: |
40 | 91 |
|
41 | 92 | ``` |
42 | 93 | yarn chain |
43 | 94 | ``` |
44 | 95 |
|
45 | | -This command starts a local Ethereum network using Foundry. The network runs on your local machine and can be used for testing and development. You can customize the network configuration in `packages/foundry/foundry.toml`. |
| 96 | +This command starts a local Ethereum network using Foundry. The network runs on your local machine and can be used for testing and development. |
46 | 97 |
|
47 | | -3. On a second terminal, deploy the test contract: |
| 98 | +3. Duplicate and rename `packages/foundry/.env.example` to `packages/foundry/.env` (you don't need to fill it out until deploying to a live network) |
48 | 99 |
|
49 | | -``` |
50 | | -yarn deploy |
51 | | -``` |
52 | | - |
53 | | -This command deploys a test smart contract to the local network. The contract is located in `packages/foundry/contracts` and can be modified to suit your needs. The `yarn deploy` command uses the deploy script located in `packages/foundry/script` to deploy the contract to the network. You can also customize the deploy script. |
54 | | - |
55 | | -4. On a third terminal, start your NextJS app: |
| 100 | +4. Open a second terminal, navigate to `BasedShop` and run this command to deploy the test contract: |
56 | 101 |
|
57 | 102 | ``` |
58 | | -yarn start |
| 103 | +yarn deploy |
59 | 104 | ``` |
60 | 105 |
|
61 | | -Visit your app on: `http://localhost:3000`. You can interact with your smart contract using the `Debug Contracts` page. You can tweak the app config in `packages/nextjs/scaffold.config.ts`. |
| 106 | +This command deploys a test smart contract to the local network. The contract is located in `packages/foundry/contracts` and can be modified to suit your needs. The `yarn deploy` command uses the deploy script located in `packages/foundry/script/Deploy.s.sol` to deploy the contract to the network. You can also customize the deploy script. |
62 | 107 |
|
63 | | -Run smart contract test with `yarn foundry:test` |
| 108 | +5. Go to `packages/nextjs/scaffold.config.ts` and comment out `targetNetworks: [chains.sepolia]` and uncomment `targetNetworks: [chains.foundry]` |
64 | 109 |
|
65 | | -- Edit your smart contract `YourContract.sol` in `packages/foundry/contracts` |
66 | | -- Edit your frontend homepage at `packages/nextjs/app/page.tsx`. For guidance on [routing](https://nextjs.org/docs/app/building-your-application/routing/defining-routes) and configuring [pages/layouts](https://nextjs.org/docs/app/building-your-application/routing/pages-and-layouts) checkout the Next.js documentation. |
67 | | -- Edit your deployment scripts in `packages/foundry/script` |
| 110 | +6. Rename the `.env.example` to `.env` in the `packages/nextjs` folder. |
68 | 111 |
|
| 112 | +- [Log in or Create an account on Pinata](https://app.pinata.cloud/signin), then create a new project, and copy the **API Key** and the **Secret API Key** into the `.env` file's `NEXT_PUBLIC_PINATA_API_KEY` and `NEXT_PUBLIC_PINATA_SECRET_API_KEY` variables and save the file. |
| 113 | +- Get your [OnchainKit API Key here](https://portal.cdp.coinbase.com/products/onchainkit) and your [OnchainKit Project ID here](https://portal.cdp.coinbase.com/projects/), then copy them into the `.env` file's `NEXT_PUBLIC_ONCHAINKIT_API_KEY` and `NEXT_PUBLIC_CDP_PROJECT_ID` variables and save the file. |
69 | 114 |
|
70 | | -## Documentation |
| 115 | +7. Open a third terminal, navigate to `BasedShop` and run this command to start your NextJS app: |
71 | 116 |
|
72 | | -Visit our [docs](https://docs.scaffoldeth.io) to learn how to start building with Scaffold-ETH 2. |
73 | | - |
74 | | -To know more about its features, check out our [website](https://scaffoldeth.io). |
75 | | - |
76 | | -## Contributing to Scaffold-ETH 2 |
77 | | - |
78 | | -We welcome contributions to Scaffold-ETH 2! |
| 117 | +``` |
| 118 | +yarn start |
| 119 | +``` |
79 | 120 |
|
80 | | -Please see [CONTRIBUTING.MD](https://github.com/scaffold-eth/scaffold-eth-2/blob/main/CONTRIBUTING.md) for more information and guidelines for contributing to Scaffold-ETH 2. |
| 121 | +Visit your app on: `http://localhost:3000`. You can interact with your smart contract using the `Debug Contracts` page. |
0 commit comments