Building and Testing a New Data Table

Last week, I started to work on a new task that was one of the important parts in the report section. I needed to make a new database table that would record all the incoming and outgoing data, enhancing the integrity of the data. As it’s already previously being discussed and explained by Mr Peter, so I jumped right in and built the table. First, I sorted out how both incoming and outgoing data models would look and set up their configuration. Then, I tested their type configurations, which turned out to be a very straightforward test.

Next, I started working on the services to store data in the new table. Developing these services took some time due to various considerations. Afterward, I immediately focused on the integration service test. Initially, I followed an example from an existing test that used Func() to generate sample data. However, Mr. Peter pointed out that I was referring to an old test and gave me a new test reference that is much more simple and would run much faster than Func() which sped up the testing process. By creating this test, it helped me understand how to improve the services in order to store data into the new table even better.

By the end of the week, I still had a few more things to do that I had listed out my to-do list but shall continue my progress next week.

Improving Report’s UI

4.3.2024 – In my previous blog update, I’ve been focused on refining the charts report. While the chart portion is nearly complete, there are still some adjustments needed for the timeline feature. This feature allows users to choose between yearly, monthly, and daily views via a convenient dropdown menu. The UI’s idea was achieved after discussing with Mr Peter on what would be more practical for the users. Previously, I only made both UI and the API to only read and return yearly and monthly.

In the yearly view, users can see charts displaying total data for each year. Monthly view shows data specific to the selected year, while the daily view breaks down record on a day-to-day basis for the chosen month. I made the timeline dropdown refreshes automatically upon clicking a button. 

Additionally, I aimed to enhance chart responsiveness by enabling zoom and panning functionality. Thankfully, implementing this feature was straightforward, thanks to LiveCharts’ comprehensive documentation. While most aspects fell into place smoothly, there were some areas that required trial and error to achieve the desired outcomes. For instance, configuring one chart to display data upon hovering and omitting the y-axis label took some experimentation with existing properties.

Towards the end of the week, a few touch-ups were still needed, but I committed to the code first and will continue to improve both the UI and the code.