automated web reporting applicationengineering.uga.edu/uploads/main/37_poster.pdf · the django...
TRANSCRIPT
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