MESSI ALLGOALS

Về dữ liệu

Mỗi trường trên một thẻ là một bản ghi đọc từ cơ sở dữ liệu của kho. Chỗ nào không có bản ghi thì bỏ trống, không suy đoán để điền vào.

Cơ sở dữ liệu

928 bàn thắng trong 611 trận đấu, kèm câu lạc bộ, đối thủ, giải đấu, mùa giải, ngày, phút, bộ phận chạm bóng và tình huống dẫn tới bàn thắng. Đi cùng là 59 cầu thủ đã kiến tạo, 26 nhãn mà kho lưu giữ (hat-trick, El Clásico, các cột mốc sự nghiệp) và 10 bộ sưu tập được tuyển chọn. Bước build đọc thẳng những dữ liệu này từ cơ sở dữ liệu rồi ghi ra src/data/*.json; bản thân ứng dụng không bao giờ mở kết nối.

Các clip

927 trong 928 bàn thắng có video, và cả 414 pha kiến tạo đều có. Tệp được phục vụ từ bucket media của chính dự án và không gì được tải cho tới khi bạn bấm phát — không trình phát bên thứ ba, không preload, không pixel theo dõi. Thẻ hiển thị một khung hình lấy từ chính clip của nó khi bucket đã có; chưa có thì thẻ dùng hình do ứng dụng vẽ từ chính bản ghi, nên mỗi thẻ trong lưới là một hình khác nhau.

Dữ liệu kiến tạo

Cơ sở dữ liệu mô tả ai kiến tạo cho các bàn thắng của Messi, nhưng không có gì về những đường chuyền do chính anh thực hiện. Các bản ghi đó được khôi phục từ clip: phần lớn có caption ghi tên người dứt điểm, đối thủ, giải đấu và ngày — những thông tin này được đọc từ khung hình rồi đối chiếu ngược với các trận đã có trong cơ sở dữ liệu. Clip từ năm 2021 trở đi là bản phát sóng không caption, nên chỉ mang một con số cùng đoạn phim và không khẳng định gì thêm.

Còn thiếu gì

  • Vị trí dứt điểm chỉ có ở 474 trong 928 bàn. Số còn lại vắng mặt trên bản đồ dứt điểm thay vì bị đoán bừa vào đó.
  • Một bàn thắng không có clip trong bucket.
  • Không có gì đếm lượt xem hay lượt thích. Cơ sở dữ liệu có cột cho cả hai nhưng mọi dòng đều ghi 0, nên kho lưu trữ không hiển thị chúng thay vì đặt một số 0 cạnh cả 1.342 mục.

Dựng lại

  • npm run data đọc lại cơ sở dữ liệu vào src/data/*.json.
  • npm run videos:link duyệt bucket và nối lại clip với bàn thắng.
  • npm run assists:ocr rồi npm run assists:import dựng lại dữ liệu kiến tạo từ clip.

Hình ảnh

Mỗi thẻ hiển thị ảnh trích từ chính đoạn clip của nó, khi nào kho có — hiện chưa mục nào có. Trong lúc chưa có, mỗi thẻ được vẽ từ chính bản ghi của nó: cú dứt điểm chấm lên khung thành giản lược, tô theo màu giải đấu và câu lạc bộ, thay vì một tấm ảnh dùng chung cho mọi thẻ. Khung hình đóng gói sẵn duy nhất là ảnh chờ của trình phát trước khi clip chạy.

Huy hiệu câu lạc bộ và đội tuyển được phục vụ từ chính máy chủ này, không nhúng từ nguồn ngoài. Chúng là nhãn hiệu của các câu lạc bộ tương ứng, dùng ở đây chỉ để nhận diện đội bóng. Đội nào kho không có huy hiệu thì ứng dụng vẽ một ô chữ cái thay thế.