We started the project for module 2 two weeks ago. My project is to develop a monitoring application. This application consists of an administration interface, an API and an agent to monitor. I am rather satisfied, it is progressing well. I decided to change the way I work compared to what I planned in the project outline. Basically, I thought I could predict at the beginning what I was going to do this month. I quickly realized that it is not very realistic. Indeed, I was ahead compared to the initial schedule. So I decided to work in the form of iterations. Each of my iterations lasts between 3 and 4 days. We can compare it to a sprint in the agile method. It's just a little shorter because of the relatively short time.
Here is the list of the tasks that I've already done during my iterations:
✅ Iteration 1:
During the first iteration, I focused on the choice of the project, the technological watch, the technological choices, and the administrative part.
✅ Iteration 2:
During the second iteration, I planned to build the administration interface as well as the database.
✅ Iteration 3:
Build of the API.
✅ Iteration 4:
Build of the agent.
After two weeks, I completed 4 iterations and I already have a usable prototype for my project.
Here is a video demonstration:
Here are my ideas for the next iterations:
Update the API so that the administration interface only consumes my API and will not directly map to the database.
The goal of this iteration is to integrate Slack + SMS notifications.
During the 7th iteration, I will add an authentication for the agent. There will also be an interface for adding and removing agents. The agent will be started with a parameter. This parameter will be the key.
During this iteration, I would like to add statistics to know the uptime of a monitor. We will be able to see the uptime and a graph.
Added monitoring for the servers.
I will try to achieve the most iterations possible during the two remaining weeks. However, I do not know in detail the complexity of each iteration.
What I learned
I learned so much during the two weeks that it's almost very difficult to summarize everything in a few lines.
Hereafter you will find the key knowledge I acquired:
I have of course increased my programming skills, more specifically in TypeScript. TypeScript is the main language of my projects.
I was able to test NodeJS improvements. I have not had the opportunity to test NodeJS for the last 12 months and now I noticed their progress is impressive!
Furthermore, I was able to increase my knowledge of CI / CD with TravisCI.
I am satisfied with the progress of the project so far. My biggest fear was not having a prototype after 1 month. But my fear is no longer justified.