Type something to search...

Tracking Kehadiran dari Laporan Microsoft Teams

Summary

Saya bikin tool untuk mencatat kehadiran dari Microsoft Teams secara otomatis. Nama peserta dinormalisasi dulu, lalu dicocokkan ke database resmi pakai fuzzy matching, dan hasilnya langsung bisa dipakai dari aplikasi web Streamlit.

Problem

Mencatat kehadiran dari Microsoft Teams biasanya masih dikerjakan manual. Laporan kehadirannya dicocokkan satu per satu dengan database peserta.

Yang bikin repot:

  • Nama peserta tidak konsisten
    • Nama disingkat
    • Cuma nama depan dan nama belakang
    • Ada label tambahan seperti (Unverified), (External), (guest)
    • Kapitalisasi, tanda baca, dan formatnya beda-beda
  • Dipakai dalam jumlah besar
    • Kepakai di 10+ kelas
    • Banyak sesi dengan puluhan peserta
  • Kerja manual menyita waktu
    • Rawan salah input
    • Susah diaudit dan susah dijaga konsistensinya

Ujungnya, pencatatan kehadiran jadi bottleneck operasional yang menghabiskan banyak waktu dan tenaga.


Solution

Saya bangun Attendance Synchronization & Matching System pakai Python yang:

  • Membaca laporan kehadiran Microsoft Teams
  • Melakukan preprocessing dan normalisasi nama
  • Mencocokkan peserta ke database resmi pakai fuzzy string matching
  • Otomatis membuat ringkasan kehadiran (hadir/tidak hadir beserta statistiknya)
graph LR
    A[Upload Participant DB] --> B[Upload Teams Report]
    B --> C{Process}
    C --> D[Normalize Names]
    D --> E[Fuzzy Match]
    E --> F[Set Status]
    F --> G[Download Results]

Alurnya:

  1. Upload Database Peserta
  2. Upload Laporan Kehadiran Microsoft Teams
  3. Sistemnya jalan sendiri:
    • Membersihkan dan menyeragamkan nama peserta
    • Mencocokkan pakai fuzzy matching dengan threshold yang bisa diatur
    • Menentukan status kehadiran
    • Menggabungkan data kehadiran dari semua sesi
  4. Hasilnya siap dipakai, tanpa perlu sentuhan manual

Solusinya di-deploy sebagai aplikasi web Streamlit, jadi orang non-teknis pun bisa pakai.


Impact

  • ⏱️ Hemat waktu
    • Kerja manual turun dari hitungan jam jadi hitungan detik
  • πŸ“‰ Error manusia berkurang
    • Pencocokan nama jadi konsisten dan terstandar
  • πŸ“Š Data kehadiran rapi dan terstruktur
    • Lebih gampang dianalisis, dilaporkan, dan diaudit
  • πŸš€ Bisa dipakai ulang
    • Kepakai di banyak kelas tanpa mengubah alurnya
  • πŸ’Ό Siap dipakai di program nyata
    • Cocok untuk Edu-Tech, program training, dan laporan ke stakeholder

Tech Stack

  • Python
  • Pandas, buat olah dan agregasi data
  • RapidFuzz, buat fuzzy string matching
  • Regex (re), buat preprocessing dan normalisasi teks
  • Streamlit, buat aplikasi web interaktif
  • Microsoft Teams Attendance Report sebagai sumber data

Extras (Optional)

  • Threshold fuzzy matching bisa diatur, menyesuaikan kualitas datanya
  • Struktur kode modular, gampang ditambah
  • Rencana ke depan:
    • Export CSV / Excel
    • Dashboard analytics
    • Integrasi langsung ke database atau LMS
    • Pelaporan kehadiran otomatis

Satu hal yang saya akui: saya masih mengatur threshold-nya manual tiap kali bentuk datanya berubah, dan itu bagian yang paling sering saya lupa lakukan.