- July 15, 2021
- Blog
Lok’s internship @ Digital Unity
Hello, my name is Lok Fung Choi. I am currently working at Digital Unity as a consultant. My journey began when I started an internship at Digital Unity.
During this internship, I have built a new module in Digital Unity’s timesheet tool. The timesheet tool is an in-house application that is responsible for generating timesheets for employees. It is still in the beginning stages with room for improvement. The goal is to add a new module that allows you to add expenses for each employee in the timesheet Tool.
Project: Timesheet Tool
The architecture
It is worth mentioning that before you can begin, you will need to understand the inner workings of the timesheet tool. It mainly consists of 3 parts. The first part is the MSSQL database for storing data. The second part is the .NET core application that follows the CQRS design pattern for handling the CRUD operations. The third part is the Angular web application that allows you to interact with the timesheet tool.
To add expenses, we first need to add a new model in the .NET Core application. The application uses Entity Framework as an ORM to map the model to the database. Once the models were created, I added the necessary controllers for the CRUD operations of the expenses. I used Postman to test the API calls of all the controllers. Postman is a handy tool for the testing of any API. Finally, I have added the necessary components and services in the Angular frontend.
Daily standup
Although doing Scrum by myself would be overkill, we still did a Daily standup. In the daily standup, we discussed my progress and resolved any blocking issues or questions I had. Stephan helped guide me in the right direction where needed. If I encountered any problem, I knew I could contact him. He was always prepared to help me or point me to Niels or Kenny for problem-solving.
Although we worked fully remote due to the Covid-19 pandemic, these video calls made sure I felt like part of a close family.
Deployment on Azure
It’s very nice that I have the chance to test my new development on the timesheet tool in Azure. I’m allowed to have my resource group in the Azure environment. In my previous job, there were few opportunities to play with Azure. I never deployed an application to Azure from the ground up. It was an educational experience to follow the process from start to finish. I have learned a lot about it. It also shows a lot of trust from Digital Unity since every service I start in the Azure environment. All resources are directly billed to their credit card. In their vision, it’s an important investment in the growth of my knowledge!
Google Service
During development, I have the chance to learn how Google Cloud works. The intention is to upload the original file of the expense note via the platform and save it on Google Drive. For this to work, I had to add a service account on the Google Cloud Platform. Then we needed to download the API key and add it to the timesheet project. Once this is done, you can use your service account to update and upload files to Google Drive for users in the Digital Unity domain.
Google has extensive APIs to use in your applications. From storing files on Google Drive, to image recognition using Google Vision. I appreciated getting the chance of exploring the possibilities that Google offers.
My progress as a developer
I have learned a lot during my period working on this project. Not only on a technical level but also in the interaction with my teammates. Cristo Spreeuwers has helped me to communicate with my peers. He taught me that knowing how to code is not enough and he has helped me to develop my social skills. Niels taught me the design pattern of CQRS and how it works. Kenny taught me how to use an Azure Service Bus and helped me with my Angular problems. Stephan has helped me to understand how Google APIs work. I have learned a lot from this experience and I am glad that I had this opportunity.
Final thought
Stephan and Cristo were very happy with my contribution to the timesheet tool. It resulted in me being hired as an employee at Digital Unity. Now I continue my journey as a Full Stack .NET developer!
Digital Unity is such a nice company to work with. They’re very supportive and help you with whatever problem you have. During my time on the project, I have learned a lot from them. I still have a lot to learn, but I know I can count on my colleagues for their support. In the end, I am very happy to be on the team and cannot wait for new challenges in the future.