automated web reporting applicationengineering.uga.edu/uploads/main/37_poster.pdf · the django...

1
Automated Web Reporting Application Team Members: Britt Phillips, Kerry Bethea, Michael Barker Faculty Advisor: Nahian Siddique Project Statement Front-end Back-end Sponsor/Client: Daniel Snyder, Automated Logic Automated Logic, owned by Carrier Corporation, creates systems for automated and intelligent building operations, such as HVAC management, energy conservation systems, and fault detection/diagnostics. At their headquarters, the company runs automated tests on these systems for the purpose of quality assurance. The results of these tests, however, are not in a form that clients, shareholders, and employees can easily access. In order to demonstrate the capabilities of their automated testing, the company would like to be able to show in detail the results of these tests in an easy-to-access web-app. This web application will be hosted internally within the headquarters as a means for Automated Logic’s workers to better view and interpret the data from these tests and show potential customers the benefits of these tests. Requirements This program will employ the company’s existing database and allow a user to enact certain important tasks. These tasks include: comparing the pass-fail rates of functional vs non-functional test sets, viewing detailed descriptions as to the status of each test individually, or as a set, displaying important information in the form of charts and graphs, or performing algorithms that calculate the cost-benefit analysis of the tests. High Level Design Design/Layout The front-end consists of three pages, and can be expanded upon in the future if the company demands it. Home: Displays two pie charts which show necessary and surface-level information on both the functional and non-functional test sets. The user may choose via a dropdown menu the time period that the charts should show data from. Current Test Sets: A more detailed view on the tests sets that are currently active. This table can display any and all information from the database on test sets, tests, or test steps. Written in Angular Material, the table has built-in capabilities for sorting and pagination. Cost-Benefit Analysis: Performs calculations comparing the functional tests to the non- functional, and returns values of efficiency and cost savings of using automated testing as opposed to other methods. The sponsor can implement accurate data based on their reported costs after the project is handed off. Conclusion The finished project satisfies the project sponsor’s requirements, and due to the innate expandability and customizability of the Angular and Django frameworks, the company can choose to alter the code in any way and add any additional functions as they see fit. The front end was written using the Angular API and implements the libraries Chart.js and AngularMaterial. Angular was chosen due to its compatibility with Django and JSON, and its ability to create clean and professional front-end websites with ease. Using the Django web framework the students developed a ORM model connecting to a sqlite3 database. This database is native to Django and the constraints of the project are lightweight enough to be handled by it. The students created 2 models, Tsets and T. These are named due to some naming restrictions from Django natively having “test” as native object name. These models help configure the data coming in from a json file provided by the tests run at Automated logic. The students then created a management command for the Django project called importjson. This command can be called at any point while the service is running and the file in the project directory test.json will attempt to be parsed into the database. The command checks to see if there is already a test set with the same attributes and only creates a new one if there isn’t. This could be automated to run any time the file is changed or refreshed with new data. The Django framework finally serializes and routes the model data into urls which are then picked up by the front end. Figure 4. Right Using the Django Rest Framework Plugin the students created an api that serializes the data and posts it to urls that can be called by the front end. Figure 5. Below Here the Test sets are shown in Json format being passed through the URL Figure 6. Below Here the individual tests are shown also in Json format, you can see these two tests are referring to the url of the test set they belong to Figure 1. Home Page Figure 7. Left Class Diagrams for the model layout. The diagrams for the functional and non functional tests has been merged because they all have the same attributes. It was simply easier to have them seperate in the database. Figure 8. Below Here is a flow chart of the general process of getting the initial input from the json file into a database and on the website. Figure 2. Current Test Sets Page Figure 3. Cost Benefits Page

Upload: others

Post on 07-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automated Web Reporting Applicationengineering.uga.edu/uploads/main/37_poster.pdf · The Django framework finally serializes and routes the model data into urls which are then picked

Automated Web Reporting ApplicationTeam Members: Britt Phillips, Kerry Bethea, Michael Barker

Faculty Advisor: Nahian Siddique

Project Statement Front-end Back-end

Sponsor/Client: Daniel Snyder, Automated Logic

Automated Logic, owned by Carrier Corporation, creates systems for automated and intelligent building operations, such as HVAC management, energy conservation systems, and fault detection/diagnostics. At their headquarters, the company runs automated tests on these systems for the purpose of quality assurance. The results of these tests, however, are not in a form that clients, shareholders, and employees can easily access. In order to demonstrate the capabilities of their automated testing, the company would like to be able to show in detail the results of these tests in an easy-to-access web-app. This web application will be hosted internally within the headquarters as a means for Automated Logic’s workers to better view and interpret the data from these tests and show potential customers the benefits of these tests.

RequirementsThis program will employ the company’s existing database and allow a user to enact certain important tasks. These tasks include: comparing the pass-fail rates of functional vs non-functional test sets, viewing detailed descriptions as to the status of each test individually, or as a set, displaying important information in the form of charts and graphs, or performing algorithms that calculate the cost-benefit analysis of the tests.

High Level Design

Design/LayoutThe front-end consists of three pages, and can be expanded upon in the future if the company demands it.

Home: Displays two pie charts which show necessary and surface-level information on both the functional and non-functional test sets. The user may choose via a dropdown menu the time period that the charts should show data from.

Current Test Sets: A more detailed view on the tests sets that are currently active. This table can display any and all information from the database on test sets, tests, or test steps. Written in Angular Material, the table has built-in capabilities for sorting and pagination.

Cost-Benefit Analysis: Performs calculations comparing the functional tests to the non-functional, and returns values of efficiency and cost savings of using automated testing as opposed to other methods. The sponsor can implement accurate data based on their reported costs after the project is handed off.

Conclusion

The finished project satisfies the project sponsor’s requirements, and due to the innate expandability and customizability of the Angular and Django frameworks, the company can choose to alter the code in any way and add any additional functions as they see fit.

The front end was written using the Angular API and implements the libraries Chart.js and AngularMaterial. Angular was chosen due to its compatibility with Django and JSON, and its ability to create clean and professional front-end websites with ease.

Using the Django web framework the students developed a ORM model connecting to a sqlite3 database. This database is native to Django and the constraints of the project are lightweight enough to be handled by it. The students created 2 models, Tsets and T. These are named due to some naming restrictions from Django natively having “test” as native object name. These models help configure the data coming in from a json file provided by the tests run at Automated logic.

The students then created a management command for the Django project called importjson. This command can be called at any point while the service is running and the file in the project directory test.json will attempt to be parsed into the database. The command checks to see if there is already a test set with the same attributes and only creates a new one if there isn’t. This could be automated to run any time the file is changed or refreshed with new data.

The Django framework finally serializes and routes the model data into urls which are then picked up by the front end.

Figure 4. RightUsing the Django Rest Framework Plugin the students created an api that serializes the data and posts it to

urls that can be called by the front end.

Figure 5. BelowHere the Test sets are shown in Json format being

passed through the URL

Figure 6. BelowHere the individual tests are shown also in Json

format, you can see these two tests are referring to the url of the test set they belong to

Figure 1. Home Page

Figure 7. LeftClass Diagrams for the model layout. The diagrams for the functional and

non functional tests has been merged because they all have the same attributes. It was simply easier to have them seperate in the database.

Figure 8. BelowHere is a flow chart of the general process of getting the initial input

from the json file into a database and on the website.

Figure 2. Current Test Sets Page

Figure 3. Cost Benefits Page