Trustie （确实）是一个以大众化协同开发、开放式资源共享、持续性可信评估为核心机理，面向高校创新实践的在线协作平台。

## 特性

- 软件创作与生产深度融合的软件开发环境体系结构 软件自由创作和工程生产的高效衔接，适于软件开发中群体智慧的有效汇聚。

- 构件化协同开发环境的可扩展运行框架多样化工具的集成和联动，形成了强动态扩展能力的平台框架。

- “互联网即资源库”的全新软件复用模式 成长式软件资源管理系统，实现了分散资源的知识融合、资源的可持续增长和有效复用。

## 部署


### Depends Versions

* Ruby 2.4.5

* Rails ~> 5.2

* MySql ~> 5.6

* Redis 5+

* imagemagick

### Steps

#### 1. 克隆稳定版本
```
git clone -b standalone https://git.trustie.net/jasder/forgeplus.git
```

#### 2. 安装依赖包

```bash
cd forgeplus && bundle install
```

#### 3. 配置初始化文件
进入项目根目录执行一下命令：

```bash
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
touch config/redis.yml
touch config/elasticsearch.yml
```

#### 4. 配置数据库
数据库配置信息请查看/config/database.yml文件，
项目默认采用mysql数据库, 如需更改，请自行修改配置信息，
默认配置如下：

```bash
default: &default
  adapter: mysql2
  host: 127.0.0.1
  encoding: utf8
  username: root
  password: 123456
```

#### 5. 配置gitea服务(可选)
**如需要部署自己的gitea平台，请参考gitea官方平台：https://docs.gitea.io/zh-cn/install-from-binary/**

**因目前gitea平台api受限，暂时推荐从forge平台获取gitea部署文件进行部署：https://forgeplus.trustie.net/projects/Trustie/gitea-binary**

**配置gitea服务步骤**
1. 部署gitea服务，并注册root账户
2. 修改forge平台的 config/configuration.yml中的gitea服务指向地址，如：

```ruby
gitea:
  access_key_id: 'root'
  access_key_secret: 'password'
  domain: 'http://www.gitea.example.com'
  base_url: '/api/v1'
```

#### 6. 安装redis环境
**请自行搜索各平台如何安装部署redis环境**

#### 7. 安装imagemagick插件
- Mac OS X
```bash
 brew install imagemagick ghostscript
```

- Linux
```bash
sudo apt-get install -y imagemagick
```

#### 8. 创建数据库
**开发环境为development， 生成环境为production**
```bash
rails db:create  RAILS_ENV=development
```

#### 9. 导入数据表结构

```bash
bundle exec rake sync_table_structure:import_csv
```

#### 10. 执行migrate迁移文件
**开发环境为development， 生成环境为production**
```bash
rails db:migrate RAILS_ENV=development
```

#### 11. clone前端代码
**将前端代码克隆到public/react目录下，目录结构应该是: public/react/build**
```bash
git clone -b standalone https://git.trustie.net/jasder/build.git
```

#### 12. 启动redis(此处已mac系统为例)
```bash
redis-server&
```

#### 13. 启动sidekiq
**开发环境为development， 生成环境为production**
```bash
bundle exec sidekiq -C config/sidekiq.yml -e production -d
```

#### 14. 启动rails服务
```bash
rails s
```

#### 15. 浏览器访问
在浏览器中输入如下地址访问：
```bash
http://localhost:3000/
```

#### 16. 其他说明
通过页面注册都第一个用户为平台管理员用户

## 页面展示

- 代码库

![](docs/figs/code.png?raw=true)


- 任务管理
![](docs/figs/issue_manage.png?raw=true)

- 任务查看

![](docs/figs/issue_view.png?raw=true)

- 任务指派

![](docs/figs/issue_assign2.png?raw=true)

- 里程碑

![](docs/figs/milestone.png?raw=true)

### API
- [API文档](https://forgeplus.trustie.net/docs/api)
- [API](showdoc.com.cn)
  账号：forgeplus@admin.com 密码：forge123

## 贡献代码

1. Fork 项目
2. 创建本地分支(git checkout -b my-new-feature)
3. 提交更改 (git commit -am 'Add some feature')
4. 推送到分支 (git push origin my-new-feature)
5. 向源项目的 **develop** 分支发起 Pull Request

## License
