Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

🏫 🇧🇩 Fuzzy-AHP-based recommendation system for secondary schools in Bangladesh

License

NotificationsYou must be signed in to change notification settings

maacpiash/KonSchool

Repository files navigation

Fuzzy-AHP-based recommendation system for secondary schools in Bangladesh 🏫 🇧🇩

AzureHerokuDocker image size.NET Core SDK/runtime versionLibraries.io dependency status for GitHub repo
AppVeyorTravis (.org)CodecovCodeFactor GradeCodacy gradeCode Climate maintainability

Kon School? (Bengali:কোন স্কুল?, meaning"Which school?") is a recommendation system that gives secondary schools personalized compatibility scores based on user's preferences.

Process

Criteria of Schools

  • Teacher-student ratio
  • Male-female ratio (among students)
  • Socio-economic status (of guardians of students)
  • Distance of school from home
  • Age of school (based on year of establishment)
  • Difference between the age of the child and the average age of the students in the intended class (grade)

Inputs

  • Crisp inputs: student data (age, sex, class (grade), location, guardian's profession)
  • Fuzzy inputs: pairwise comparison between criteria of schools: 5 comparisons for 6 criteria

Calculation

After getting the inputs, the system

  • uses these linguitic values to run Fuzzy Analytic Hierarchy Process (Fuzzy AHP) to evaluate weights of each criterion
  • takes data from a dataset on secondary schools of Bangladesh and calculates comparative values for each criterion
  • gives each school a score, which is a sum of weighted criteria-values.

For more details on calculation of weights from fuzzy inputs, please check thedocs.

Outputs

  • Weights of 6 criteria
  • Compatibility scores for all eligible schools

⬆ back to toc

Data on schools

The dataset on schools that is used for this system was compiled from several datasets that were originally collected fromBangladesh Open Data. It contains the data on 14,274 schools across the country. The SQLite database can be foundhere. You can also use API endpoints to access the data (view theREST API section below for further instructions).

The collection of data and its preprocessing is discussed in thedocs.

⬆ back to toc

Running the web app locally

There are two ways.

Compilation of source

If you have .NET Core SDK (v3.1) installed, you can run the application directly from the source:

git clone https://github.com/maacpiash/KonSchooldotnet run --project KonSchool/src/KonSchool.csproj

Now, navigate to eitherhttp://localhost:5000 orhttps://localhost:5001.

I recommend this method over the next one. You can download .NET Core SDK fromMicrosoft.

Docker image

If you do not have Docker installed, please follow the officialdocumentation.

For 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:

docker run -it -p 5000:80 --name konschool maacpiash/konschool

Now the application can be accessed viahttp://localhost:5000. Omit the-it part from the command if you want to keep it running in the background.

From then on, every time you need to use the app, run the following command to start the container that was built the first time:

docker container start -i konschool

The app can now be accessed fromhttp://localhost:5000. Omit the-i part from the command if you want to keep it running in the background.

To stop the container running in the foreground, pressCtrl +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:

docker container stop konschool

⬆ back to toc

REST API

In addition to the server-side-rendered pages, there are two RESTful API endpoints:

Fuzzy AHP endpoint,/api/fahp

This endpoint can be used to get results of 6 criteria by providing 5 integers (between -9 and 9, inclusive).

Examples:

For detailed information regarding the integer values, please check thedocs.

School data endpoint,/api/schools

This endpoint can be used to access data of schools. Schools can be queried about by EIIN, divisions or districts.

Examples:

All these endpoints return response in standard JSON format.

⬆ back to toc

Acknowledgement

I am very grateful to Dr. Rashedur M. Rahman (NSU ECE,Google Scholar), 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 gotpublished in Springer and presented at a prestigeousconference.

I would also like to thank my groupmates — N.S.M. Rezaur Rahman, for the development of the mathematical model; andAbdullah-Al Nahian Siraj, for his cooperation with finding related research paper.

⬆ back to toc

Contributing

This project is underGNU Affero General Public License v3. Please read thecontribution guideline in advance.

Say Thanks!Twitter URL

⬆ back to toc


[8]ページ先頭

©2009-2025 Movatter.jp