Project Methodology
A methodology used during the project starting from the development process to the technologies
A methodology used during the project starting from the development process to the technologies
The most important reason why this project has succeeded is the development process that was enforced on me by my supervisor Liron Tzabari. Thanks, Liron! It really helped me to keep focused.
The project is divided to 3 main milestones:
Develop server infrastructure
The 2 main goals of the milestone is to get familiar with the IDE and develop extension’s back-end infrastructure on the server side.
The first one of 2 project risks is handled in the milestone.
Integrate Orion’s Compare widget
The goal of the milestone:
The second one of 2 project risks is handled in the milestone.
Develop a Code Review extension
After the 2 main risks of the projects are handled, it is possible to develop the code review system itself. Most of the development is done in this milestone, although its time estimation is not more than each of the first two.
Tasks:
In addition to the global milestones, we had a weekly remote meeting. We could not meet physically, hence we met virtually: we had a weekly meeting over Skype:
The weekly summary mail helped a lot to track project progress, to keep stay focused, and to get ahead towards the milestone and project goals.
Of course, in case of any problem I could always contact Liron and ask him to help me.
The IDE is a web single page application, 100% Javascript: both server and client code. Among the features of the IDE is extensibility:
The server runs on Node.js infrastructure with its huge amount of packages over the net.
Express is used to run HTTP server.
The server modules expose a RESTful API to serve its clients. In order to send a push notification from the server to a client socket.io is used.
Bower is used for client’s package management.
Underscore.js is available in the client.
RequireJS is used to load all javascript files and to resolve intra-module dependencies. Every Javascript file is a RequireJS module, which can be required by other files.
There is Jquery available in the client that can be used for HTML manipulation and etc. But AngularJS is preferred. Usually, an extension’s module exposes some AngularJS service, that can be requested later by other