The task was to create a web application to help project managers managing the tasks in their project, allocate resource to them and display the result as a Gantt diagram. There are a lot of solutions as thick client application (for e.g.: Microsoft Project), but web applications are evolving quite fast, so the technology behind them is capable to develop and run applications like this.
During the preparations to get to know with the available technologies that are helping to accomplist the task, and I had to choose some of them, which were suitable to solve the problems arising during the development.
After these preparations it was needed to create the scheduling algorithm. To create a good one, I had to make some research to decide which known algorithm is the best suitable for me. During this development I had to create the model of the project con-sidering the requirements of the task, like creating groups of tasks, defining dependen-cies between then and customizing the business hours of the project.
After developing the scheduler, it was required to visualize the result to the user. To accomplish this, I had to made some research in technologies in connection with the task, and my decision was to use a HTML5 technology called canvas. It was required to create the model and the algorithm of the drawing.
To create a real world web application, it is needed to develop the application part of the task, I’ve chosen AngularJS as the main technology for this part. In this part I had de-veloped the UI of the following components: creating and modifying tasks, modifying business hours and managing resources.
To finalize the app, it was required to implement some kind of persistency, so the project can be saved and loaded from external resources. I had chosen two different solutions, one of them is to save the data locally and the other is to store the project in the cloud using the user’s Google Drive account. Of course the project can be also loaded from these sources.