{"id":22776669,"url":"https://github.com/maacpiash/konschool","last_synced_at":"2026-03-01T04:01:47.315Z","repository":{"id":97603087,"uuid":"134411686","full_name":"maacpiash/KonSchool","owner":"maacpiash","description":"🏫 🇧🇩 Fuzzy-AHP-based recommendation system for secondary schools in Bangladesh","archived":false,"fork":false,"pushed_at":"2025-03-13T12:31:55.000Z","size":13682,"stargazers_count":18,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T12:14:21.712Z","etag":null,"topics":["ahp","asp-net-core","bangladesh","dataset","fuzzy-logic","mongodb","mongodb-atlas","pairwise-comparison","rest-api","school"],"latest_commit_sha":null,"homepage":"https://konschool.azurewebsites.net","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maacpiash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"patreon":"maacpiash","github":"maacpiash"}},"created_at":"2018-05-22T12:26:50.000Z","updated_at":"2023-08-29T09:22:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"8638bbd0-2ff0-43d3-9dca-f7d42e5766b5","html_url":"https://github.com/maacpiash/KonSchool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maacpiash%2FKonSchool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maacpiash%2FKonSchool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maacpiash%2FKonSchool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maacpiash%2FKonSchool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maacpiash","download_url":"https://codeload.github.com/maacpiash/KonSchool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249067779,"owners_count":21207396,"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","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":["ahp","asp-net-core","bangladesh","dataset","fuzzy-logic","mongodb","mongodb-atlas","pairwise-comparison","rest-api","school"],"created_at":"2024-12-11T19:10:29.536Z","updated_at":"2026-03-01T04:01:47.238Z","avatar_url":"https://github.com/maacpiash.png","language":"C#","funding_links":["https://patreon.com/maacpiash","https://github.com/sponsors/maacpiash"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eKon School?\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eFuzzy-AHP-based recommendation system for secondary schools in Bangladesh 🏫 🇧🇩\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://konschool.azurewebsites.net\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/badge/Deployed%20on-Azure-0089D6?logo=microsoft-azure\u0026style=flat-square\"\n      alt=\"Azure\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://konschool.herokuapp.com\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/badge/Deployed%20on-Heroku-430098?logo=heroku\u0026style=flat-square\"\n      alt=\"Heroku\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/maacpiash/konschool\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/docker/image-size/maacpiash/konschool?logo=docker\u0026style=flat-square\"\n      alt=\"Docker image size\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://dotnet.microsoft.com/download/dotnet-core/3.1\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/badge/Core-v3.1%20(LTS)-5C2D91?logo=.net\u0026style=flat-square\"\n      alt=\".NET Core SDK/runtime version\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://libraries.io/github/maacpiash/KonSchool#dependencies\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/librariesio/github/maacpiash/KonSchool?logo=nuget\u0026style=flat-square\"\n      alt=\"Libraries.io dependency status for GitHub repo\"\n    \u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://ci.appveyor.com/project/maacpiash/konschool\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/appveyor/build/maacpiash/KonSchool?label=Windows\u0026logo=appveyor\u0026style=flat-square\"\n      alt=\"AppVeyor\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://travis-ci.org/github/maacpiash/KonSchool\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/travis/maacpiash/konschool?label=Unix-like\u0026logo=travis\u0026style=flat-square\"\n      alt=\"Travis (.org)\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/maacpiash/KonSchool\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/codecov/c/gh/maacpiash/KonSchool.svg?logo=codecov\u0026style=flat-square\"\n      alt=\"Codecov\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.codefactor.io/repository/github/maacpiash/konschool\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/codefactor/grade/github/maacpiash/KonSchool?logo=codefactor\u0026style=flat-square\"\n      alt=\"CodeFactor Grade\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://app.codacy.com/manual/maacpiash/KonSchool/dashboard\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/codacy/grade/afb9d85a377040b2971d2787c973ef25?logo=codacy\u0026style=flat-square\"\n      alt=\"Codacy grade\"\n    \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/maacpiash/KonSchool\" target=\"_blank\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/codeclimate/maintainability-percentage/maacpiash/KonSchool?logo=code-climate\u0026style=flat-square\"\n      alt=\"Code Climate maintainability\"\n    \u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n*Kon School?* (Bengali: *কোন স্কুল?*, meaning *\"Which school?\"*) is a recommendation system that gives secondary schools personalized compatibility scores based on user's preferences.\n\n\u003cdiv id=\"toc\"\u003e\n\n- [Process](#Process)\n  - [Criteria of schools](#Criteria-of-schools)\n  - [Inputs](#Inputs)\n  - [Calculation](#Calculation)\n  - [Outputs](#Outputs)\n- [Data on Schools](#Data-on-schools)\n- [Running the web app locally](#Running-the-web-app-locally)\n  - [Compilation of source](#Compilation-of-source)\n  - [Docker image](#Docker-image)\n- [REST API](#REST-API)\n  - [Fuzzy AHP endpoint, `/api/fahp`](#Fuzzy-AHP-endpoint-apifahp)\n  - [School data endpoint, `/api/schools`](#School-data-endpoint-apischools)\n- [Acknowledgement](#Acknowledgement)\n- [Contributing](#Contributing)\n\n\u003c/div\u003e\n\n## Process\n\n### Criteria of Schools\n\n- Teacher-student ratio\n- Male-female ratio (among students)\n- Socio-economic status (of guardians of students)\n- Distance of school from home\n- Age of school (based on year of establishment)\n- Difference between the age of the child and the average age of the students in the intended class (grade)\n\n### Inputs\n\n- Crisp inputs: student data (age, sex, class (grade), location, guardian's profession)\n- Fuzzy inputs: pairwise comparison between criteria of schools: 5 comparisons for 6 criteria\n\n### Calculation\n\nAfter getting the inputs, the system\n\n- uses these linguitic values to run Fuzzy Analytic Hierarchy Process (Fuzzy AHP) to evaluate weights of each criterion\n- takes data from a dataset on secondary schools of Bangladesh and calculates comparative values for each criterion\n- gives each school a score, which is a sum of weighted criteria-values.\n\nFor more details on calculation of weights from fuzzy inputs, please check the [`docs`](/docs).\n\n### Outputs\n\n- Weights of 6 criteria\n- Compatibility scores for all eligible schools\n\n**[⬆ back to toc](#toc)**\n\n## Data on schools\n\nThe dataset on schools that is used for this system was compiled from several datasets that were originally collected from [Bangladesh Open Data](http://data.gov.bd/dataset). It contains the data on 14,274 schools across the country. The SQLite database can be found [here](https://drive.google.com/open?id=1_MZnVRHl0ZLHEMab7lBhpUvuS3yaLoPZ). You can also use API endpoints to access the data (view the [REST API section](#REST-API) below for further instructions).\n\nThe collection of data and its preprocessing is discussed in the [`docs`](./docs).\n\n**[⬆ back to toc](#toc)**\n\n## Running the web app locally\n\nThere are two ways.\n\n### Compilation of source\n\nIf you have .NET Core SDK (v3.1) installed, you can run the application directly from the source:\n\n```bash\ngit clone https://github.com/maacpiash/KonSchool\ndotnet run --project KonSchool/src/KonSchool.csproj\n```\n\nNow, navigate to either http://localhost:5000 or https://localhost:5001.\n\nI recommend this method over the next one. You can download .NET Core SDK from [Microsoft](https://dotnet.microsoft.com/download/dotnet-core/3.1).\n\n### Docker image\n\nIf you do not have Docker installed, please follow the official [documentation](https://docs.docker.com/install/).\n\nFor the first time, you may run the following command, which would download the docker image from Docker Hub, create a container from the image and start the container:\n\n```bash\ndocker run -it -p 5000:80 --name konschool maacpiash/konschool\n```\n\nNow the application can be accessed via http://localhost:5000. Omit the `-it` part from the command if you want to keep it running in the background.\n\nFrom then on, every time you need to use the app, run the following command to start the container that was built the first time:\n\n```bash\ndocker container start -i konschool\n```\n\nThe app can now be accessed from http://localhost:5000. Omit the `-i` part from the command if you want to keep it running in the background.\n\nTo stop the container running in the foreground, press `Ctrl` + `C`. If you started the container in the background (as a Windows service or a daemon on Unix/Linux), run the following command to stop the container:\n\n```bash\ndocker container stop konschool\n```\n\n**[⬆ back to toc](#toc)**\n\n## REST API\n\nIn addition to the server-side-rendered pages, there are two RESTful API endpoints:\n\n### Fuzzy AHP endpoint, `/api/fahp`\n\nThis endpoint can be used to get results of 6 criteria by providing 5 integers (between -9 and 9, inclusive).\n\n**Examples:**\n\n- [`/api/fahp/0,0,0,0,0`](https://konschool.azurewebsites.net/api/fahp/0,0,0,0,0) would return equal weights for 6 criteria (`0.166...`).\n- [`/api/fahp/1,2,3,4,5`](https://konschool.azurewebsites.net/api/fahp/1,2,3,4,5) would return 6 weights that are exponentially increasing.\n- [`/api/fahp/-5,-4,-3,-2,-1`](https://konschool.azurewebsites.net/api/fahp/-5,-4,-3,-2,-1) would return 6 weights that are exponentially decreasing.\n\nFor detailed information regarding the integer values, please check the [`docs`](./docs).\n\n### School data endpoint, `/api/schools`\n\nThis endpoint can be used to access data of schools. Schools can be queried about by EIIN, divisions or districts.\n\n**Examples:**\n\n- [`/api/schools`](https://konschool.azurewebsites.net/api/schools) would return the data of all the schools.\n- [`/api/schools/div/RAJSHAHI`](https://konschool.azurewebsites.net/api/schools/div/RAJSHAHI) would return the data of all the schools inside the division of Rajshahi.\n- [`/api/schools/dis/BOGRA`](https://konschool.azurewebsites.net/api/schools/dis/BOGRA) would return the data of all the schools inside the district of Bogra.\n- [`/api/schools/100005`](https://konschool.azurewebsites.net/api/schools/100005) would return the data of the school with EIIN 100005.\n\nAll these endpoints return response in standard JSON format.\n\n**[⬆ back to toc](#toc)**\n\n## Acknowledgement\n\nI am very grateful to Dr. Rashedur M. Rahman ([NSU ECE](http://ece.northsouth.edu/people/rashedur-rahman/), [Google Scholar](https://scholar.google.ca/citations?user=L9S6rlUAAAAJ)), Professor at Department of Electrical and Computer Engineering, North South University; and our honorable instructor of the Fuzzy Logic course (CSE470). He mentored my group on this project and made sure our research work got [published](https://link.springer.com/chapter/10.1007/978-3-319-98678-4_29) in Springer and presented at a prestigeous [conference](https://missi.pwr.edu.pl/2018/).\n\nI would also like to thank my groupmates — N.S.M. Rezaur Rahman, for the development of the mathematical model; and [Abdullah-Al Nahian Siraj](https://github.com/Nahian-Siraj), for his cooperation with finding related research paper.\n\n**[⬆ back to toc](#toc)**\n\n## Contributing\n\nThis project is under [GNU Affero General Public License v3](./LICENSE). Please read the [contribution guideline](./docs/CONTRIBUTING.md) in advance.\n\n[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg?style=flat-square)](https://saythanks.io/to/maacpiash)\n[![Twitter URL](https://img.shields.io/twitter/url/https/github.com/maacpiash/KonSchool?style=social)](https://twitter.com/intent/tweet?url=https%3A//konschool.azurewebsites.net)\n\n**[⬆ back to toc](#toc)**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaacpiash%2Fkonschool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaacpiash%2Fkonschool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaacpiash%2Fkonschool/lists"}