Reaching the End of the Prototype

In the previous week, I further modified the prototype of the main page and the customer page. I noticed that the required steps using the UI are minimized compared to the previous prototype. I was happy with the minimization because the user now can use the system with the minimum steps required. Also, the checkout page is one of the focus points for the last week. This is because the checkout page is fundamental for the system. I had created multiple payment methods for this system and was confused with the cash payment. The reason for the confusion is due to the payment was not fully paid. This system enable customer to pay their bill in multiple times. For example, they can pay by partially first time, second time, and the third time. I was confused with the steps that enabled the changes the second time. The checkout page only can enter the amount of receiving but not the exact amount that the customer needs to pay. This caused the customer not to get their cash back in the first or the second payment. The customer needs to pay the exact amount for their bill, or else the last payment with become less. If some people are willing to pay 88 for the first time but this person paid 100, this person will not be getting any changes because he or she still owes the company.

Mr. Peter and I had no solution for solving this issue. He said that he would receive all the money without paying back the customer because the customer still owed the company. But I do not agree with him. Even though we can’t solve the payment problem, I still completed the prototype of the pages. The customer page is added with the functionality of adding multiple addresses. Mr. Peter told me that the customer might have multiple addresses and need to be recorded down in the system. Besides that, I added two new pages. The page will record the payments for customer A and help the staff to understand the payment done. On the other hand, the payment list will list all the payments from the customer. It helps the customer understand the overall payment history. In the payment list, it will only show the date, customer name, amount, and payment method. The staff are not able to see the profit this company made when looking at this page. 

In conclusion, the prototype was almost completed and I was ready to start my coding life in the following weeks. I will try my best to use my skills and make a comprehensive system just like the prototype. The actual system will contain multiple pages, which can still be added through the lifecycle.

Modifying Prototype

Continuing the task from last week, I modified some features of the “Item List” in Axure RP 10. The description of the item, I modified some of the details to make them as a table form. Since the dynamic panel was too small, I adjusted the panel size and modified the position and arrangement of the items inside the panel to fit all the features in a panel.

After that, I added the UoM (Unit of Measure) which is a standard unit of measurements used when accounting for stock, and expressing them in quantities for each item’s description. Due to the fact that each item not only sales in a UoM, I also modified it as a table to view all the conversation factor of pricing based on the UoM.

Beside that, I modified the item’s name based on the brand, model and part number of the item. I also make it to a table to easy the user to see which categories are and other information of that item. Lastly, I create a pagination feature in the prototype to easy the user browse the items.

Week 3 of Internship

Mr. Peter has given me a new assignment for the third week of my internship: creating a new entity for the system. The entity includes functions such as create a new entity, edit or delete an existing entity, and list out the entity list. Firstly, sir has instructed me to use the Microsoft Visio tool to develop the table for the entity. Microsoft Visio is a diagramming and graphics application. The client properties, such as names, addresses, and other details are included in the table I created.

After developing the table in Microsoft Visio, Mr. Peter asked me to write the code for the entity that included the feature mentioned above. We have used the domain driven design approach to develop the system. The domain driven design approach is a software design approach, which focuses on modeling software to match a domain according to input from that domain’s experts. So, I need to separate the code for the SQL portion from the domain part. Next, I started to develop the first feature of the entity, which is the feature of getting the full list. Since the feature of getting the full list is a query, I put this feature inside the query folder of the feature folder. This is in line with the CQRS design which is to divide a system’s command portion from its query portion.

In addition, I created the API controller for the entity object so that the API could utilize the features I had created for the entity. I also write the testing code for the API controller in order to test whether the API will function correctly when I use it. During testing one of the features in the entity, I faced an error in which I couldn’t retrieve the correct status code of HTTP. Following Mr. Peter’s advice, I utilized Visual Studio’s debug button to identify my mistake. Debug is a feature that can detect the errors in computer programming and software development. I discovered that there was a mistake I had made when developing this functionality for a different project after activating the debugging button. After fixing it right away, I discovered that the test had succeeded.

Later, I continued to develop other features inside the entity. In conclusion, this week of internship was quite hectic for me since I had the chance of trying to create the first feature for the web-based system.  

Testing and Logic Improvisation

Last week, I completed the UI design for the cleanup task and proceeded to test the UI flow to catch any potential bugs I might have missed. After ensuring that the basic interactions, such as using the search bar and checking data checkboxes, were smooth and functional before the actual data cleanup, I began to assess the cleanup logic. I meticulously examined the results to confirm if the cleanup process was working correctly.

During this process, I not only fixed the logic but also cleaned up the code. Given that this task was not new to me, I took extra care in placing the code precisely where it belonged. While validating the data’s accuracy, I identified a few instances where the logic did not fully align with the intended conditions. This prompted me to refine the logic and code, resulting in a more robust implementation. I encountered challenges when dealing with specific data. Achieving the correct data required a tricky approach, involving retrieving data from different repositories before obtaining the desired data.

Toward the end of the week, I presented my progress to Mr. Peter. One decision I made, which I had reservations about, was using a loading bar dialog instead of a progress bar dialog during the cleanup process. This choice was influenced by the complexity of sending a list of data to the backend, making it difficult to track and update the cleanup progress bar. However, Mr. Peter introduced me to an alternative method using SignalR to execute tasks and achieve the desired progress data. However, adopting this method also necessitated my efforts to identify bugs within its implementation, which is my main task for this upcoming week.

Prototype Week using Axure RP

This week I have been assigned the task of creating three pages of prototype. I was charged on the prototyping system page and the customer page. Before starting prototyping these pages, I studied the concept of the page and drew the first draft of the page on a paper. The first draft of the pages did not satisfy my colleagues and she suggested I further enhance the user interface.

After a few moderations, I came out with the first prototype of the page on the Axure RP 10. However, the page I created was too complicated for Mr. Peter. He wanted me to reduce the “clicks”, his perception of the system is to minimize the “clicking” process, which means the amount of the button needs to reduce. After listening to the feedback, I come out with a better version of the page and a customer page. In the process of combining the task, we used git to merge the page with my colleague’s task. However, she mistakenly replaced my work with her work. I need to revert the file to the older version of the file. Now I finally knew the importance of updating the files using Git. When presenting the customer page to Mr. Peter, he mentioned that the customer page was fine to him, but still needed to reduce the “clicking” process. He told me that the user will never click on the edit button to edit the customer details, but will click on the places that need to edit. He also mentioned that the edit function will be similar to an Excel file, the user can straight away click and edit the files.

In conclusion, I used Axure RP 10 to draw the prototype of the page and customer page. Even though the prototype I created is not perfect in the sense of the design, but still acceptable. He told me that the prototype would end next week and we would proceed with coding it out.

Create a Prototype by using Axure RP 10

Last week, I was using Figma to create the prototype. However, there are many limitations for creating the prototype, I am switching the tool to Axure RP 10. Comparing to Figma, Axure RP 10 comes with a more intuitive and user-friendly interface, making it easier for both newcomers and experience users to create prototype. Besides that, The new version offers a wide range of interactive elements and dynamic panels, allowing for more complex and realistic prototypes.

In this Axure RP 10, I able to create more interactive functions to do this prototype. I am more prefer using this Axure, because it provide the library that contains many useable functions like buttons, headers, checkboxes and so on. During this week, I update the changes of features with my another intern colleague. The changes of the features are let the whole system become more user-friendly and more functionality.