Inspiration
In today’s world, height means so much. It can affect your career, social life, and ability to complete tasks. Everyone wants to know how tall they will be in the future, sometimes to brag about it to their friends, but it is useful in the medical field to make sure the person is treated if they do have some illness. Height is based on a number of factors, so it can be extremely hard to predict just based on the height of the parents. Most doctors only use a simple formula that has a huge plus or minus. This gave us the idea to create an applet that allows for a close estimate of a child’s height based on hundreds of data points from other people.
What it does
Reaching New Heights is a Java GUI and Python program that allows users to find their future height. It starts by allowing the user to input their father’s height, mother’s height, and gender. It then, using a Flask API, runs a machine learning Python code with the values, and uses a complex regression model to find the predicted height of the child. The data that we used to find the regression is Galton’s height data, which had parent heights, genders of children, and children’s height for 205 families and 898 unique kids. Once the Python file is able to estimate the height, the Java GUI is able to display it to the user in an organized way.
How we built it
Our project is in the form of an applet, which uses components of Java GUI’s. When the “calculate” button is pressed, a series of actions is set off, including having the Flask API get executed. The output of the Python regression model is sent back to the Java GUI which displays it at the top of the applet.v
Challenges we ran into
In our build, we faced a multitude of problems, which we overcame one by one through persistence, perseverance, and as always, a bit of luck. At first, after we had come up with the idea of making a system that can predict someone’s height, we had a hard time finding data that we could use to train our system. After spending extensive time researching for datasets on Google and other websites such as Kaggle, we were able to find a dataset that we were happy with and could use to train our modeling system. After building the modeling system in Python, we decided to make a GUI using Java Swing. However, an immense challenge we ran into was incorporating the Python modeling system into the GUI we made in Java. We attempted to solve this problem in many ways. At first, we tried to use Java built-in features such as Jython and Jpy. However, we ran into compiler issues with these. Afterward, we attempted to call the command line from Java, and run the Python file from the command line. but we were unable to do this because the IDE we were using was unable to open the terminal. After trying these 2 methods, we began creating a Flask API, which would run the Python file. This worked, and the next steps we took were to put our Flask API onto a Github repository, so anyone that ran our program would be able to do the modeling and see the result.
Accomplishments that we're proud of
Throughout the duration of this project, we are most proud of coming up with an idea, code a solution, learn new methods we have never seen before, all while working together as a strong group. We adapted to every challenge we faced, continuously tried another approach, even though some problems lasted us for hours.
What we learned
At the end of the project, we all learned that you cannot call prompts from Java on the terminal on an online IDE. This was one of many along with learning how to create a regression model to analyze data. We also now have a thorough understanding of how the different layouts work in Java Swing and how to add images and format the resulting panel. One of the skills that we had no idea how to do beforehand was creating a Flask API, which we were able to understand and implement by reading about it.
What's next for Our Project
Our main goal is to expand the platforms that Reaching New Heights operates on, as well as increasing its accessibility. We want to, in the future, incorporate it into a website so that the user won’t have to download Java code when they want to use the program. We want to make frequent changes to our website, adding new projects that require predicting a result. One idea that can possibly be next is using high school student's GPA and SAT scores to result in which college has the best chance of giving them admission. In addition, we can increase our modeling system’s efficiency and accuracy by training it with more data that we find online. In doing so, when people run our program, they can get more accurate results. Additionally, another way to improve the accuracy of our results is to add more factors. Height is affected by many things, genetic and environmental. Thus, by adding in more factors such as grandparents' heights and location, we can make our system more accurate.

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