SIM 3.0 - Issue Tracking on the IC
- written by Roland BOLE (Instructor)
We are happy to announce that we have been commissioned to develop another application on the Internet Computer. This time it is an issue tracking application tailored to an Austrian company. What an incredible journey - let's make it a groundbreaking experience!
Blog image

But wait, this also comes with its challenges. The project must align with several key requirements and constraints. Keep in mind that all of these features remain standard in the Web2 world.

The project goal is to explore how the Internet Computer can integrate with these features. A successful outcome is only achievable if all necessary components are delivered effectively. This approach involves a certain level of risk, however, it’s one we’re willing to take.

Project Challenges

There are several features that are considered state-of-the-art and standard in Web2 applications. To remain competitive, these features must be implemented on the Internet Computer.

First, we need to import all existing issues, messages, files and project documentation. Currently, this data is stored in a MySQL database and a traditional file storage system. We work with a dataset of 100,000 records - manageable, but still significant enough to pose challenges.

Secondly, we need to implement a daily backup solution for all data the company stores on the Internet Computer. This addresses the potential risk of data loss and unintentional data deletion of users and ensures comprehensive data security.

And, what good is data if you can’t find it? So, we need to implement a full-text search functionality, whether on-chain or off-chain. Implementing an efficient search algorithm is one of the key challenges we are facing.

Furthermore, the system should be capable of sending email notifications to users, such as when a new task is assigned to them. This can be managed using icSend, one of our initial service.

Finally, we need to implement an onboarding process that allows users to gain access via the Internet Identity. However, the ability to create new user accounts should be restricted to the application administrators. So, the Internet Identity should be utilised for secure authentication, but access should be restricted to verified users within the company.

And, there will be for sure some unplanned challenges as well!

As you can see, there are several challenges. Most of them have already been successfully addressed, while some require the support of a Web2 service. Others still demand more innovative solutions to eliminate the need for additional Web2 dependencies.

Current Action Plan

We are currently in the development phase, the requirements are still being finalized. The application is built using Angular v19 for the frontend and Motoko as the backend canister language. At present, we are using a single frontend and backend canister architecture. However, this may evolve, particularly to accommodate full-text search or to implement a dedicated canister for file and media storage.

We are currently nearing completion of the application container in Angular (UI look and feel), as well as the translation service for languages such as German and English. Our first milestone will focus on the user management, including the ability to onboard a new Internet Identity by linking it to an existing user, along with login and logout functionality.

The implementation of a central IC service for interacting with the Motoko backend is already prepared for the Angular frontend. For all list-based data, we are leveraging Angular’s new Resource API, which shows great promise.

We have already developed a Node.js application to import data into a stable map on the backend canister. Managing the 2MB import limit with a batched import approach has proven to be highly effective. This method also shows promise for mirroring data from the canister to a MariaDB instance, which could be a valuable solution for certain use cases.

An intriguing technical question here is how to use the same developer identity for the Node.js application. Fortunately, this capability has already been implemented successfully.

This should give you an announcement for this great project we are working on. We will post updates on the project progress over time.

Furthermore, all our insights and learnings will be incorporated into our course on Application Development Skills for the Internet Computer, which we previously launched.

It will be exciting to see if we can successfully develop a business application for daily use. This could also serve as a starting point for many similar applications in the future.