---
# System prepended metadata

title: 工作流程系統

---

# 工作流程系統 

### 專案背景
> 因為看到團隊上欠缺管理專案進度品質流程，為解決工作上管理專案任務有效率的一套流程，所以嘗試建構一套可將工作量化的系統
> 希望輔助開發使用！
 
 
### 安裝軟體
- [ ] Mysql 8
- [ ] React.js
- [ ] Composer 
- [ ] VSCODE
- [ ] Vite
- [ ] PHP 8.2.9
- [ ] NodeJs LTS 18.17.1
- [ ] Github Desktop
- [ ] Git


### 學習技術點
* laravel Queen job
* laravel Eloquent ORM
* laravel Eloquent Relationships
* RESTful API 
* Swagger 
* maatwebsite/excel
* Log System
* React.js
* React Hook Form Validate




### 所用到的資料來源
1. 登入users
2. 排程計畫
3. 每天待辦事項
4. 輸出報表



```

composer create-project --prefer-dist laravel/laravel your-project-name


```



````
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_mysql_username
DB_PASSWORD=your_mysql_password





````

 



建立migration Create Table Schema
```
php artisan make:migration create_uac_table
php artisan make:migration create_todolist_table
php artisan make:migration create_schedule_table
php artisan make:migration create_report_table

```



編輯schedule migration

#### uac table

```
 php artisan make:migration create_uac_table
    public function up(): void
    {
        Schema::create('uac', function (Blueprint $table) {
            $table->id();
            $table->string('account');
            $table->integer('pwd');
          
            $table->tinyInteger('enable');
            $table->timestamps();
        });
    }

```


#### todolist table
```
 php artisan make:migration create_Progress_table
 
     public function up(): void
    {
        Schema::create('todolist', function (Blueprint $table) {
            $table->id();
            $table->string('content');
            $table->integer('type');
            $table->integer('priority');
            $table->tinyInteger('enable');
            $table->tinyInteger('done');
            $table->timestamps();


            $table->unsignedBigInteger('uac_id');
            $table->foreign('uac_id')->references('id')->on('uac');

            
        });
    }
 
 
 
```










#### report table

```
php artisan make:migration create_report_table

        Schema::create('report', function (Blueprint $table) {
            $table->id();

            $table->string('content');
            $table->integer('type');
            $table->integer('priority');
            $table->dateTime('DATETIME'); // datetime 列
            $table->tinyInteger('isExport');
            $table->tinyInteger('sign');
            $table->timestamps(); 
            $table->unsignedBigInteger('uac_id');
            $table->foreign('uac_id')->references('id')->on('uac');

        });

```


#### schedule table
```
php artisan make:migration create_scgedule_table
    public function up(): void
    {
        Schema::create('schedule', function (Blueprint $table) {
            $table->id();


            $table->string('content');
            $table->integer('type');
            $table->integer('priority');
            $table->dateTime('DATETIME'); // datetime 列
 
            $table->timestamps();

            $table->unsignedBigInteger('uac_id');
            $table->foreign('uac_id')->references('id')->on('uac');


        });
    }
```


#### progress table
```
php artisan make:migration create_Progress_table

    public function up(): void
    {
        Schema::create('progress', function (Blueprint $table) {
            $table->id();
            $table->string('content');
            $table->integer('type');
            $table->integer('priority');
            $table->dateTime('DATETIME'); // datetime 列

            $table->timestamps();

            $table->unsignedBigInteger('uac_id');
            $table->foreign('uac_id')->references('id')->on('uac');

            
        });
    }


```

### 開始下migration
```
php artisan migration
```

如果不存在，會跳出是否建立 選yes
```

```
![](https://hackmd.io/_uploads/BJ4OrBX03.png)
升級完成
![](https://hackmd.io/_uploads/Hk_JIrmAh.png)



## install swagger
```
composer require darkaonline/l5-swagger

php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"
會產生config\l5-swagger.php
請編輯 'docs' => storage_path('api-docs'),
=> 'docs' => public_path('api-docs'),
將輸出swagger 文檔 到public目錄下
```

### 想法
- [ ] 串接第三方登入

### TO DO
- [ ] Create Project With Composer
- [ ] Create Mysql DataBase 
- [ ] 建立MODEL
- [ ] 建立Controller
- [ ] 建立api.php




- [ ] Laravel 後端
- [ ] 設定伺服器配置httpd.conf
- [ ] 依據功能寫API
- [ ] UAC
- [ ] TODOLIST
- [ ] SCHEDULE
- [ ] REPORT
- [ ] 檢查驗證 
- [ ] api token 決定是否採用session 還是 JWT token
- [ ] 輸出SWAGGER
 
 
 
- [ ] 依據功能規劃線搞
- [ ] 起專案
- [ ] 設定伺服器配置
- [ ] 開始切版
- [ ] 依據功能切割路由
- [ ] 依據SWAGGER打API
- [ ] 依據回應各種case撰寫處理機制
- [ ] 加入sweetAlert
- [ ] 報表輸出樣式
- [ ] excel


 


- [ ] 開前端專案
- [ ] 建置vps環境
- [ ] 開後端專案
- [ ] 買網址
- [ ] 網址DNS部署
- [ ] php migration schema
- [ ]   
