What I Did

This week, I spent most of my time preparing my internship draft report and updating all of my weekly logbooks in the myIntern system as my internship is approaching its final weeks.

For the Rank-Based Sayembara project, I continued improving both the Rank Emcee and Rank Judge modules based on Dr. Shawn’s code review.

Initially, I misunderstood one of the pull request comments regarding the Emcee module. I merged the Standard Emcee and Rank Emcee interfaces into a single widget because I thought the system should switch between them based on the judging method. However, Dr. Shawn clarified that this was not the intended design. Instead, both widgets should remain separate and be managed using different user roles rather than checking the JudgingMethod. This helped me better understand the intended system architecture and separation of responsibilities.

Besides that, I fixed the .stamp issue during testing. After investigating, I found that the problem was not caused by the production code but by the mock data in rank_emcee_service_test.dart, which was returning an empty list of players. After updating the unit test, the issue was resolved without modifying the actual application code.

For the Rank Judge module, I continued improving the user experience by testing how practical the drag-and-drop functionality is when using only a laptop touchpad. I also refined the thumbs up/down behaviour so that participants now move one position at a time instead of jumping directly from the top to the bottom of the ranking list.

During the weekly meeting, Dr. Shawn reminded me that another competition will be held on 1st and 2nd August, so I should start preparing for the event. He also encouraged me to work more efficiently, as my internship is entering its final stage.


Challenge This Week

The biggest challenge this week was correctly understanding the intended architecture of the Rank Emcee module. My initial implementation technically worked, but it did not follow the agreed system design because I merged two separate widgets into one.

Another challenge was balancing development work while completing my internship documentation, including my report and weekly logbook submissions.


Solution

After discussing the implementation with Dr. Shawn, I reverted the changes and kept the Standard Emcee and Rank Emcee modules as separate widgets. This reinforced the importance of following the agreed architecture instead of making assumptions during development.

For the Rank Judge module, I continued testing different interaction methods to determine which provides the best user experience before finalising the implementation.


Reflection

This week reminded me that software development is not only about producing working code but also about following a consistent architecture and understanding the reasoning behind design decisions. Code reviews continue to be one of the most valuable learning opportunities throughout my internship.

Although I spent a large portion of this week completing internship documentation, I still managed to make steady progress on the Rank-Based System while refining existing features based on feedback.


Next Week’s Plan

  • Decide the most suitable interaction method for the Rank Judge module (drag-and-drop or swipe gestures) based on usability testing.
  • Continue refining both the Rank Judge and Rank Emcee modules.
  • Finalise the drawer and role implementation after the behaviours of both modules have been confirmed.
  • Prepare for the upcoming competition on 1st–2nd August.
Categories: Experiential

0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.