Skip to content

Water Quality Prediction | SIB Dicoding Cycle 3 | C22-078 Capstone Project

License

Notifications You must be signed in to change notification settings

aNdr3W03/Jernihin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jernihin

Click here to view Jernihin.

Jernihin Homepage

Table of Content


About Jernihin

Jernihin is a machine learning program on an Indonesian-based website which is currently in the process of being developed by 4 developers from the SIB3 Capstone C22-078 Team in the Machine Learning and Front-End Web Developer Program by SIB Dicoding X Kampus Merdeka Batch 3.


Background

A natural resource that has great potential for living things and continues to increase every year is water. According to the Data on Sustainable Development Goals (SDGs), Indonesia's water quality index for 2020 is 53.53, an increase from the previous year [1]. Water measurements can be seen from chemical variables such as pH value, turbidity, phosphorus, nitrogen, oxygen, and others which play an important role in determining the quality of water. To find out the quality of the water needs to be monitored regularly [2].

One of the efforts to assist the water resources management strategy is to create a system that can monitor the quality of water content. Based on the problems above, we decided to build a website application using deep learning methods to predict water quality from several variables. This application is expected to provide another alternative in the management and monitoring of water quality.


Goal & Aim

Based on the background described above, the goal and aim of this project are:

  • This website aims to help the community as a utility to help decide and determine water quality. This feature is expected to help in better management of water resources.

  • Jernihin has a feature that can help people to identify water quality based on the content in the water which consists of Fecal, Oxygen, pH, Sediment, Temperature, Nitrogen, Phosphorus, and Turbidity. This feature should be able to help its users to map and identify water quality.


Installation & Deployment

This step will be explained briefly through two stages, consisting of:

  1. Create the Flask framework on the project
  2. Hosting process to Railway

Project Installation to Personal Virtual Environment

The steps to create your virtual environment from this project is as follows:

  1. Clone this Repository

    git clone https://github.com/aNdr3W03/Jernihin.git
  2. Install Python Virtual Environment

    virtualenv venv
  3. Install All the Requirements Inside "requirements.txt"

    pip install -r requirements.txt
  4. Import Flask App & Run Server

    export FLASK_APP=app.py
    flask run

    or

    python app.py
  5. Stop the application program or server by ctrl + c.


Deploy Machine Learning Model with Flask on Railway

  1. Login to Railway account with Email or Github Acoount

  2. Create New Project

  3. Choose Deploy form GitHub repo

  4. Choose respository project that you want to deploy


How Jernihin Work - Water Quality Classification

  1. Get user input from the HTML form in the form of Fecal, Oxygen, pH, Sediment, Temperature, Nitrogen, Phosphorus, and Turbidity. These parameters are extracted as replacement values which will be predicted later. The value range is between 0 and 100 for each input.

  2. Scale the user input into the NumPy array for inference.

  3. Predict the user input using the model that has been made. The model used is the Random Forest Classifier ensemble tree-based learning algorithm. This will return the result of an array of model predictions from all inputs that have been entered.

  4. Output predictive labels in the form of obtaining real legible results. Then, this integer value is converted to a result string based on the label that matches the sign. The result of this process is a series of predictive outcomes, such as "Excellent", "Good", "Fair", "Marginal", and "Poor".

  5. The final prediction result is returned to the prediction page to be displayed to the user.


Plans & Realization

Risk management planning and possible problems that will occur during the work of this project was carried out using SWOT analysis, namely Strengths, Weaknesses, Opportunities, and Threats. This analysis was conducted to map and identify the strengths, weaknesses, opportunities, and threats that might occur during the development of this project.

For the initial document, a Gantt Chart has been made for tracking the beginning of the agreed-to-do list. Making a Gantt Chart done on ProjectLibre for details of the schedule can be seen in the Gantt Chart document on the following Gantt Chart link, or in the image below:

Jernihin Project Gantt Chart

Jernihin Project Gantt Chart


Repository & Branch

This Jernihin Repository is divided into 2 branches:

  • main (master branch)

    The main branch is used as an integration branch for front end display development and machine learning model development. The plan is to use the Flask framework to build and integrate websites and machine learning model as a whole website.

  • dev (development branch)

    The dev branch is used during the process of determining the initial resources or it can be called an environment where to try different things to be used in the project so that eventually when you have found the appropriate resources, the docs will be moved from dev to main branch.


Bibliography

A. Dataset

AmeriGEOSS Community Platform DataHub

AmeriGEOSS Community Platform DataHub
WQI Parameter Scores 1994-2013 Dataset

B. Resources

In working on this project, several project or project resources are needed resources.

  • Language

           
  • Framework

       
  • Library

                 
  • Icons and Images

       
  • Deployment

     

C. Academic Papers

  • [1] H. Said, N. H. Matondang and H. N. Irmanda, "Sistem Prediksi Kualitas Air Yang Dapat Dikonsumsi Dengan Menerapkan Algoritma K-Nearest Neighbor," Seminar Nasional Mahasiswa Ilmu Komputer dan Aplikasinya (SENAMIKA), vol. 3, no. 1, pp. 158-168, Apr. 2022. Accessed: Oct. 12, 2022. [Online]. Available: https://conference.upnvj.ac.id/index.php/senamika/article/view/2017

  • [2] M. H. D. Barang dan S. K. Saptomo, "Analisis Kualitas Air pada Jalur Distribusi Air Bersih di Gedung Baru Fakultas Ekonomi dan Manajemen Institut Pertanian Bogor," Jurnal Teknik Sipil dan Lingkungan (J-SIL), vol. 4, no. 1, pp. 13-24, Apr. 2019. Accessed: Oct. 12, 2022. doi: 10.29244/jsil.4.1.13-24. [Online]. Aivailable: https://journal.ipb.ac.id/index.php/jsil/article/view/23735

D. References


Presentation

Jernihin Presentation Video

Demo Video

Jernihin Demo Video

Developers

Merdeka Belajar Kampus Merdeka (MBKM) 2022
SIB Dicoding Cycle 3
C22-078 Capstone Team

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages