Construction is one of the largest growing industries in America- in fact, it is projected to grow to an upwards of 1.4 trillion USD by 2024. However, despite the rapid growth of this industry, the technology development in this industry is limited.
After interviewing civil engineering students, we realized the lack of fast and intuitive software that would allow construction managers to select plots of land to build on. Currently, construction managers often rely on excel in order to sift through potential lots to build on. This is time consuming as well as labor intensive.
After compiling a list of features that would be helpful to construction managers, we set out to build software that would empower them to expedite their work flow. We built features inside of Monday, a software platform that empowers teams to do more with their project management software. We implemented relevant features that would empower construction managers to lead better and more productive building tasks.
What it Does
Next Level is the new solution to streamlining a construction team. On Next Level, construction managers will be able to do these following tasks more effectively:
- Visualize 3-D CAD models
- Managers can upload CAD models and Monday will now visualize the models
- Instantly share models with the rest of the team
- Comment, annotate, and review models directly from your Monday board
- Predict the cost of building the project using various building materials
- Compare and contrast potential properties graphically
- Enter an address and have its property information instantly loaded into Monday
- Managers can visualize the price history of every piece of property they have on their board
- Easily track cost trends with a calendar view
- Detect anomalies detection for properties via an AI-based machine learning model
- Our detection algorithm visualizes properties relative to those around it, letting managers easily see where the most exceptional (or unusual) properties are
- Search and visualize properties with their projected Zillow.com pricing
- Show potential properties of interest on a map
- Instantly get Zillow.com pricing estimate just by adding a property on Monday
- Load Zillow search results directly into Monday — no data cleaning necessary
How We Built It
First, we identified the issues that construction managers would face on a day to day basis. We did some research on the internet, as well as interviewed some civil engineers. We were able to narrow down the scope of the problem, and we decided to focus on features that would address 2 major problems: (1) the lack of good property analysis and visualization tools for managers and their clients and (2) the lack of collaboration between architects, engineers, and workers on the field.
After identifying the crux of the problem, we brainstormed potential solutions to these problems, and we decided that we needed to first create a stream of data between a Monday dashboard and the Zillow API. This way, users would be able to add properties they were interested in, and save them to the dashboard and managers could view pricing and other property trends at a higher level. Additionally, this functionality gave us a core building block for another useful managerial tool: anomaly detection. This was done by reverse-engineering the Zillow API and routing the data through our custom-made server into a Monday board. Although Zillow is one of the most accurate services for all things property and real estate related, they do not have a public API. We were able to capture the search and property information requests coming through the site and spoof the browser on the backend to evade Zillow’s bot and script detection algorithms. Securing the property data, we were finally able to feed it into Monday.com, where a manager may request data through our app instead of typing it in manually.
Then, we used the internal GraphQL queries in order to integrate the potential property information into a boardview. We experimented with some data formats and liked the flexibility behind subitem and file uploads the most. They offered a better way to organize items than just through boards and groups. However, though the Monday API is powerful, it lacked these new features from the main site. We did what we did with the Zillow API; we took it into our own hands to extend the API for our own use. Subitem support came first. We added methods for editing, clearing, and querying — all taken from inspecting the traffic coming in and out of the site itself. Next was file uploading and downloading, which we were able to figure out thanks to some help from the Monday.com community and a fork of the GraphQL with upload support (although it was somewhat unorthodox in terms of file headers and the like). Strangely enough, this feature had trouble with CORS when downloading but not uploading. We fixed this problem by relaying the file through another server, which would serve it to our views with the proper CORS headers. With all these features added, we were finally able to begin the process of automated data entry. Using the queries above, this step didn’t take long at all, and we were soon able to load data straight from Zillow into Monday.
Now that we could take user input through Monday and stream relevant data back from Zillow, visualization came next. After all, what is data without presentation? A brand-new graph visualization dataview was created, where managers can view various types of information about their potential properties in an easy-to-understand manner. This view, powered by the Nivo JS React library, graphed pricing trends and frequency. Although Monday has built-in support for certain types of graphs as board views, we interviewed construction project managers to make sure our solution is tailor-made for their job. We made it easier to use yet more specific through smart graph splitting and filtering. With the ease in data entry and visualization, there is no need to analyze Excel sheets anymore!
Looking at work on the field, we found that one of the most substantial problems was with collaboration between working inside and outside the office. With how connected the internet has made us, we could use Monday to help solve this problem too. It seemed that the main disconnect came from the inability to take plans and feedback to share with the construction team in real-time. We created yet another board view with React. This one is focused on taking an engineer’s 3D STL file and sharing it with those less trained in 3D CAD software. Anyone on the team can upload a new file, which will use the upload functionality we described above. This file is saved per item to Monday, so anyone on the team will have access to the upload along with any revisions (also stored per item). To further streamline the process from the drawing (or CAD) board to hard-hat area, we gave the view annotation and revision support. These use subitem and file uploads through Monday respectively, which we had to reverse-engineer from above. Everyone on the team can now receive each other’s comments on the designs instantly, all in an easy-to-read format. Finally, we connected pricing data to this view to let those in the field (with access to real materials) give immediate feedback to managers about real costs, thus integrating Monday at every step from design draft to construction to the very last brick.
Challenges We Ran Into
A member of the team pushed all of her Node modules onto the GitHub, making the process of cloning the repository a very long and arduous one.
On a more serious note, we faced our first roadblock when we were trying to scope our project. We wanted to create software that would be simple and elegant, while addressing the crux of the problems that construction managers face. In order to do this, we spent many Zoom sessions interviewing our classmates and those in the industry to perfect each use case, as well as doing independent research.
Regarding technical issues, we also ran into some issues regarding the data API restrictions, so we had to find workaround solutions. For instance, querying Zillow too quickly would get the requests flagged as a bot. However, after analyzing the problem critically, we realized we could queue up user requests and split them up among different servers to pretend they were browsers. We also wanted to use a lot of Monday.com features which weren’t quite ready for the API. This did not stop us, and we spent a great deal of time squashing bugs with subitems, weirdly formatted GraphQL queries, CORS issues, and broken values.
Accomplishments we are proud of
We are most proud of creating relevant and easy to use software on a well known platform such as Monday. We believe that as software engineers, we should be empowering people to do more in the world, and we are proud to have overcome various technical and non technical difficulties in order to build a functional and relevant product. We are happy we were able to use our technical skills to solve real life problems!
Also busting open the Zillow and Monday APIs and reverse engineering their requests. That was very difficult and annoying.
What We Learned
- How to break down a large task into smaller components
- Time management
- Monday.com’s style guide
- Working with a team in a virtual environment
- Communicating effectively through a virtual platform
- More React 😍 and how to deal with CORS (again) 😡
- How to parse hundreds of data points and visualize them efficiently in the browser
- How absolutely not private Zillow’s API works
- Usefulness of Monday for remote work
- How the undocumented parts of Monday’s API works
What is next
We are hoping that our product can be deployed through Monday to help construction managers, architects, engineers, and workers around the world. If this deployment were to happen, we would work to make the anomaly detection more robust, as well as overcome the restrictions on the Zillow API. We would also streamline the flow of data from Zillow to Monday to the different parts of our app, all the while adding new and useful features like individual item graph views along the way. We are committed and excited to making a difference in the world through building software that empowers real life people around the world.