1 Introduction

Selamat! Anda telah menyelesaikan semua modul dan graded assignment pada Data Analytics Specialization. Kami yakin Anda telah memahami betapa pentingnya melakukan analisis data serta menguasai langkah pemrosesannya. Sekarang, Anda akan mengimplementasikan proses analisis data end-to-end tersebut secara runtut dari awal hingga akhir.


2 Informasi Umum

  1. Sosialisasi terkait pelaksanaan Capstone Data Analytics akan dilakukan pada hari pertama course SQL Query.

  2. Student diwajibkan menghadiri kelas Capstone yang akan dilaksanakan selama 2 hari setelah course SQL Query. Kalendar akademi untuk masing-masing batch dapat dilihat pada Google Classroom -> Menu Classwork -> Administration Deck.

  3. Waktu pelaksanaan Capstone sama seperti kelas biasa:

    1. Kelas Day: 13.00 - 16.00

    2. Kelas Night: 18.30 - 21.30

  4. Pelaksanaan Capstone untuk kelas Day, kelas Night Offline (On Site), dan kelas Night Online akan terpisah sesuai kelas masing-masing.

3 Case Capstone

Berikut adalah case untuk Capstone Data Analytics disertai dengan:

  • Video Introduction, sebagai bahan pertimbangan dalam memilih case yang akan dikerjakan

  • GitLab Repository, berisi file pendukung untuk mengerjakan case

  • Rubrics, sebagai acuan poin penilaian yang harus dipenuhi

Semua case dikerjakan menggunakan Python versi 3.12

3.1 1. Telegram Chatbot

3.1.1 Project Requirements

Relevant Topics:

  • Python for Data Analysts (P4DA)
  • Exploratory Data Analysis (EDA)
  • Data Wrangling and Visualization (DWV)

New Exploratory Topics:

  • Basic Python: Custom functions
  • Visualization using matplotlib
  • Build bot using flask framework
  • Python Script Deployment using PythonAnywhere

Workflow:

  • Virtual Environment Preparation
  • Set up Telegram bot API
  • Create a simple bot
  • Create campaign performance reporting bot
    • Load Data
    • Data Wrangling
    • Data Visualization
  • Python Script Deployment

3.1.2 Rubrics: Telegram Chatbot

  1. [3 points] Setup

    • Prepare Virtual Environment

    • Create telegram bot TOKEN via BotFather

    • Using os.environ to secure TOKEN

  2. [3 points] Chatbot Functionality - Basic Function

    • Create command /start or /help

    • Create command /about

    • Create function echo_all()

  3. [3 points] Chatbot Functionality - Summary text report: /summary

    • Perform necessary data wrangling steps to extract information

    • Perform the right mathematical calculation

    • Send summary message using Template

  4. [4 points] Chatbot Functionality - Visualization report: /plot

    • Perform necessary data wrangling steps to extract information

    • Perform the right mathematical calculation

    • Send plot with caption

    • Tidy plot layout (title, label, color, size)

  5. [3 points] Application deployment

    • Using Flask to serve the chatbot as an application

    • Deploy to PythonAnywhere

    • Deployed chatbot run smoothly without error



3.2 2. Bike Sharing API

3.2.1 Project Requirements

Relevant Topics:

  • Python for Data Analysts (P4DA)
  • Exploratory Data Analysis (EDA)
  • SQL Query (SQL)

New Exploratory Topics:

  • Basic Python
    • For loop
    • Custom function
  • Build REST API using flask

Workflow:

  • Virtual Environment Preparation
  • Read Data from Database
  • Create Rest API using Flask API
    • Create Static Analytic Endpoint
    • Create Dynamic Analytic Endpoint
    • Create POST Endpoint
      • Insert Data from CSV to Database
      • Analytic POST Endpoint

3.2.2 Rubrics: Bike Sharing API

  1. [1 point] Created Flask App

    • create app.py file to make flask app

    • create Flask app to execute all of the endpoint you have made

  2. [2 points] Created functionality to read or get specific data from the database

    • create query to read data from database

    • create function to execute read specific information into table from database

  3. [4 points] Created functionality to input new data into each table for the databases

    • create query to insert new data into stations and trips table

    • create function to execute input data into stations and trips table

  4. [3 points] Created static endpoints which return analytical result (must be different from point 2,3)

    • create query to make analytical resultfrom the data

    • create static endpoint to analyze the data from database, for example average trip durations

  5. [3 points] Created dynamic endpoints which return analytical result (must be different from point 2,3,4)

    • create query to make analytical resultfrom the data

    • create dinamic endpoint to analyze the data from database, for example average trip durations for each bike_id

  6. [3 points] Created POST endpoint which receive input data, then utilize it to get analytical result (must be different from point 2,3,4,5)

    • create input data for refering into query for post endpoint

    • make query and aggregation function to implement the input



3.3 3. Web Scraping

3.3.1 Project Requirements

Relevant Topics:

  • Python for Data Analysts (P4DA)
  • Exploratory Data Analysis (EDA)
  • Data Wrangling and Visualization (DWV)

New Exploratory Topics:

  • Python for-loop
  • Webscrapping with BeautifulSoup
  • Visualization with matplotlib
  • Building dashboard using flask

Workflow:

  1. Virtual environment preparation
  2. Scrap data from website using BeautifulSoup
  3. Creating dataframe
  4. Data preprocessing
    • Data Cleansing
    • Data Wrangling
  5. Data visualization
  6. Building flask Dashboard

3.3.2 Rubrics: Web Scraping

  1. [2 points] Environment preparation

  2. [5 points] Finding the right key to scrap the data & Extracting the right information

  3. [5 points] Creating data frame & Data wrangling

  4. [2 points] Creating a tidy python notebook as a report

  5. [2 points] Implement it on Flask dashboard



3.4 4. Flask Dashboard UI

3.4.1 Project Requirements

Relevant Topics:

  • Python for Data Analysts (P4DA)
  • Exploratory Data Analysis (EDA)
  • Data Wrangling and Visualization (DWV)

New Exploratory Topics:

  • Visualization using matplotlib
  • Build Dashboard UI using flask

Workflow:

  • Virtual Environment Preparation
  • Data Preprocessing
    • Data Cleansing
    • Data Wrangling
    • Data Aggregation
  • Data Visualization
  • Build Dashboard UI

3.4.2 Rubrics: Flask Dashboard UI

  1. [2 points] Setting Repository Github dan Environment

    • Create new Github Repository

    • Create new virtual environment

    • Install dependency libraries in virtual environment

  2. [2 points] Data Pre-processing and Exploratory Data Analysis

  3. [4 points] Data Wrangling

  4. [1 points] Data Visualization: Create or duplicate bar plot

  5. [1 points] Data Visualization: Create or duplicate scatter plot

  6. [1 points] Data Visualization: Create or duplicate histogram plot

  7. [1 points] Data Visualization: Create an additional plot

  8. [4 points] Build Flask App



4 Pemilihan Case

  1. Student diwajibkan untuk memilih satu dari antara empat case yang tersedia.

  2. Silahkan untuk mengacu pada video perkenalan dan penjelasan dari masing-masing case sebagai bahan pertimbangan dalam memilih case capstone.

  3. Silahkan mengisi Google Form: Pemilihan Case Capstone sesuai dengan deadline yang tertera pada Stream Google Classroom.

  4. Apabila terdapat pertanyaan mengenai case capstone yang ingin dipilih, student dapat bertanya pada Q&A Session SQL Query hari kedua maupun ketiga (selama 30 menit sebelum kelas berlangsung).


5 Pengerjaan Case

5.1 Prepare Project Folder

  1. Akses link menuju GitLab Repository pada masing-masing case.

  2. Download repository dalam bentuk file zip melalui Code -> Zip, lalu ekstrak file tersebut.

  1. Buka Visual Studio Code dan buka folder project yang telah diekstrak melalui File -> Open Folder.

drawing


5.2 Setup Project Environment

