4 minute read

Remote Resource System for a Digital Society

By Devaansh (Dev) Banga, 11S and Varit Asavathiratham, 11S

As programmers, we’re learning problem-solving and thinking outside the box. Our goal is to create useful systems that improve people’s lifestyles, automate tasks and ultimately make life easier for people. Though our earlier projects were smaller, they involved making repetitive and tedious tasks quick and facile. On the other hand, our latest project has been our most extensive and by far the most challenging of all.

This academic year, a new IB course was introduced called “Digital Society”. Students research current digital affairs and technologies, analyse their impact and study how new systems can affect the communities around them. They collect data, articles and media surrounding the topic, saving their findings for future use. The 3Cs help them organize their information, sorting by Context, Concept and Content. Our new software plays a major role in the organisation of the IB students’ studies by providing them with the tools necessary to log and save all the resources they gather into

the software’s database in an organised manner. This then allows them to search for these resources gathered by both themselves and by other participants in the course, which significantly speeds up the research process.

When we first received the project specifications, we learned that this project would require both Java GUI and a remote database. The GUI would allow users to have an easy-to-use interface. We were able to make the UI with relative ease, and linked all the functions into the program, creating a basic structure for our program. We hadn’t yet created a server and were storing all our test entries locally. We did, however, need to allow multiple users to connect to the same server, thereby pooling the data into one big database. This brought many challenges for us as we had never worked with remote servers before and had always used local databases in our programs.

As programmers though, we had to innovate and figure our way out of this. We first considered the possibility of using external hosting services but quickly learned that these could cost anywhere from $150 upwards to run as a subscription. Naturally, we weren’t sure if our project was developed enough in order to be able to ask for such commitment from our clients. This led us to develop our own remote server by using an old PC we found in school. As this PC was constantly running and connected to the internet, our remote server was created. We first tried connecting to each other’s computers by embedding our IP addresses into the software’s code to test the connections. We quickly realised that this was working smoothly and was relatively fast, as our devices were able to exchange data. In a perfect world, this would have solved our main remote server problem, but little did we know that a lot of other challenges would arise.

As we started trying out this method by connecting to a database on the PC, we faced a number of challenges. The biggest one of them was that the connection between our devices and the PC were being blocked by the school’s protective firewall. This created big problems for us as we had no way to unblock the connections ourselves. With a bit of help from Khun Ad, the ISIT System and Network Section Manager, we were able to unblock the specific port that the server ran on. We were having success in connecting our devices to the PC and we were able to receive and input data from the software. Our code injected SQL queries into the server in order to perform certain database actions. However, a new problem arose with the IP changing every time the server was turned off and then on again. Bangkok Patana’s network infrastructure is made in such a way that each device gets allocated a new IP address after a certain amount of time or if a device is turned off and on again. Our server kept getting a new IP address occasionally, which made it impossible for the software to be able to connect to the server because its embedded IP address would become invalid. After some more help from Khun Ad, we were able to assign the server a static IP address, which meant that the same IP address was always assigned to our particular server. Once this was complete, our server was finally ready to run and the software worked flawlessly with it. Using the Bangkok Patana VPN, which allows you to be allocated an IP address from the school when outside of campus, users are even able to connect to the server from anywhere in the world. This makes our server truly remote.

Packaging our application was also no simple task, as we had to make separate versions for Windows and Mac users. Our software was run through an embedded runnable environment, which made our code executable on all operating systems. A few issues popped up here and there, but after careful testing, we were able to package a final product which the students can run with the click of a button.

The software was released to the Digital Society class, with feedback being received almost instantly. A few bugs were found and resolved, and our work was done. In addition, we created a simple admin app for teachers to be able to manage resources and maintain data integrity. The software is now being used by the students and teachers of the class, and we hope that as expected, it will be a valuable resource for them in their coursework.

This article is from: