What it does
This program calculates the optimal distribution of teams across floors based on the interaction between multiple parameters including:
Challenge Parameters
Team size Floor capacity Team preference Team tolerance Team "no ways"
User-Controlled Parameters
We implemented interactivity through three sliders that allow user's to adjust the weight of each of the team's desires, and therefore, customize their output to their company's needs.
How it works
Once the analysis is started, all possible buildings with all possible floor combinations are calculated. Floors with <25% capacity or >100% capacity were culled. This data is saved, and the user-provided parameters select the optimal floor without needing to recalculate most information.
The user decides how much to weigh team-interaction factors.
Inspiration
We were inspired by nostalgic early 2000's website design and minimalism.
How we built it
HTML, CSS, and JavaScript powers the frontend, with JavaScript also being used for all calculations. To maintain speed, no JavaScript libraries are used.
Challenges we ran into
While we were testing our algorithms, we mislabeled the arrays that contributed to inter-team like/dislike due to an indexing error. This error was easy to fix but hard to detect.
An important challenge we faced was the large amount of possible team combinations per floor. To solve this we systematically culled impossible or unoptimal combinations in order to cut down on the number of algorithm iterations.
Accomplishments that we're proud of
We had to do a lot of troubleshooting to fine-tune our algorithm and avoid errors. In the end, we are proud of our solution and our teamwork throughout the project. Each member learned a lot which was great too.
What we learned
We gained a mildly subterranean level knowdledge of recursion. All of our team gained experience and knowledge of JavaScript, HTML, and CSS as well as how to work on collaborate programming projects.
What's next for CBRE Office Space Supreme
We planned to use react, and in the future we would like to learn that technology. Furthermore, we would alter all our algorithms to fit either a recursive or iterative approach instead of using a mix, which would make the code easier to read. Currently the program uses a mix of both depending on application. Lastly, we were very close to implementing user modification of the team data (which teams they get along with etc.)
Log in or sign up for Devpost to join the conversation.