Saya bekerja untuk perusahaan pengembangan kustom. Secara paralel, kami menjalankan banyak proyek dengan aktivitas dan volume pekerjaan yang berbeda. Setiap minggu, manajer proyek menelepon untuk memeriksa keadaan saat ini, menyusun rencana untuk minggu depan dan mendistribusikan tugas antar pengembang. Ketika saya menjadi pemimpin tim, partisipasi dalam pertemuan ini ditambahkan ke tanggung jawab saya.
Saya segera menyadari bahwa pengarahan tidak terlalu efektif, karena tidak ada gambaran umum dan integral di depan mata saya, pengembang mana yang kelebihan beban, dan siapa, sebaliknya, menganggur.
Kami menggunakan Redmine untuk manajemen tugas. Ini adalah alat gratis yang agak kuno, tetapi berguna dan telah teruji waktu. Kesalahan fatal dalam kasus kami adalah kurangnya ringkasan umum yang jelas tentang tugas-tugas saat ini.

Konsep proyek
Perlu diklarifikasi dengan segera bahwa sebenarnya ada peluang untuk menampilkan ringkasan umum, tetapi hanya untuk administrator yang memiliki akses ke semua proyek. Dalam praktiknya, setiap manajer hanya memiliki akses ke sebagian proyek dan tugas.
, , . , 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, .
Saya senang dengan hasilnya, bagaimana hal itu terjadi, dan sudah mengumpulkan ide untuk proyek baru.