私はカスタム開発会社で働いています。並行して、さまざまな活動と作業量で多くのプロジェクトを実行しています。プロジェクトマネージャーは毎週、現在の状況を確認し、来週の計画を立て、開発者間でタスクを分散するように呼びかけます。私がチームリーダーになったとき、これらの会議への参加が私の責任に追加されました。
ブリーフィングがあまり効果的ではないことにすぐに気づきました。私の目の前には、過負荷になっている開発者と、逆にアイドル状態の開発者の全体像がなかったからです。
タスク管理にはRedmineを使用しています。これはやや古風ですが、便利で実績のある無料のツールです。私たちの場合の致命的な欠陥は、現在のタスクの明確な一般的な要約がないことでした。

プロジェクトコンセプト
実際には一般的な要約を表示する機会がありますが、すべてのプロジェクトにアクセスできる管理者のみが対象であることをすぐに明確にする価値があります。実際には、各マネージャーはプロジェクトとタスクの特定のスライスにのみアクセスできます。
, , . , trello- , -.
, Redmine REST API - , . , - .
junior frontend , - , . «, », — .
, — Vue.js . , vue-cli vuex, API, . , Redmine , , .
, , , php- - 200 , . (/), .
, cURL file_get_contents(). :
$host = 'https://redmine.app';
$apiKey = '*****';
$context = stream_context_create([
"http" => [
"method" => "GET",
"header" => "X-Redmine-API-Key: $apiKey"
]
]);
$projects = file_get_contents("$host/projects.json", false, $context);
? SPA, JSON Web Tokens? , cookie-based . POST-, , -. checkRedmineUser($login, $password), , -.
- :
$auth = base64_encode("$login:$password");
$opts = [
"http" => [
"method" => "GET",
"header" => [
"Authorization: Basic $auth"
],
"ignore_errors" => true,
]
];
$context = stream_context_create($opts);
$response = file_get_contents("$host/users/current.json", false, $context);
API, . : MVP, .
?
— , . :

, , / drag-n-drop' .
, , , , — . , , -, .
— PM-, . , . , — ?
, : « », , , CI/CD. - , - , : «, ...».
Laravel, Gitlab, issues.
(milestones Gitlab) — « » , — .
, , , , . , -, HTTP API.
Gitlab-CI. — .. , docker .
middleware. JSON-, — DTO. (enums) — spatie/enum. file_get_contents() guzzle.
. , , , . « » — -:

, .
- — . , , , . , « MVP».
- . , , . , Unix: do one thing, and do it well.
- , , , . Issues , , pull request' , , , .
- — . - , , , production. , . , . code review, .
私はそれがどのように起こったか、そしてそれがどのように起こったか、そしてすでに新しいプロジェクトのためのアイデアを集めていることに満足しています。