DPS909 Release 01: First Open Source Project

Our first open source project was separated into two parts; the first being to create a web service in any language that could find phone numbers either from a string entered in a URL, or by sending in a file containing phone numbers. The phone numbers found would then be returned in JSON format back to the user. These following questions/answers will go into more detail:

1. What did you build? Discuss your web service and include links so people can find it.

I chose to program my web service using Java. The platform I chose was Eclipse IDE, Oxygen 2 version to be more precise. It was my first time making a web service in Java so I had to do a bit of research to make sure I knew what I was doing. The web service was tested from Eclipse since the IDE provides an internal web browser viewer from which I can debug and view the site. The server was downloaded via external dependencies and set up on my laptop, so the website will not run unless my laptop and Eclipse is opened, as well as having started the server. Luckily, as part of the second part of this assignment's release, my web service was put on Heroku, so it can run without my laptop needing to be on. Here is the link: https://peaceful-fortress-77561.herokuapp.com/JavaServer01?9059059005

2. What was your process for this assignment?

The preparation for the assignment was important. I researched what needed to be done to install a server and essentially build the web service, and I found out about Apache Tomcat servers working well with Eclipse IDE & Java programming in particular. I followed a few tutorials before I found the Apache Tomcat but none of the other ones worked. When I finally found the one that worked, I started working from there and testing got a lot easier, especially because of Eclipse's internal web browser for testing. From there, I figured out which libraries I would need for the project's specs, and I was able to build the application to build those specs.

3. Which language, dependencies, and tools did you use? Why did you choose them?

The language I chose was Java, dependencies included google's libphonenumber library (Java version), mockito libraries for testing, JUnit libraries for testing, Hamcrest Core library, Spring Mock and Spring Core for testing, Commons Logging and Commons Collections libraries for added functionality, Log4j and LogKit libraries, Avalon Framework library, Servlet API library, Jackson Core, Jackson Databind and Jackson Annotations libraries, JSON library, and finally, Javax Servlet API library. All of these libraries were included to have the proper functionality which would allow me to meet the required specs.

4. What did you find challenging about your work?

Setting up the environment was by far the most difficult part. Since I was using Google's libphonenumber library to retrieve the numbers, the actual functionality of the code was very easy to deal with. Having the server running and the messages being sent back and forth like they were supposed to is what demanded a lot of time for this project.


5. Compare the experience of being a maintainer to that of contributing to someone else's project. Which did you enjoy more? Why?

I enjoyed being able to contribute to other people's projects, since it forced me to look into new things I hadn't done before and try to fix them. Since Open Source is a lot about being thrown out of your comfort zone, I think this aspect of the project did that for me, which was the most worthwhile element so far.

6. What did you learn as you did this work?

I learned to get better at using GitHub and applying version control. I understand the process a lot better than I did in the past, even though there is still a lot to learn. In terms of programming, I learned how important documentation is in these kinds of projects as that's what really helped me run other people's projects correctly, which I find saved a lot of time.

7. What do you still want to learn more about in subsequent releases?

I find that anything that showcases the best practices in Open Source Development would be worth learning about from now on. Apart from that, I am a solid believer that practice makes perfect, so anything that is similar yet different from this project would contribute to make us better at Open Source Development.

Comments

Popular posts from this blog

DPS909 Release 02: My First Open Source Contribution Part 1

Fixing a Bug, Adding Tests

Running Test Suites and playing with ECMA Standards