TeachingSoftware EngineeringCodebase Exploration Activity
Workshop

Codebase Exploration Activity

Activity: Codebase Exploration

Format: Individual
Tools: Browser (GitHub), IDE opsional


Konteks

Di dunia kerja, engineer jarang memulai dari halaman kosong. Lebih sering, kamu akan dihadapkan pada codebase yang sudah berjalan, sudah punya sejarah panjang, dan harus kamu pahami sebelum bisa menyentuhnya.

Activity ini mensimulasikan pengalaman itu. Pilih satu project dari daftar di bawah, lakukan eksplorasi, dan dokumentasikan apa yang kamu temukan.


Pilih Salah Satu Project

1. Hoppscotch — API development & testing tool
https://github.com/hoppscotch/hoppscotch
Vue.js + TypeScript. Alternatif open source dari Postman.

2. Appwrite — Open source backend platform
https://github.com/appwrite/appwrite
PHP + berbagai bahasa. Alternatif open source dari Firebase.

3. Langchain — Framework untuk aplikasi berbasis LLM
https://github.com/langchain-ai/langchain
Python. Salah satu project AI paling aktif saat ini.

4. Gradio — Library untuk membuat UI demo model AI
https://github.com/gradio-app/gradio
Python + TypeScript. Dipakai luas oleh researcher dan ML engineer.

5. Supabase — Open source Firebase alternative
https://github.com/supabase/supabase
TypeScript. Database, auth, storage, dan realtime dalam satu platform.

6. n8n — Workflow automation platform
https://github.com/n8n-io/n8n
TypeScript + Node.js. Menghubungkan 400+ aplikasi dan API.

7. Docusaurus — Static site generator untuk dokumentasi
https://github.com/facebook/docusaurus
TypeScript + React, dibuat oleh Meta.

8. Open WebUI — UI untuk menjalankan LLM secara lokal
https://github.com/open-webui/open-webui
Python + Svelte. Interface untuk model seperti Llama dan Mistral.


Yang Harus Dikerjakan

Laporanmu harus menjawab empat hal berikut. Di luar itu, kamu bebas mengeksplorasi ke arah manapun yang menarik.


1. Gambaran sistem

Jelaskan apa yang sistem ini lakukan, siapa penggunanya, dan teknologi apa yang dipakai. Sertakan juga observasi awal tentang skala project ini — seberapa aktif, seberapa besar, siapa saja yang terlibat.

2. Penilaian maintainability

Pilih satu area atau module yang menurutmu paling menarik, masuk ke kodenya, dan berikan penilaian: apakah kode di sana maintainable? Dukung jawabanmu dengan contoh spesifik — kutip nama file, nama fungsi, atau baris tertentu yang menjadi dasar penilaianmu.

3. Satu technical debt yang kamu temukan

Temukan satu issue atau kondisi di codebase yang menurutmu merupakan technical debt. Bisa dari issue tracker, bisa dari kode yang kamu baca langsung. Jelaskan apa masalahnya dan sudah berapa lama ada.

4. Refleksi pribadi

Satu hal yang paling mengejutkan atau paling menarik dari eksplorasi ini — bisa positif, bisa negatif, bisa keduanya.


Format Pengumpulan

Dokumen PDF atau Word. Setiap klaim harus disertai screenshot atau link ke bagian spesifik di GitHub sebagai bukti.


Catatan

Kalau stuck, mulai dari README, ikuti entry point-nya, dan gunakan fitur pencarian GitHub dengan menekan /.