Part Two of the happy journey from RGSOC 2016 Team Rookies :D

posted by Tehetena & HyeSoo

Hey, we are Tehetena and HyeSoo from Team Rookies. We are happy to share part two of our Hoodie-Rails Girls Summer of Code (RGSoC) journey with you. (Read about the first part of our journey here).

Summary of our #2 our Hoodie-RGSoC journey

This is a visualization of the second part of our Hoodie-RGSoC journey. (Image: HyeSoo)

Positive Mindset & Taking Action

It has been a happy summer for us to grow and make progress in our Hoodie desktop application project. In August, we learned an invaluable mindset towards approaching problems and taking action. These days, our industry is flooded with a lot of new technologies and sometimes we feel overwhelmed by all of them. When we talked about this issues with our mentor Gregor Martynus and our coaches Omid Hezaveh and Esko Luontola, we learned how to have a positive attitude from them.

Instead of trying to cover all of the must-know new technologies, first we focus oh how we can move towards problems and then use the technologies as a tool to solve the problems. With this approach, we learned to have an open mind on challenges and using requisite technologies, rather than getting overwhelmed.

We also wondered how to write clean and efficient code, and how to broaden our horizons as developers. While talking with our mentor and coaches, we learned an important lesson. If we read lots of books and do not take action to make an application, we are likely to forget what we have read/studied in the future. But, if we practice what we read by getting our hands dirty, like making a simple application, we can grasp more concrete concepts through the experience. We are happy that we can approach current/future projects with a positive mindset and walk through them with a better direction.

2nd Monthly call with a mentor, coaches and a supervisor

Tehetena is in the center, from the bottom left are Esko, HyeSoo, Omid, Pilar and Gregor. (Image: Gregor)

Improvements and progress of Team Rookies’ project

We made lots of changes to the code we created in the first month. First, we learned lots of new concepts in JavaScript. We made 8 different kinds of EventHandler(s) to create/edit/update/cancel/delete/go back/start/stop applications. When we received our first response by clicking button with handlers, we were so happy!

We also learned how to debug using debugger, breakpoint and watch in the browser from Gregor. With these methods, we were able to observe the code flow and expressions and find where an error comes from. There are no perfect applications and most of the time, we try to improve our application by debugging, or adding more features. They became very useful tools for fixing problems in our project.

While implementing several features for our project, we used event.preventDefault to make our custom event. For sorting the apps in the app list, we used Array.prototype.filter() and for looking through the application, we used Array.prototype.forEach(), and Array.prototype.map().

We also learned two advanced JS concepts. The first was promise and after that, closure. Neither of us had ever worked with promises or closure before. It took us a while to grasp the concepts but thanks to Gregor’s helpful tutorials, we managed to work with promises to make our API work asynchronously, and closure to make our API safer from the scope of the anonymous function with a private variable.

Promise and Closure

This is an example of our API which with promise and closure. (Image: Tehetena)


When we reviewed the code feedback from Gregor, we learned how to clean up our current code and how to make a uniform format with a standard style throughout our code.

The other important thing we learned this month was working with APIs. In the beginning our application main.js file contained all its logics and methods in one long JavaScript file. Now we have split the code into several different tags, using Riot.js, so we can manage our code more efficiently. Gregor’s example code was very helpful to understand how to divide our application into several tags that will show and hide according to the routing.

Our plan for the last part of our journey

Next month is going to be the last journey of our RGSoC-Hoodie project. Time flies! We cannot believe we already passed through more than half of our journey! ;D We have grown day by day compared to the beginning of our journey.

In the beginning, we did not know how to make an event handler, API, or how to clean up our code, etc. We are now more confident that we can create interactive web pages with users and handle an API to talk with servers and retrieve data. In the monthly call, we planned our last month with Hoodie mentor Gregor, our coaches Omid and Esko, and our supervisor Pilar Huidobro. While we continue to teach ourselves Riot.js, Gregor will work on our guidance of how to use Riot.js to speed up our project. We will try to understand how Riot.js works for our project with coaches’ help until the next week.

After that, we will study Node.js to make our project interact with the real Hoodie server-side and wrap up our current code with the Electron framework. Finally our first prototype of the Hoodie Electron desktop application will be ready.

We also talked about what we can do after September in the August monthly call. If it is possible, we would like to continue work as contributors for the current project, so that if someone who is interested in this project has a question, we can help them, and if there are errors or bugs, we can solve any issues in the future.

We feel so thankful for our Hoodie mentor Gregor, Rails Girls Summer of Code, our coaches (Omid, Esko, Musse), and our supervisor Pilar who have helped us a lot and supported us through this time. Thanks to their great encouragement and help, we did not lose our confidence and were able to move forward day by day.

We are looking forward to the last part of our journey. Happy September and danke schön! ;D

For further information on the Hoodie desktop application, please visit team Rookies’ repository, or for information on the Rails Girls Summer of Code, visit railsgirlssummerofcode.org.

<3