# AI_NFT **Repository Path**: csqgitbelong/ai_nft ## Basic Information - **Project Name**: AI_NFT - **Description**: 本项目旨在降低大众的 NFT 制作、销售门槛,让更多人了解并参与到 NFT 的世界 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2022-12-25 - **Last Updated**: 2024-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: NFT, Blockchain, Doc, Docker ## README [toc] # About the repo Django + DRF + Vuejs `(vue-cli project)` + Truffle project. vue: 2.6.14 + node: 16.16.0 + truffle: 5.5.27 + web3: 1.7.5 + vuex: 3.6.2 # 容器使用流程 **第一次**使用容器编排启动前后链端: - `docker-compose up --build (使用前在 src/backend/api/password.py 中将 PASSWORD 设为 uNAU7CjeXn3jaqg)` > 备注一:如果在上述过程中,有前端 `vue-cli` 相关的报错,请在宿主机(也就是容器外)进入 `frontend` 目录,执行 `yarn install` 或 `yarn add @vue/cli`(需要确保你自己本地已经装了 `yarn`)。之后再重复上面的步骤。 > > 备注二:如果在上述过程中,有 `github` 连接问题则更换网络多次尝试,其中遇到 `An unexpected error occurred: “https://raw.githubusercontent.com...` 则参考 `https://blog.csdn.net/WineCoffee/article/details/109813237` > > 备注三:如果在上述过程中,有 `error Couldn't find the binary git` 问题,则删除前端 `yarn-lock` 文件后重新构建 **之后**使用容器编排启动前后端: - `docker-compose up` Django建表: - `docker-compose run backend migrate(不需加其他额外指令, 所有后端文件均需要)` Docker `createsuperuser`: - `docker exec -ti <对应container id(backend id)> /bin/bash` 后 `django-admin createsuperuser`即可, container id 可以在用 `docker ps`查询 添加如下的四行信息到 `hosts` 文件的最下面——一般对于 Linux 或 MacOS 这个文件在在 `/etc/hosts`,Windows 在 `C:\Windows\System32\drivers\etc\hosts`。 ```text 127.0.0.1 frontend.docker.io 127.0.0.1 backend.docker.io 127.0.0.1 chainend.docker.io 127.0.0.1 production.docker.io ``` # 目录结构 - 文件 `docker-compose.yml`: 编排容器的配置描述 - 目录 `dockerfiles`: - `backend`: Django + DRF - `chainend`: Truffle框架及相关配置 - `vuejs`: Vuejs + Webpack + NPM + Yarn 等 - `nginx`: 即 Nginx 相关的配置 - 文件 `Pipfile` 和 `Pipfile.lock`: [Pipenv](https://pipenv.readthedocs.io/en/latest/) 文件 - 目录 `src`: - 目录 `backend`: Django + DRF project. - 目录 `frontend`: Vuejs webpack project. - 目录 `chainend`: Truffle project. - 目录 `nginx`: - 文件 `backend.conf`: 转发8002端口. - 文件 `chainend.conf`: 转发8004端口. - 文件 `frontend_develop`: 转发8080端口. - 文件 `frontend_production`: 挂载 `npm run build`的文件. # 关于项目 ## 安装整体相关依赖 - `yarn install(npm install)` # 关于前端 ## 安装vue相关依赖 - `yarn install(npm install)` # 关于后端 ## Django 相关 **Question: 如何运行 `manage.py` 相关指令** * **Answer:** `docker-compose run backend ` 如你想运行 `manage.py` help, 则应该输入 `docker-compose run backend help` 类似地, - `docker-compose run backend showmigrations` - `python manage.py shell` => `docker-compose run backend shell` **Question: 如何运行 `django-admin`相关指令** **Answer:** 同上, `docker-compose run backend django-admin ` # 关于链端 ## 编写与部署相关 **Question: 如何运行 `truffle` 相关指令** * **Answer:** * 项目已建立 NFT 文件夹,若不修改智能合约无需创建新框架 ` 在 dockerenv\src\chainend 中 NFT 文件命令行执行相关操作` ` truffle compile:编译合约` ` truffle test:测试合约` ` truffle migrate:部署到 truffle-config 文件中制定的测试网` ` 注意:部署前开启 ganache 测试网` * 若新建 Truffle 框架 `在你新建的文件夹下执行 truffle init 初始化文件,生成contracts、migrations、test、truffle-config.js四个文件,` ` 分别用于编写合约、部署合约、测试合约、设置部署相关参数` ` 注意不要删除任何文件!` **Question: 如何运行 `ganache `相关指令(注意 ganache 可能有非 windows 用户的限制)** * **Answer ganache-cli(命令行,端口 8545):** ` 在本地 npm install -g ganache-cli,或只在该项目下下载ganache-cli` `在终端输入 ganache-cli 即可看到自动生成的10个账户,执行部署后会扣除gas` * **Answer ganache(图形化界面,端口 7545)默认使用此 app:** `在官网下载ganache,项目默认配置为此 app 的配置` `在 ganache 客户端新建项目,传入链端项目的 truffle-config.js 文件后点击创建` **Question: 如何存储 `NFT `** * **Answer:** ` 下载 ipfs:https://dist.ipfs.io/#go-ipfs` `修改 ipfs 端口号 ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8081(或其他可用端口)` # 项目使用流程 本地测试方法 * 进入 chainend/source/NFT * 打开 ganache 客户端,打开新项目,将 truffle-config 文件加入到新项目、点击创建 * 执行 truffle compile、truffle migrate * 复制账户地址、合约地址到 frontend/src/uploadIPFS.js和frontend/src/connnectChainend.js * 前端存储 NFT 时,手动进入 frontend/src 运行 node uploadIPFS ,将合约与图片绑定 * 随后可正常使用 # 项目文档链接 测试文档:https://nankai.feishu.cn/docx/doxcnVOrxvZk6rAYiwlTBW9FYec 需求文档:https://nankai.feishu.cn/docx/doxcnyd7RNURC3jN1bcvyI7AZee 设计文档:https://nankai.feishu.cn/docx/doxcnyd7RNURC3jN1bcvyI7AZee 用户帮助手册:https://nankai.feishu.cn/docx/doxcnEKKoC5HVgBeB36DYOV1ijf 总结文档:https://nankai.feishu.cn/docx/doxcneViazXU8iPTnuton22usRh