Department of Software Engineering College of Computer Science and Information Studies GC University Faisalabad
Revisions Overview The document completely illustrates the design and architecture of the application. The document is prepared after the detailed analysis and research upon the different designs and architectures that may have been applicable to our application and describes the finally chosen design and architecture for our application. Target Audience This document will act as a reference of what needs to be developed for our whole team. It would provide information necessary to understand the design and architecture of the system. Project Team Members The team members are: i. Kamran Ahmed ii. Hafiz M. Hussain Version Control History
Version
Primary Author(s)
Description of Version
Date Completed
First Draft
Kamran Ahmed
This is the first draft of this document and the modifications are expected as the project progresses.
June 18, 2014
___________________ Signatures for approval
Table of Contents
List Of figures: ................................................................................................................................1 List Of tables: ..................................................................................................................................1 1. Introduction .............................................................................................................................2 1.1. Design Overview .....................................................................................................................2 2. System Architectural Design...................................................................................................... 2 2.1. Chosen System Architecture.................................................................... 2 2.2. Discussion of Alternative Designs .......................................................................................... 3 2.3. System Interface Description ...................................................................................................4 3. Detailed Description of components....4 3.1 Web Application... 5 3.1.1. Controller.. 5 3.1.2. Model ... 5 3.1.3. View.......5 3.2. Web Server............................................................................................................................5 4. User Interface Design......5 4.1. Description of the User Interfaces............................................5 4.1.1. Figures....6 4.1.1 Fig.3 Inbox Interface...6 4.1.1 Fig.4 Agenda for Today..6 4.1.1 Fig.5 Project Interface.....7
1
List of Figures Figure
Description Figure 1
Context Diagram Figure 2
Web Application Figure 3
Inbox Interface Figure 4
Agenda for today Figure 5
Project Interface List of Tables Figure
Description Table 1
Comparison of suitable architectures
2
1. Introduction 1.1. Design overview The design pattern that we have chosen for our application is MVC and there are several reasons for this choice. Apart from this, the others that we may have implemented were the modular pattern, repository pattern, n tier architecture but each one had its pros and cons, so after detailed analysis we decided to go with MVC pattern. The details are given ahead. 2. System Architectural Design Following section describes the chosen architecture: 2.1. Chosen System Architecture The context diagram of the architecture that we have chosen for our application is as follows:
Fig. 1. Context Diagram The figure above shows that the application consists of basically two parts the web application that runs on the users browser and the second one is web server that further has an API and the database. The web application running in the browser sends a request to the API on server. API decides the action that needs to be performed based upon the request, gets the data from database (not necessarily) and returns the response back to the web application running in the browser. The detailed look at the internal processing of the web application can be viewed from the diagram shown below:
3
Fig. 2. Web Application It can be seen that the web application block has 4 distinct entities i.e. a controller, model, services and views. The users request is received by the controller which uses the services to fetch data from the server, this data is then passed to the models and after that processing, the data is sent to the view and the view is finally rendered to the user. 2.2. Discussion of alternative designs The comparison table for each of the alternative designs is shown below: The nonfunctional requirements of the application are following:
Design Patterns
Comments i. Repository Pattern
Web application having most of the functionality on the client side and accessing repository for each and every action, repository pattern was best suitable for our project but when we did some research there werent any javascript available libraries or frameworks that may have helped us implement that and everything would have to be built from scratch, so the pattern wasnt adopted.
ii. Singleton Pattern
4
We thought to use singleton pattern initially as we were planning on creating a website and not a web application but later on there were change of plans and we decided to go with the web application for which the singleton pattern wasnt suitable and thus not adopted
iii. MVC Pattern
MVC pattern was the best design pattern that suited our application and fortunately we found a wonderful framework called Angular JS which has wonderful data binding, directives and other great features that made it the best possible framework for our project. There were other alternatives such as Backbone JS etc but the features of Angular JS weighted more over the others.
Table 1. Discussion of suitable architectures
2.3. System Interface Descriptions The list below shows the interfaces the system will have: i. In respect of user interfaces the system will be having the following interaces: a. Project Interface that will be displaying the project, its tasks and other related actions b. Agenda interface, showing the tasks grouped together based upon the due date. c. Parent interface having the application wide options e.g. print option, projects and navigation etc. ii. In respect of the hardware, the application will be interfacing with the web server iii. In respect of software, the system will be interfacing with the SMS API, the database and the web browser.
3. Detailed Description of Components Following is the list of different components of the system: i. Web Application ii. Web Server a. API b. Database
5
The detail of each of the components is given ahead: 3.1. Web Application The fig. 2. represents the application. It can be seen that the application has 4 distinct parts: i. Controller ii. Model iii. View iv. Services
3.1.1. Controller We may say that the controller is the most important part of our application. Its where all the processing is performed i.e. every data binding in our application is being done in the controller section of the application. It is the part of the application that populates the models, renders the views etc. 3.1.2. Model It is the part where the data exists. In our architecture, the model is the part which has data for example, it contains the tasks, other information regarding tasks and projects etc. 3.1.3. View View is the part which is finally rendered and shown to the user. 3.2. Web Server As it can be seen from the fig. 1, the web server has further two parts i.e. i. API ii. Database API receives the requests, parses them and finally decides what needs to be done. API then, depending upon, the request received uses the entity classes and the data is fetched from the database. The resultant data is then encoded into JSON and then returned back to the user. 4. User Interface Design Following section shows and describes the interfaces that the application will have. 4.1. Description of the User Interfaces The application basically consists of two major interfaces which are rendered in different ways in different cases. These interfaces are the project interface and the agenda interface. The project interface consists of plain tasks and the related options whereas the
6
agenda interface consists of the tasks grouped together based upon their due dates. Below are the screen images showing the interfaces of our application: 4.1.1 Figures
Fig. 3. Inbox Interface Fig. 3. shows the inbox interface of the application. Its the place where the tasks are added by default i.e. the tasks having no associations with any of the projects.
Fig. 4. Agenda for Today Fig. 4. shows the agenda for today that is the tasks having that need to be performed today. In the same way there are interfaces for tomorrow, next 7 days and yesterday. Also there is an archive page that shows all the tasks.
7
Fig. 5. Project Interface Figure 5. represents the interface of a project i.e. a grouping of tasks having a specific name.