Terdapat beberapa persiapan yang perlu dilakukan untuk mengerjakan project tersebut. Silakan ikuti perintah berikut untuk membuat virtual environment baru dan melakukan instalasi dependensi:

  1. Buka Terminal -> New Terminal pada Visual Studio Code

drawing

  1. Buat virtual environment conda baru menggunakan Python versi 3.12:
conda create -n <NAMA_ENV> python=3.12
  1. Aktivasi virtual environment yang telah dibuat:
conda activate <NAMA_ENV>
  1. Lakukan instalasi library dependensi yang diperlukan masing-masing project
pip install -r requirements.txt
  1. Gunakan Video Tutorial pada masing-masing case sebagai panduan dalam mengerjakan capstone.


6 Upload / Push file ke github

  1. Login ke Github

  1. Membuat repository baru

  1. Membuat nama repository sesuai judul capstone dan centang pilihan “Add a README file”

  1. Menambahkan file ke repository dengan cara “Upload Files”

  1. Meng-upload semua file yang diperlukan dengan cara drag and drop

  1. Memastikan semua file yang diperlukan sudah siap untuk disimpan, lalu klik “Commit Changes”

  1. Memastikan semua file yang dibutuhkan sudah ter-upload dengan sempurna


7 Pengumpulan dan Penilaian

  1. Deadline pengumpulan capstone sesuai dengan yang tertera pada Assignment Google Classroom.

  2. Pengumpulan capstone dapat dilakukan dengan langkah-langkah sebagai berikut:

    • Push (Upload) project yang telah dibuat ke Github. Mohon pastikan repository yang dibuat bersifat public.

    • Cantumkan link repository GitHub pada bagian Private comments dari Assignment “Capstone Project” Google Classroom. Format link adalah sebagai berikut: github.com/<user_name>/<repository_name>

    • Klik tombol Mark as Done untuk menandakan bahwa tugas sudah selesai dikerjakan dan siap untuk kami nilai.

⚠️ Apabila tombol Mark as Done tidak diklik, maka kami tidak menilai capstone project yang dikumpulkan.

  1. Capstone akan dinilai sesuai dengan Rubrics yang tertera pada masing-masing case.

  2. Penilaian akan diberikan maksimal 4 hari kerja setelah capstone disubmit melalui Google Classroom.

  3. Nilai maksimal yang dapat diperoleh adalah 16 points.

  4. Ketepatan waktu pada pengerjaan capstone project sangat dihargai. Oleh karena itu, diberlakukan poin pinalti keterlambatan dengan rincian sebagai berikut:

    • Terlambat 1 hari: pengurangan 1 poin

    • Terlambat 2 hari: pengurangan 3 poin

    • Terlambat 3 hari: pengurangan 5 poin

    • Terlambat 4 hari: pengurangan 7 poin

    • Terlambat lebih dari 4 hari: pengurangan 8 poin

    • Terlambat lebih dari 1 bulan: nilai capstone 0


8 Perbaikan Nilai

  1. Student dapat melakukan perbaikan nilai maksimal 1 kali apabila nilai sebelum penalti keterlambatan adalah di bawah 12 poin.

  2. Nilai maksimal yang dapat diperoleh setelah perbaikan adalah 12 poin, kemudian disesuaikan dengan penalti keterlambatan.

  3. Perbaikan dilakukan dengan cara resubmit melalui Assignment Google Classroom.

  4. Deadline pengumpulan perbaikan adalah 3 hari setelah mendapatkan penilaian dari kami.


9 Informasi Tambahan

Apabila masih terdapat kendala saat pengerjaan capstone, direkomendasikan untuk saling berdiskusi dengan student lainnya atau bertanya melalui dokumentasi error helper selama kelas berlangsung. Di luar waktu kelas pertanyaan dapat diajukan melalui Algoritma Github Discussion.

- Sangat disarankan untuk mengelaborasi permasalahan ataupun error se-detail mungkin dan melampirkan error dan langkah kerja dalam bentuk code atau screenshot.

⚠️ Pertanyaan mengenai capstone yang diajukan saat hari Sabtu, Minggu, ataupun libur nasional akan diproses pada hari kerja berikutnya.