{"id":22158373,"url":"https://github.com/andr3w03/jernihin","last_synced_at":"2025-07-26T08:32:49.063Z","repository":{"id":110829693,"uuid":"569723995","full_name":"aNdr3W03/Jernihin","owner":"aNdr3W03","description":"Water Quality Prediction | SIB Dicoding Cycle 3 | C22-078 Capstone Project","archived":false,"fork":false,"pushed_at":"2023-05-21T17:32:59.000Z","size":31749,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T01:13:07.649Z","etag":null,"topics":["deployment","flask","machine-learning","prediction","python","water-quality","web-application"],"latest_commit_sha":null,"homepage":"https://jernihin.up.railway.app","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aNdr3W03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-23T13:24:39.000Z","updated_at":"2025-03-25T06:23:43.000Z","dependencies_parsed_at":"2023-09-26T10:15:46.403Z","dependency_job_id":null,"html_url":"https://github.com/aNdr3W03/Jernihin","commit_stats":{"total_commits":152,"total_committers":6,"mean_commits":"25.333333333333332","dds":0.5657894736842105,"last_synced_commit":"2685a6d6fa9d38f9fe66d734247af40090f74576"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aNdr3W03/Jernihin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FJernihin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FJernihin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FJernihin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FJernihin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aNdr3W03","download_url":"https://codeload.github.com/aNdr3W03/Jernihin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aNdr3W03%2FJernihin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267140669,"owners_count":24041970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deployment","flask","machine-learning","prediction","python","water-quality","web-application"],"created_at":"2024-12-02T03:32:19.017Z","updated_at":"2025-07-26T08:32:47.149Z","avatar_url":"https://github.com/aNdr3W03.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jernihin\n\nClick here to view \u003ca href=\"https://jernihin.up.railway.app\" title=\"Jernihin\" target=\"_blank\"\u003e\u003cb\u003eJernihin\u003c/b\u003e\u003c/a\u003e.\n\n\u003ca href=\"https://jernihin.up.railway.app\" title=\"Jernihin Homepage\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/77439245/206903737-15a2b3f3-e885-4909-a8c7-38eeb2edd154.png\" alt=\"Jernihin Homepage\"\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\n\n# Table of Content\n\n- [Jernihin](#jernihin)\n- [Table of Content](#table-of-content)\n- [About Jernihin](#about-jernihin)\n  - [Background](#background)\n  - [Goal \\\u0026 Aim](#goal--aim)\n  - [Installation \\\u0026 Deployment](#installation--deployment)\n    - [Project Installation to Personal Virtual Environment](#project-installation-to-personal-virtual-environment)\n    - [Deploy Machine Learning Model with Flask on Railway](#deploy-machine-learning-model-with-flask-on-railway)\n  - [How Jernihin Work - Water Quality Classification](#how-jernihin-work---water-quality-classification)\n  - [Plans \\\u0026 Realization](#plans--realization)\n  - [Repository \\\u0026 Branch](#repository--branch)\n  - [Bibliography](#bibliography)\n    - [A. Dataset](#a-dataset)\n    - [B. Resources](#b-resources)\n    - [C. Academic Papers](#c-academic-papers)\n    - [D. References](#d-references)\n  - [Presentation](#presentation)\n  - [Demo Video](#demo-video)\n  - [Developers](#developers)\n\n\u003cbr\u003e\n\n# About Jernihin\n\n**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**.\n\n\u003cbr\u003e\n\n## Background\n\nA 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]](#c-academic-paper-link \"Sistem Prediksi Kualitas Air Yang Dapat Dikonsumsi Dengan Menerapkan Algoritma K-Nearest Neighbor\"). 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]](#c-academic-paper-link \"Analisis Kualitas Air pada Jalur Distribusi Air Bersih di Gedung Baru Fakultas Ekonomi dan Manajemen Institut Pertanian Bogor\").\n\nOne 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.\n\n\u003cbr\u003e\n\n## Goal \u0026 Aim\n\nBased on the background described above, the goal and aim of this project are:\n\n- 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. \n\n- 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.\n\n\u003cbr\u003e\n\n## Installation \u0026 Deployment\n\nThis step will be explained briefly through two stages, consisting of:\n\n1. Create the Flask framework on the project\n2. Hosting process to Railway\n\n---\n\n### Project Installation to Personal Virtual Environment\n\nThe steps to create your virtual environment from this project is as follows:\n\n1. Clone this Repository\n   ```bash\n   git clone https://github.com/aNdr3W03/Jernihin.git\n   ```\n\n2. Install Python Virtual Environment\n   ```bash\n   virtualenv venv\n   ```\n\n3. Install All the Requirements Inside \"requirements.txt\"\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. Import Flask App \u0026 Run Server\n   ```bash\n   export FLASK_APP=app.py\n   flask run\n   ```\n   or\n   ```bash\n   python app.py\n   ```\n\n5. Stop the application program or server by `ctrl + c`.\n\n---\n\n### Deploy Machine Learning Model with Flask on Railway\n\n1. \u003ca href=\"https://railway.app/login\" title=\"Railway Login\" target=\"_blank\"\u003e\u003cb\u003eLogin\u003c/b\u003e\u003c/a\u003e to Railway account with Email or Github Acoount\n\n2. Create \u003ca href=\"https://railway.app/new\" title=\"Railway New Project\" target=\"_blank\"\u003e\u003cb\u003eNew Project\u003c/b\u003e\u003c/a\u003e\n\n3. Choose **Deploy form GitHub repo**\n\n4. Choose respository project that you want to deploy\n\n\u003cbr\u003e\n\n## How Jernihin Work - Water Quality Classification\n\n1. 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.\n\n2. Scale the user input into the NumPy array for inference.\n\n3. 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.\n\n4. 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\".\n\n5. The final prediction result is returned to the prediction page to be displayed to the user.\n\n\u003cbr\u003e\n\n## Plans \u0026 Realization\n\nRisk 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.\n\nFor 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:\n\n\u003ca href=\"https://drive.google.com/drive/folders/1MdgNszSIeeMjoXn2jeHOtU7ZDhLj8h68\" title=\"Jernihin Project Gantt Chart\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/77439245/206624763-e7d47744-7e0c-4411-be4c-d3e6f7de44ff.png\" alt=\"Jernihin Project Gantt Chart\" style=\"width: 100%\"\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://drive.google.com/drive/folders/1MdgNszSIeeMjoXn2jeHOtU7ZDhLj8h68\" title=\"Jernihin Project Gantt Chart\" target=\"_blank\"\u003eJernihin Project Gantt Chart\u003c/a\u003e\n\n\u003cbr\u003e\n\n## Repository \u0026 Branch\n\nThis **Jernihin Repository** is divided into **2 branches**:\n\n- **main** (master branch)\n  \n  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.\n\n- **dev** (development branch)\n  \n  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.\n    \n\u003cbr\u003e\n\n## Bibliography\n\n### A. Dataset\n\n\u003ca href=\"https://data.amerigeoss.org\" title=\"AmeriGEOSS Community Platform DataHub\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/77439245/206162481-5b17dfc2-fc1e-4f0a-a183-8935999becbc.png\" alt=\"AmeriGEOSS Community Platform DataHub\" style=\"width: 250px\"\u003e\n\u003c/a\u003e\n  \nAmeriGEOSS Community Platform DataHub  \n\u003ca href=\"https://data.amerigeoss.org/dataset/wqi-parameter-scores-1994-2013-b0941\" title=\"Water Quality Index Parameter Scores 1994-2013 Dataset\" target=\"_blank\"\u003eWQI Parameter Scores 1994-2013 Dataset\u003c/a\u003e\n\n### B. Resources\n\nIn working on this project, several project or project resources are needed resources.\n\n- **Language**\n  \n  \u003ca href=\"https://www.w3schools.com/html\" title=\"HTML5\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/html5-%23E34F26.svg?\u0026style=for-the-badge\u0026logo=html5\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://www.w3schools.com/css\" title=\"CSS3\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/css3-%231572B6.svg?\u0026style=for-the-badge\u0026logo=css3\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://www.javascript.com\" title=\"JavaScript\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/javascript-%23F7DF1E.svg?\u0026style=for-the-badge\u0026logo=javascript\u0026logoColor=black\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://www.python.org\" title=\"Python\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/python-3670A0.svg?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \n- **Framework**\n  \n  \u003ca href=\"https://getbootstrap.com\" title=\"Bootstrap\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/bootstrap-%237952B3.svg?\u0026style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://flask.palletsprojects.com\" title=\"Flask\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/flask-%23000000.svg?\u0026style=for-the-badge\u0026logo=flask\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \n- **Library**\n  \n  \u003ca href=\"https://jquery.com\" title=\"jQuery\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/jquery-%230769AD.svg?\u0026style=for-the-badge\u0026logo=jquery\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://pandas.pydata.org\" title=\"Pandas\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/pandas-%23150458.svg?\u0026style=for-the-badge\u0026logo=pandas\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://numpy.org\" title=\"NumPy\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/numpy-%23013243.svg?\u0026style=for-the-badge\u0026logo=numpy\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://scikit-learn.org\" title=\"scikit-learn\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/scikit--learn-%23F7931E.svg?\u0026style=for-the-badge\u0026logo=scikit-learn\u0026logoColor=3499CD\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://matplotlib.org\" title=\"Matplotlib\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://custom-icon-badges.demolab.com/badge/matplotlib-66baea.svg?style=for-the-badge\u0026logo=matplotlib\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://seaborn.pydata.org\" title=\"Seaborn\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://custom-icon-badges.demolab.com/badge/seaborn-white.svg?style=for-the-badge\u0026logo=seaborn\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://docs.python.org/3/library/pickle.html\" title=\"Pickle\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/pickle-%23ffffff.svg?style=for-the-badge\u0026logo=pickle\u0026logoColor=black\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \n- **Icons and Images**\n  \n  \u003ca href=\"https://fontawesome.com\" title=\"Font Awesome\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/font%20awesome-%23339AF0.svg?\u0026style=for-the-badge\u0026logo=font%20awesome\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://unsplash.com\" title=\"Unsplash\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/unsplash-%23000000.svg?\u0026style=for-the-badge\u0026logo=unsplash\u0026logoColor=white\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n  \n- **Deployment**\n  \n  \u003ca href=\"https://railway.app\" title=\"Railway App\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://custom-icon-badges.demolab.com/badge/railway-white.svg?style=for-the-badge\u0026logo=railway-app\" /\u003e\n  \u003c/a\u003e \u0026nbsp;\n\n### C. Academic Papers\n\n- [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: \u003ca href=\"https://conference.upnvj.ac.id/index.php/senamika/article/view/2017\" target=\"_blank\"\u003ehttps://conference.upnvj.ac.id/index.php/senamika/article/view/2017\u003c/a\u003e\n  \n- [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: \u003ca href=\"https://journal.ipb.ac.id/index.php/jsil/article/view/23735\" target=\"_blank\"\u003ehttps://journal.ipb.ac.id/index.php/jsil/article/view/23735\u003c/a\u003e\n\n### D. References\n\n- [3] Government of Newfoundland and Labrador, \"*Drinking Water Quality Index.*\" \u003ca href=\"https://www.gov.nl.ca\" target=\"_blank\"\u003egov.nl.ca\u003c/a\u003e. \u003ca href=\"https://www.gov.nl.ca/ecc/waterres/quality/drinkingwater/dwqi\" target=\"_blank\"\u003ehttps://www.gov.nl.ca/ecc/waterres/quality/drinkingwater/dwqi\u003c/a\u003e (accessed October 12, 2022).\n\n- [4] Nutan, \"*Deploy Machine Learning Model with Flask on Heroku.*\" \u003ca href=\"https://medium.com\" target=\"_blank\"\u003emedium.com\u003c/a\u003e. \u003ca href=\"https://medium.com/@nutanbhogendrasharma/deploy-machine-learning-model-with-flask-on-heroku-cd079b692b1d\" target=\"_blank\"\u003ehttps://medium.com/@nutanbhogendrasharma/deploy-machine-learning-model-with-flask-on-heroku-cd079b692b1d\u003c/a\u003e (accessed October 12, 2022).\n\n- [5] A. Sridhar, \"*How to Deploy Machine Learning Model using Flask (Iris Dataset) | Python.*\" \u003ca href=\"https://youtube.com\" target=\"_blank\"\u003eyoutube.com\u003c/a\u003e. \u003ca href=\"https://youtu.be/2LqrfEzuIMk\" target=\"_blank\"\u003ehttps://youtu.be/2LqrfEzuIMk\u003c/a\u003e (accessed November 23, 2022).\n\n- [6] K. Naik, \"*Deploy Machine Learning Model using Flask.*\" \u003ca href=\"https://youtube.com\" target=\"_blank\"\u003eyoutube.com\u003c/a\u003e. \u003ca href=\"https://youtu.be/UbCWoMf80PY\" target=\"_blank\"\u003ehttps://youtu.be/UbCWoMf80PY\u003c/a\u003e (accessed November 23, 2022).\n\n\u003cbr\u003e\n\n## Presentation\n\n\u003ca href=\"https://youtu.be/6C62ByQk4Io\" title=\"Jernihin Presentation Video\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/77439245/206904492-d995616d-9741-4aca-8582-e9a091bd7c6c.png\" alt=\"Jernihin Presentation Video\" style=\"width: 500px\"\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\n\n## Demo Video\n\n\u003ca href=\"https://youtu.be/1wf-pGftGB0\" title=\"Jernihin Demo Video\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/77439245/206904471-bce8aaaa-91f4-43a4-8030-f4cb558d7e41.png\" alt=\"Jernihin Demo Video\" style=\"width: 500px\"\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\n\n## Developers\n\nMerdeka Belajar Kampus Merdeka (MBKM) 2022  \nSIB Dicoding Cycle 3  \n**C22-078 Capstone Team**  \n\n- **M319X0851** - \u003ca href=\"https://github.com/aNdr3W03\" title=\"GitHub Andrew Benedictus Jamesie\" target=\"_blank\"\u003eAndrew Benedictus Jamesie\u003c/a\u003e\n- **M319Y0854** - \u003ca href=\"https://github.com/chelizaaa\" title=\"GitHub Cheliza Sriayu Simarsoit\" target=\"_blank\"\u003eCheliza Sriayu Simarsoit\u003c/a\u003e\n- **M248X0512** - \u003ca href=\"https://github.com/gilangaleyusta\" title=\"GitHub A. Gilang Aleyusta Savada\" target=\"_blank\"\u003eA. Gilang Aleyusta Savada\u003c/a\u003e\n- **M182Y0310** - \u003ca href=\"https://github.com/adstika20\" title=\"GitHub Ades Tikaningsih\" target=\"_blank\"\u003eAdes Tikaningsih\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandr3w03%2Fjernihin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandr3w03%2Fjernihin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandr3w03%2Fjernihin/lists"}