Week 4:
23.01 – 27.01


23.01 – Monday

The week started with working on the TypeScript project from last week. Due to some rearrangements with clients and postponed starting dates, we’re going to be introduced to the new project in a few days (it will be the website for Landbrug & Fødevarer). In the meantime, our mentors decided to enhance this TypeScript project and provide with study sessions, so we could master it as much as we can.

During the morning, we had a session to review our work from Friday. We were introduced to new solutions and features that can be used in TypeScript. A list of tasks for a few upcoming days was created. Together we agreed on creating a gamepad navigation, hit detection with multiple elements that are generated randomly (so they can be collected and have different effects), create IndexedDB database to store leaderboard. Everything should be refactored along the way in order to follow clean code rules – SOLID principles, essential for object-oriented programming.

On Monday, we were working together in our interns group on the hit detection method, score count functions and classes for different items that will be spawned. During our work our mentors visited us to check the progress, we also fixed first issue with the gamepad navigation together.

24.01 – Tuesday

This day we mainly worked on fixing bugs connected to the gamepad navigation and hit detection that wasn’t accurate. Implementing new classes and advanced calculations created a bunch of issues that were hard to debug and full of different challenges. With our mentors’ help we managed to master our debugging skills and learnt how to prevent some from happening using the TypeScript features.

During this day we were learning about the JavaScript animations, comparing the LocalStorage to IndexedDB and started the implementation of the second one in our solution.

This project is a great way for me to learn the TypeScript and all features relevant to work with it. Testing everything and implementing in code, along with following best practices to write it in understandable and clear way helps me gain essential knowledge and experience for this tool.

25.01 – Wednesday

Wednesday started with a session about refactoring our code – how to make it in easy way, as well as in a meaningful way for the potential co-worker. This experience is highly valuable for a developer – while working in a team, maintenance of the code and collaboration is heavily dependent on this factor. Writing clean code can boost developers’ effectiveness and prevent from unwanted errors.

During this day, we were implementing different elements in our game – obstacles, power-ups with different effects on a player. Therefore, we created more components, provided with logic in classes and methods and styled them – this allowed me to work more with SASS (not only TypeScript) and master its features.

Our code begun to be more comple complex. We were working with object-oriented programming approach on interfaces, classes and methods handling different actions.

26.01 – Thursday

On Thursday we were focusing on implementing fully-working IndexedDB database that will handle and store the leaderboard. After finishing the game user can input their name and it will update automatically. During this day we also improved our timer functions with setTimeout events, corrected the methods responsible for some of the power-ups.

27.01 – Friday

Friday was a big day for the game. Our mentors ask if we can present the result of our work from this week on the company’s beer meeting after the work. Therefore, we were focusing on refactoring the code, implementing Audio Web API to handle sound effects, styling the layout using SASS and making fully-functional power-ups, that will be handled by a few complex classes. We managed to create a magnet function (for bringing collectables closer to a player), time and speed boost functions, speed down and invincible functions (to be protected from bombs).

During the meeting our co-workers from Illumi were testing the game and gave us feedback on it. It was great to hear from them how they enjoy our product.

This game project was definitely something different than the typical frontend work. However, this helped me explore all essential features of TypeScript, technology new to me, gain real-life experience and develop in a group, using git and Live Share. Moreover, it also allowed to focus on essential skill – writing clean and understandable code, highly important while working in team. All these things are included in my learning objectives, which made this week really productive and full of valuable knowledge.