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 convener 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.
AssignPy GitHub Repository
AssignPy YouTube Demo Video
Short Description
AssignPy is a grant Management System that is based on Levenshtein Distance Algorithm.
How to Use The Application
| Home Page | Registration Page | Login 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 between Zero to 50)
And Keywords are for 30 pts(Similarly,The result can take any value between Zero 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 as 5 edits. In simple words if can change word 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 rubriks 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)
Built With
- csv
- jellyfish
- python
- regex
- tkinter



Log in or sign up for Devpost to join the conversation.