Skip to content

Commit

Permalink
Fix roadmap URL (#120)
Browse files Browse the repository at this point in the history
  • Loading branch information
fenbox authored Nov 13, 2023
1 parent e842623 commit ab42498
Show file tree
Hide file tree
Showing 19 changed files with 174 additions and 85 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ We are partnering with [Vaunt](https://github.com/VauntDev) during Hacktoberfest

Bonus: for the top 3 accepted plugins contributions, you’ll also receive a bag and stickers.

![Answer Swags](DSC07756%202%20(1).png)
![Answer Swags](DSC07756.png)

## Resources and FAQ

Expand Down
2 changes: 1 addition & 1 deletion docs/development/contributing/backend.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ All our translations are placed in the i18n directory.
2. If you want to submit a new language translation, please add your language to the `i18n.yaml` file.

### Features or Plugin
1. We developed the features for the plan based on the [roadmap](https://github.com/orgs/answerdev/projects/1). If you are suggestions for new functions, please confirm whether they have been planned.
1. We developed the features for the plan based on the [roadmap](https://github.com/orgs/apache/projects/301). If you are suggestions for new functions, please confirm whether they have been planned.
2. Plugins will be available in the future, so stay tuned.

## Notice
Expand Down
2 changes: 1 addition & 1 deletion docs/development/contributing/frontend.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ All our translations are placed in the i18n directory.
2. If you want to submit a new language translation, please add your language to the `i18n.yaml` file.

#### Features or Plugin
1. We developed the features for the plan based on the [roadmap](https://github.com/orgs/answerdev/projects/1). If you are suggestions for new functions, please confirm whether they have been planned.
1. We developed the features for the plan based on the [roadmap](https://github.com/orgs/apache/projects/301). If you are suggestions for new functions, please confirm whether they have been planned.
2. Plugins will be available in the future, so stay tuned.

## 📱Environment Support
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ No matter what your Q&A platform is about, it’s always great to collect valuab
💻 [GitHub Repo](https://github.com/apache/incubator-answer): Keep an eye on what we are up to lately on GitHub.
📄[Documents](https://answer.apache.org/docs/): Everything you need to build your Answer Community from zero to hero.
🐞 [Bug Report](https://github.com/apache/incubator-answer/issues): Hunt a bug? Simply report it for us to track efficiently.
🚩[Public Roadmap](https://github.com/orgs/answerdev/projects/1): Feel free to drop a comment here and be a part of our roadmap!
🚩[Public Roadmap](https://github.com/orgs/apache/projects/301): Feel free to drop a comment here and be a part of our roadmap!

## Conclusion

Expand Down
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ Celebrate Answer’s first birthday with contributions, the more the better, no

### Vaunt Your Contribution

We are partnering with [Vaunt](https://github.com/VauntDev) during Hacktoberfest to reward contributions. Our team will have an initial review of the submitted issues, and tag it with **hacktoberfest-accepted** first. Then, we will have a closer look to see whether it shares the same goals or visions with our[roadmap](https://github.com/orgs/answerdev/projects/1). If it’s a yes, we will add **LGTM** tag to it, and congratulations you’ll get a digital badge from us! Here's a group photo of all the badges, from top to bottom and left to right, in order: Plugin Maestro, Bug Hunter, and Visionary Architect. Earn it and show them with pride.
We are partnering with [Vaunt](https://github.com/VauntDev) during Hacktoberfest to reward contributions. Our team will have an initial review of the submitted issues, and tag it with **hacktoberfest-accepted** first. Then, we will have a closer look to see whether it shares the same goals or visions with our[roadmap](https://github.com/orgs/apache/projects/301). If it’s a yes, we will add **LGTM** tag to it, and congratulations you’ll get a digital badge from us! Here's a group photo of all the badges, from top to bottom and left to right, in order: Plugin Maestro, Bug Hunter, and Visionary Architect. Earn it and show them with pride.

![Answer Digital Badges for 2023](banner.png)

Bonus: for the top 3 accepted plugins contributions, you’ll also receive a bag and stickers.

![Answer Swags](DSC07756%202%20(1).png)
![Answer Swags](DSC07756.png)

## Resources and FAQ

Expand Down
2 changes: 1 addition & 1 deletion i18n/zh-CN/docusaurus-plugin-content-docs/current.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,6 @@
},
"sidebar.tutorialSidebar.link.Roadmap": {
"message": "规划",
"description": "The label for link Roadmap in sidebar tutorialSidebar, linking to https://github.com/orgs/answerdev/projects/1"
"description": "The label for link Roadmap in sidebar tutorialSidebar, linking to https://github.com/orgs/apache/projects/301"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ width="300"

### 新功能或插件

1. 我们根据 [路线图](https://github.com/orgs/answerdev/projects/1) 开发计划开发功能。如果你有新功能的建议,请确认它们是否已经计划中。
1. 我们根据 [路线图](https://github.com/orgs/apache/projects/301) 开发计划开发功能。如果你有新功能的建议,请确认它们是否已经计划中。
2. 插件将在未来发布,敬请期待。

## 注意事项
Expand Down
Original file line number Diff line number Diff line change
@@ -1,119 +1,208 @@
---
---

# 前端开发指南
# 后端开发指南
>
> 下面将说明如何配置环境来进行项目的后端开发工作
## ⚙️ 先决条件
## 如何设置开发环境

- [Node.js](https://nodejs.org/) `>=16.17`
- [pnpm](https://pnpm.io/) `>=7`
### 先决条件

在构建 Answer 项目时需要 pnpm。使用以下命令安装 pnpm 工具:
- [Golang](https://go.dev/) `>=1.18`
- 数据库依赖
- MySQL `(>=5.7)`
- PostgreSQL `(>=10)`
- SQLite3
- [wire](https://github.com/google/wire)

```bash
corepack enable
corepack prepare [email protected] --activate
### 工具

#### wire

我们使用 `wire` 来生成依赖关系。

```shell
go get github.com/google/wire/cmd/wire@latest
go generate ./...
go mod tidy
```

使用 Node.js v16.17 或更新版本,可以通过指定标签来安装最新版本的 pnpm:
或者你可以使用 `make generate`

```bash
corepack prepare pnpm@latest --activate
#### swag

我们使用 `swag` 来生成 Swagger 文档。

```shell
swag init --generalInfo ./cmd/answer/main.go
```

## 🔨 开发
或者你可以进入 `script` 目录并使用 `./gen-api.sh`

在本地克隆仓库并在终端中运行以下命令:
### 构建

:::note
如果这是你第一次启动 Answer,请先编译前端项目,以确保你可以更轻松地测试它。
一旦你熟悉了 Answer,也可以使用 Swagger 进行测试。
:::

```shell
git clone [email protected]:answerdev/answer.git answer
cd answer/ui
pnpm install
pnpm start
# 前端编译(推荐)。如果遇到问题,请参考与前端相关的文档
$ make ui
# 进入目录
$ cd cmd/answer/
# 编译
$ go build .
```

现在,你的浏览器应该自动打开并加载 `http://localhost:3000`。你也可以手动访问它。
### 运行

## 👷 工作流
#### 安装
>
> 如果这是你第一次启动 Answer,请按照以下步骤进行安装。如果不是,则可以跳过此步骤。
克隆仓库并运行 pnpm install 初始化依赖项后,你可以使用以下项目命令:
```shell
# 初始化环境
$ ./answer init -C ./answer-data/
```

前往 <http://localhost:80/install> 访问安装页面。

请参考 [安装文档](../../installation) 进行安装步骤。

#### 启动

```shell
./answer run -C ./answer-data/
```

前往 <http://localhost:80/> 使用 Answer。

- `pnpm start` 在本地运行 Answer 网站。
- `pnpm build` 为生产环境构建 Answer。
- `pnpm lint` 检查和修复代码风格。
### Debug

## 🌍 I18n(多语言)
我们使用 Swagger 测试 API 接口。Swagger 文档默认可用。前往 [http://localhost:80/swagger/index.html](http://127.0.0.1:8080/swagger/index.html) 访问 Swagger 页面。

如果你需要添加或编辑语言条目,只需转到 `/i18n/en_US.yaml` 文件,所有前端语言条目都放在 `ui` 字段下
你可以使用 Swagger 进行更方便的调试

如果想帮助我们进行 i18n 翻译,请访问 [Answer at Crowdin](https://crowdin.com/translate/answer)
## 项目说明

## 💡 项目说明
### 包结构

```
.
├── cmd
├── configs
├── docs
├── i18n
├── en_US.yaml (basic language file)
├── i18n.yaml (language list)
├── cmd (main binary)
├── configs (default configuration)
├── docs (swagger documentation)
├── i18n (International translation)
├── internal
├── ...
└── ui (front-end project starts here)
├── build (built results directory, usually without concern)
├── public (html template for public)
├── scripts (some scripting tools on front-end project)
├── src (almost all front-end resources are here)
├── assets (static resources)
├── common (project information/data defined here)
├── components (all components of the project)
├── hooks (all hooks of the project)
├── i18n (Initialize the front-end i18n)
├── pages (all pages of the project)
├── router (Project routing definition)
├── services (all data api of the project)
├── stores (all data stores of the project)
├── utils (all utils of the project)
├── plugins (UI Plugin Development & Debugging Directory)
├── base (Basic component without service attributes)
├── conf (Configuration)
├── constant (constant)
├── data (database/cache)
├── handler (request/response handler)
├── middleware (http middleware)
├── pager (Pagination)
├── reason (error reason key use to translator)
├── server (http server)
├── translator (translator for translate international)
└── validator (validator for validate request)
├── cli (binary commands)
├── controller (request handler controller for user)
├── controller_backyard (request handler controller for admin)
├── entity (all entity about database table)
├── install (installation related)
├── migrations (upgrade related)
├── repo (database/cache operations)
├── router (http router)
├── schema (request/response schema)
└── service (business logic)
├── pkg (tools or third party)
└── ui (frontend)
```

## 🤝 贡献
### 包之间的依赖关系

#### 修复 Bug
对于大多数 API,流程图非常简单,如下所示。

如果你发现了一个 bug,请不要犹豫地 [提交 issue](https://github.com/apache/incubator-answer/issues)。如果你能修复它,请在提交 issue 时附上说明。如果它确实是一个 bug,你可以在我们确认后提交 PR,这将确保你不会做任何无用的工作。
```
router -> middleware -> controller(use schema) -> service -> repo(use entity)
```

#### 代码审查 & 注释
如果你想开发新的 API,可以按照以下步骤进行操作。

在我们的开发中,有些代码不太合逻辑。如果你发现了它,请不要犹豫地向我们提交 PR。同样,一些函数没有注释。如果你能帮助我们补充它,我们将不胜感激。
1. 在 router 中添加路由规则 (GET/POST/PUT...)。
2. 添加用于处理程序请求的 controller。该请求应在 controller 中进行验证。
3. 添加一个 service 来处理业务。
4. 添加用于保存或查询数据库或缓存中的数据的 repo 操作。
5. 重新生成 swagger 文档并测试 API。

#### 翻译
## 代码规范

我们所有的翻译都放在 `i18n` 目录下。
### 基本的

1. 如果你发现你正在使用的语言中对应的键没有翻译,你可以提交你的翻译。
我们使用 [uber 的 Golang](https://github.com/uber-go/guide) 来检查代码规范。

### 代码规范检查

`golangci-lint` 是一个快速的 Go 代码规范检查工具。我们使用 [golangci-lint](https://github.com/golangci/golangci-lint) 来检查代码规范。

你可以使用以下命令检查你的代码格式。

```bash
go install github.com/golangci/golangci-lint/cmd/[email protected]
golangci-lint run
```

## 我们需要你的贡献

### 修复 Bug

如果你发现了 Bug,请不要犹豫 [提交 issue](https://github.com/apache/incubator-answer/issues) 给我们。如果你可以修复它,请在提交 issue 时附上说明。如果问题已被确认是 Bug,你可以提交 PR,这将确保你不会做无用的工作。

### 代码审查和注释

在我们的开发过程中,有些代码可能不是很合乎逻辑。如果你发现了这些问题,请不要犹豫,向我们提交 PR。同样,有些函数可能没有注释。如果你可以帮助我们补充注释,我们将不胜感激。

### 单元测试(非常需要)

我们当前的单元测试覆盖率如下所示。显然,我们还需要添加更多的单元测试,因此我们非常欢迎你的贡献。

<img
src={require('/img/repo-unit-test-coverage-rate.png').default}
alt="repo-unit-test-coverage-rate"
width="300"
/>

### 翻译

我们所有的翻译都放在 `i18n`目录中。

1. 如果你发现你正在使用的语言中对应的键没有翻译,请提交你的翻译。
2. 如果你想提交新的语言翻译,请将你的语言添加到 `i18n.yaml` 文件中。

#### 功能或插件
### 新功能或插件

1. 我们根据 [路线图](https://github.com/orgs/apache/projects/301) 开发计划开发功能。如果你有新功能的建议,请确认它们是否已经计划中。
2. 插件将在未来发布,敬请期待。

## 注意事项

### 修改数据库表结构非常困难

1. 我们根据 [roadmap](https://github.com/orgs/answerdev/projects/1) 制定计划开发功能。如果你有新功能的建议,请确认它们是否已经计划。
2. 插件将来会推出,敬请期待。
通常,我们不希望修改数据库表中已经存在的字段。如果需要更改,请遵循以下规则:

## 📱环境支持
1. 添加字段比修改字段更好。
2. 修改任何字段都需要考虑对现有数据的影响。
3. 修改数据库表结构需要测试对不同类型的数据库的影响,并为不同类型的数据库提供不同的 `SQL` 语句。对于 `MySQL/PostgreSQL/sqlite3`

| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br />Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br />Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br />Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br />Safari |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 最近 2 个版本 | 最近 2 个版本 | 最近 2 个版本 | 最近 2 个版本 |
## 构建工具

## ⭐ 使用了以下工具
Answer 应用的后端使用以下组件/库构建:

- [TypeScript](https://www.typescriptlang.org/) - 强类型 JavaScript。
- [React.js](https://reactjs.org/) - 我们的前端是一个 React.js 应用程序。
- [React Router](https://reactrouter.com/en/main) - 路由库。
- [Bootstrap](https://getbootstrap.com/) - UI 库。
- [React Bootstrap](https://react-bootstrap.github.io/) - UI 库(为 React 重新构建)。
- [axios](https://github.com/axios/axios) - 请求库。
- [SWR](https://swr.bootcss.com/) - 请求库。
- [react-i18next](https://react.i18next.com/) - 国际化库。
- [zustand](https://github.com/pmndrs/zustand) - 状态管理库。
- [pacman](https://github.com/segmentfault/pacman) - 快速构建 Go 应用程序的工具包。
- [gin](https://github.com/gin-gonic/gin/) - 路由器。
- [validator](https://github.com/go-playground/validator/) - 验证。
- [xorm](https://xorm.io/) - ORM.
- [cobra](https://github.com/spf13/cobra) - CLI 应用程序。
- [swag](https://github.com/swaggo/swag) - 生成 Swagger 文档。
2 changes: 1 addition & 1 deletion sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ module.exports = {
{
type: 'link',
label: 'Roadmap',
href: 'https://github.com/orgs/answerdev/projects/1',
href: 'https://github.com/orgs/apache/projects/301',
},

],
Expand Down
2 changes: 1 addition & 1 deletion src/pages/contact.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const supportList = [
{
key: 'twitter',
url: 'https://twitter.com/answerdev',
icon: <Icon name="twitter" size="48px" className="text-primary" />,
icon: <Icon name="twitter-x" size="48px" className="text-primary" />,
info: <Translate id="contact.twitter" values={{
br: <br />,
}}>
Expand Down

0 comments on commit ab42498

Please sign in to comment.