# 工作流程系統 ### 專案背景 > 因為看到團隊上欠缺管理專案進度品質流程,為解決工作上管理專案任務有效率的一套流程,所以嘗試建構一套可將工作量化的系統 > 希望輔助開發使用! ### 安裝軟體 - [ ] 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 - [ ]