The past two weeks I’ve been completing my final group engineering project at Makers. We built a web app called betwixt, which allows users to find the midpoint between their location and their friends location, then shows a selection of restaurants, bars or cafes in the area around the midpoint. Here’s the GitHub repo, a pre-recorded demo and the running application (up as of this writing).

We decided to use the JavaScript/React framework Next.js to build it. This decision was essentially based on our wanting to learn React, and Next.js being a popular, well-known framework for creating React applications. Later in the week, during discussions with a coach, we learned that this might not have been the best choice to build our app.

In hindsight, it could have been simpler to use create-react-app (CRA) to build our React app, then serve the resulting HTML and JavaScript files from a simple Express web server (our app is all client-side; the Google Maps API is basically our back-end, so we wouldn’t have had to write much back-end code except for serving the HTML and JavaScript files). This would also have given us some more experience with Express and Node.js. But since we were halfway through the project, we persevered with Next.js.

None of us had used Next.js before, so we took the first couple of days to go through the official Next.js tutorial. On top of this, we needed to learn to use the Google Maps API and a React library for it called @react-google-maps/api.

Learning all of this and trying to build an app in two weeks was very difficult. However, after working through the evening on Wednesday, we had a functioning MVP. The app could now take two locations and find an approximate midpoint. This boosted team morale and gave us something to increment and improve upon.

At the start of our second week, I was feeling very unhappy about the project. I had been over-working and putting too much pressure on myself. One of my peer group members, who was also in my group for this project, helped me through this. I stopped trying to do everything myself and instead began helping others to contribute more.

At the projects fair at the end of the week, people really liked our app. Our presentation also went well. I think we made the right choice by going with React, as we learned a lot and our product looked like a modern, dynamic web app.