Online gaming has become incredibly prevalent in the modern age. In a time where we can span the entire world over the internet, seemingly minuscule hiccups in the network can have intense effects once your connection has been routed. More experienced personal computer users have always had a way to trace their connection route to a server and ping it, but the ability to trace your connection to a video game server is limited by the user's skill level with a computer and their knowledge of the server's location and address.
What it does
This helpful tool eliminates those two previous problems completely. Not only are all of the servers and data centers for the most popular games included in our application, but pinging those servers and tracing your route is literally as simple as hitting a button. The application also uses geofences to aggregate user data and protect anonymity.
How we built it
We began with brainstorming the potential features of the application and what was feasible to do right now. We then split up the tasks based on people's skills or what they hoped to learn during this event. We created a rough timeline that we constantly updated with tasks for each person and when they could get some sleep (if any). Even though each person had their own task, if one got stuck, everyone was happy to help them with that part. In the end, it was a more standard flow of some people working back-end with Microsoft SSQL and Golang while others worked on front-end with Electron, Bulma, and other needed functionality.
Challenges we ran into
The road to completing this project was incredibly bumpy. There were several issues that almost stopped us in our tracks completely, but we managed to persevere.
It was initially our plan to complete this project as a web-based application, but we found out that browser-based applications do not have the permissions to ping a server. Thankfully, we found out that we could port most of our work to Electron and take the power away from the browser.
For a long time, we had no way to show our data that we had collected. Even though we knew a web app couldn't do what we wanted, we still had to look for APIs that could perform the functionality we were looking for. Once we found the APIs, it was simply a matter of calling the APIs, getting the data and passing on the pieces we wanted into our database.
Higher Level Analysis
The basic level of the application doesn't provide much in terms of a long-term project nor seeming too interesting so we were stuck thinking about what more can we do with this application that can be beneficial. This led us to adding map functionality to visually see the location of the game servers and other interaction. It also provides us with future potential features.
Accomplishments that we're proud of
We finished a working version of the app! We were able to split up the work such that each person was able to work on their part and if they got stuck, we could still help each other out. This helped in speeding along some processes and each person was able to learn something new in order to complete the project or at least become more familiar with technology we had merely heard of before.
What we learned
As previously stated, each member was able to learn about different parts of the project in order to make a whole. Some members focused on the overall design of the interface and the various libraries available to improve that such as Bulma and Electron. For others, they learned more of the back-end and worked with Microsoft SSQL or Bing map API for some of the above mentioned functionality. Lastly, each member learned more about the vast amount of resources out there and various functionalities.
What's next for Nanalysis
One thing we could not end up implementing fully was the user profile. A user can register and log in as it is, but there is no page for showing your route history or a graph of your pings for a specific game. Additionally, currently the application stores the user's ISP but we did not reach the planned functionality with it. In the future, we hope to be able to compare different ISPs in the same area and how they compare for particular game servers.