Week 22: Debugging, Progress & The Final Event

This week, I continued investigating the logo issue that appeared after the latest application upgrade. My initial investigation showed that the logo request was returning a 403 Cloudflare hotlinking error, while other CouchDB requests in the same session were working correctly. However, Dr. Shawn pointed out that this explanation did not fully make sense because the previous application version worked correctly without the issue. Therefore, instead of assuming the problem was caused by Cloudflare, we decided to compare the previous Read more

Week 21: Continuous Improvement

This Week This week, I continued developing the Rank-Based System, mainly focusing on the Rank Judge module. After testing the drag-and-drop functionality, I confirmed that it works well even when using a laptop touchpad. The list automatically scrolls while dragging, allowing judges to move participants from the top to the bottom of the ranking list smoothly. This works together with the thumbs up/down feature, giving judges multiple ways to rearrange rankings. During development, I accidentally introduced a new object (rank:<eventId>_<judgeId>) Read more

Week 1 : A Week of Onboarding and Learning

This week, I completed my onboarding, learned the fundamentals of React Admin, and completed my first project dependency update. Onboarding and React Admin On my first day, I attended an onboarding meeting with Dr. Shawn. The session gave me a clearer picture of what to expect during my internship, especially my responsibility to carefully review and verify my work before submitting it, as it may eventually be deployed to production. After the onboarding session, I worked through the React Admin Read more

Week 1: A Brand New Start!

A Welcome Ceremony On 27th July, I found out that both me and Liang Yao will be starting our internship journey at AESTE while in a call with Dr. Shawn. He gave us a warm welcome, assisted in setting up our work accounts, and gave a brief description on both of our job scopes. Dr. Shawn had assigned me, for the time being, to look at some examples of websites that’ll be similar to the one that I’ll be working Read more

Week 20: Iterating the Rank-Based System

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 Read more

Week 19: Simplicity is Key

What I Did This week, I continued improving the Rank Judge module based on Dr. Shawn’s feedback. Several enhancements were made, including adding thumbs up/down buttons for quicker ranking adjustments, completing the comment system, and refining the layout by rearranging the icons and adjusting their sizes for better usability. During our weekly meeting, Dr. Shawn reviewed the interface and suggested simplifying the design to make it more user-friendly. He recommended reusing the comment interaction from the existing standard judging system, Read more

Week 18: Progress Continues

What I Did This week, I continued improving the Rank Emcee module by optimising the bulk update implementation in cdb_client.dart. Instead of fetching each document individually, the new implementation now uses a single bulkDocs() request to retrieve all required documents, merges the changes in memory, and submits everything through a single bulk update request. This reduces the process to only two HTTP requests regardless of the number of documents involved. I also started developing the Rank Judge module. The first Read more

Week 17: Learning to Build Better

What I Did This week, I continued improving the Rank Emcee module based on Dr. Shawn’s review. I revised the implementation so that bulkStart() and bulkStop() always retrieve the latest data from CouchDB before performing updates, preventing stale revision conflicts. Both methods now update the event and its performances together instead of treating them as separate operations. I also enhanced the application by introducing the JudgingMethod enum (standard and rank) into EventObj for backward compatibility. In addition, the MainDrawer was Read more

Week 16: Developing the Rank Emcee Module

What I Did This week, I started working on the Rank Emcee module. Before implementing the feature, I spent some time understanding how bulk updates in CouchDB work so I could apply the correct approach when updating multiple performances simultaneously. I successfully developed the core components of the module: During testing, I also discovered two existing issues in the original Emcee module. The first was that the timer did not stop correctly when a performance state changed externally, and the Read more

Week 15: Research, Reflect, Improve

This Week: I visited Dr. Shawn’s house to help set up newly purchased laptops for upcoming EuroAsia competitions. My responsibilities included installing Windows updates and configuring kiosk mode so that users could only access the Sayembara application during events. Besides that, Dr. Shawn introduced me to a potential internship project: a Rank-Based System. We had a discussion on the overall concept, target users, and possible implementation ideas. My first task was to research how rank-based judging systems are used in Read more