Skip to content

madhuv-sharma/AssignPy

Repository files navigation

AssignPy


Kurius SE Hackathon Project - Brain Canada Foundation

Assignment Made Easy ;)


Brain Canada is a national non-profit organization that plays a unique and invaluable role as the national convenor of those who support and advance brain research. Our vision is to understand the brain in health and illness, to improve lives and achieve societal impact. We achieve our vision by increasing the scale and scope of funding to accelerate the pace of Canadian brain research, creating a collective commitment to brain research across the public, private and voluntary sectors, and delivering transformative, original and outstanding research programs.

The Problem Statement:

Brain Canada receives hundreds of applications in various types and areas of brain research. Each application needs to be randomly assigned to three expert reviewers. Assignment rules: application type, area of research or keywords for each applicant must match or closely match those of reviewers (excluding those with conflict of interest). Currently, Brain Canada uses as Excel model to match each applicant to a reviewer. This is quite tedious and can generate erroneous results that need to be manually corrected - potentially increases assignment bias. The development of a program/automation process to improve the randomization process and generate a march percentage would be very helpful for Brain Canada's research programs. It should include some level of flexibility to add rules for specific programs (e.g., the use of keywords or including the level of expertise as criteria). It should also allow CSV or Excel data importing from both the applicant forms and the reviewer forms.

Short Description

AssignPy is a grant Management System that is based on Levenshtein Distance Algorithm.


How to Use The Application

Home PageRegistration PageLogin Page
This is the very first page that you encounter as soon as you run the Python File. This is the root page of the program and therefore one shouldn't close this window. Using this page you can register a new user. After you have entered your details, a .txt file is created in the folder with all the credentials.A function now checks the credentials against the input provided by the user and gives an output accordingly.

Challenges We Encountered

- Incorporating the whole code in the Tkinter GUI

- Coming up with an optimal scoring system

Type of Research is for 20 pts (if primary matches then 20 pts and for secondary 10 otherwise Zero)

On the other hand, Research Area for 50 pts (The result can take any value from 0 to 50)

And Keywords are for 30 pts(Similarly, the result can take any value from 0 to 30 )


Our Proud Accomplishment - Scoring Mechanism

For calculating the percentage we are using Levenshtein Distance Algorithm. In information theory, linguistics, and computer science, the Levenshtein distance is a string metric for measuring the difference between two sequences. Informally, the Levenshtein distance between two words is the minimum number of single-character edits (insertions, deletions or substitutions) required to change one word into the other. We are using a threshold value of 5 edits. In simple words, if you can do A→B in less than or equal to five “edits” (which can be replacement, addition or deletion) then they are essentially the same.


What We've Learned

This hackathon introduced our team to the nuances of designing a complex Grant Management Systems. The excitement of brainstorming initial ideas, the challenge of implementing these ideas in practice, and the rewarding feeling when the project comes together at the end. We had fun exploring algorithms, like the Levenshtein Distance, and the 'art' of writing an optimised code. Furthermore, we feel honored that we got an opportunity to work for an NGO like the Brain Canada.


Future Project Extension

  • Ability to enter a rubric from the GUI itself
  • Making the GUI easier to navigate
  • Integrating MySQL to have a database with all the information (Students, Reviewers, Passwords etc.)
  • Improvising the Match Percentage Algorithm by Scraping Websites and Training a model based on it.

Built with

  • Python
  • Tkinter (Python Module)

About

Kurius SE Hackathon Project solving Brain Canada's Challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages