For a school assignment we were tasked with creating a software project project using primarily C++. We wanted to alleviate the hassle that comes with find someone to sublet your room, or finding a place to stay in a new city. Based on the personal experience of the team members, we knew that plenty of students go on exchange or get jobs in new places, and that plenty of these people also end up with a housing situation that is less than ideal. Clearly the traditional means of finding a place to stay (Kijiji, Facebook groups, university housing websites) weren't getting the job done, so we decided to create a housing specific classified website to improved on the flaws of the existing services.

What it does

Our service allows students to create an account using their email, and personal information. Users can create listings to advertise vacant rooms. Each listing must contain information for a the predefined fields so that listings can be compared on a consistent basis. Users can use our search functionality to find listings based on the predefined fields, to ensure that the listings they browse match their preference. Once a user has found a listing that they like, they can use our messaging service to contact the seller.

How we built it

Since the assignment required us to use primarily C++ for the project, we needed to get a bit inventive in order to build a web app. We used Google's V8 library to compile our native C++ business logic into Node modules that could be used by our Node.js server. The front was built with bootstrap, and handlebars.js in order to dynamically generate html based on the users' search results. For the back end we used a SQLite database.

Challenges we ran into

Our biggest challenge was finding an effective way to build a web based application using C++. We experimented with several C++ web frameworks like Wt and TreeFrog, but ultimately felt that these tools would be very difficult to use. Instead we opted to build our own Node modules with C++.

What we learned

We learned that C++ really is not suited for web apps. However, the ability to build C++ into Node modules is a great way to incorporate the efficiency of C++ into some aspects of a web app, such as search algorithms.

Additionally we all got the experience of integrating the front and back end, and deploying an application.

What's next for HouseMatch

Now that the assignment is finished we would like to clean up our code, removing some of the unnecessary C++ that would be better off written in javascript. We would also like to improve our search Algorithm to be more robust.

Share this project: