Code Walkthrough - TripSage/TeamFormationAssistant GitHub Wiki

File : App.js

App.js acts as a middleware for this project. It connects the server and the client. It navigates to different files such as Signup.js, ProjectDetails.js whenever required.

File : Signup.js

This file is for people who want to register regarding their work availability. It has several features:

Name - Records the name of the person.
Date of Birth - Records Data of birth of the person and makes sure he/she is at least 18 years old.
Programming language - Records their most proficient programming language.
Hourly rate - Records each individuals personal choice of hourly rate that they think they deserve.
Role - There are several roles that a software engineer might be proficient in or interest in. We have provided these choices as a dropdown where they can select their field of interest.
Experience - Records number of years of experience of the individual.
Skill Score - Records the indiviudal's score that they achieved in the Skill Assessment test.
Available Hours - Records number of hours he/she is available for the week.

File : ProjectDetails.js

This file is for managers/employers who are looking for employees that can be a good fit to the project. It has several features:

Project Name - Records the name of the project.
End Date - Records the expected end date of the project.
Team size - Records the required size of the team.
Budget - Records budget(in dollars) that is assigned to the project.
Tools - Records the various tools that the employees are going to work on for this project.
Priority - Records the priority of the project as per Manager on a scale of 1-4.
Now in the same file, we have several features that an employers is looking for in the employees. They are:

Preferred Programming language - Records the requirement of the manager in terms of what he is looking for in individual's programming language preference.
Minimum skill assessment score - Records the requirement of the manager in terms of what he is looking for in individual's Skill Assessment score.
Role - Records the requirement of the manager in terms of what he is looking for in individual's Preferred role.
Available hours - Records the requirement of the manager in terms of what he is looking for in an individual's availability as a unit of hours.
There are fields that records the weights for different attributes of a employee.
---->> a)Skill Weight
---->> b)Experience Weight
---->> c)Budget Weight
---->> d)Language Weight
---->> e)hours Weight
Employers must make sure that these weights sum up to 100.
The page has default to add 1 member, but if the employers need more people on the project they can select the option "Add new member" and fill the above details.

File : Home.js

This is the home page of the application where we can see the Team member and their assigned project. This gives a fair idea on who are all currently working on a project and which project are they working on.

File : TeamAssigner.py

This file is the core of the project as it is responsible for assigning team members to a project in a novel way. This file is run on a regular basis where it fetches all the projects that need team member assignments and all the team members that are available for work. After fetching the team members a score is calculated for each individual based on the requirements and weights for that specific project that are provided by the employer when they were entering the project details and requirements. Once each individual's score is calculated, they are sorted based on the requirements in hand and top members are assigned to the project.

⚠️ **GitHub.com Fallback** ⚠️