This repo contains information on 5 projects, 4 of witch have their own repositories. These projects all contribute to developing a Web app that records information on IoT devices. The Web app uses an API to store its data in a database hosted in Azure. A RPA is used to test the Web app's functionality and a Power BI report has been created to view summary information on the data collected by the Web app.
In this Project the 'CMPG323-Overview-33677727' repository was created. This repository will be used to provide an overview of all the Projects and as a source reposiroty for the 'CMPG 323 Project Progress Tracking' Kanban project.
This Project will create a 'CMPG323-Project2-33677727’ repository to store and work on the main parts of Project 2. It will also make use of the 'CMPG323-Overview-33677727' repository in order to keep the 'CMPG 323 Project Progress Tracking' Kanban project up to date.
This Project will create the 'CMPG323-Project3-33677727’ repository and will fork the existing GitHub repository. This project will also use repository classes that will contain data access operations. Project 3 will also use the 'CMPG323-Overview-33677727' repository in order to keep the 'CMPG 323 Project Progress Tracking' Kanban project up to date.
This Project will create a 'CMPG323-Project4-33677727’ repository. This Project will require the cloning of the 'CMPG323-Project3-33677727’ repository (as Project 4 will be working with the web application developed in Project 3). Project 4 will also make use of the 'CMPG323-Overview-33677727' repository in order to keep the 'CMPG 323 Project Progress Tracking' Kanban project up to date.
This Project will create the 'CMPG323-Project5-33677727’ repository. Project 5 will require the cloning of the 'CMPG323-Project4-33677727’ repository. It will also make use of the 'CMPG323-Overview-33677727' repository to keep the 'CMPG 323 Project Progress Tracking' Kanban project up to date.
The 'CMPG 323 Project Progress Tracking' Kanban project will be used to track the progress and plan the work and tasks for all the CMPG 323 Projects as well at the POE. All the Projects together will be treated as one big project (tracked by the 'CMPG 323 Project Progress Tracking' Kanban project). This will create a central planning area for the whole semester and will allow for easy managing and overviewing of all the projects and sprints. One big managing project will also allow for a smoother transition from sprint to sprint and project to project as some projects overlap within certain sprints. Each individual Project will have its own repository and will be separate from other Projects but will still be within the big overarching project. All the Projects will be linked through the 'CMPG323-Overview-33677727' repository except for the POE which will take information from all the projects and repositories.
This project does not require the use of source control and therefore does not need a branching strategy.
Because these projects will have lots of smaller functions and methods and won't be implementing big features, a variation on the GitHub Flow branching strategy will be used. There will be no release branch, but there will be feature branches that stems directly from the main branch. Once the feature is complete the branch will be merged back into the main branch. There will also be a hotfix branch for small fixes that may be needed on the main branch.
Branches:
- main
- feature
- hotfix
These projects will need a development branch and thus a version of the GitFlow branching strategy will be used. All features will be developed on a feature branch which stems from the development branch. Once the feature is complete the feature branch will be merged with the development branch. Once the development branch is ready to be realeased, the branch will be merged with the main branch.There will also be a hotfix branch for any small fixes that the main branch may need.
Branches:
- main
- development
- feature
- hotfix
Because the API keys and secrets will be stored outside of GitHub no security key files or API keys will be added to te .gitignore files for any of the Projects. The only files that will be added to a .gitignore file will be any system-specific files that may be encountered in Project 3,4 and 5. Project 1 and 2 will not make use of a .gitignore file.
For Project 2 and 3, specifically, no credentials are to be stored on GitHub. All credentials and sensitive information pretaining to any of the Projects will be stored in an Azure Key Vault (Azure Key Vault is a cloud service for securely storing and accessing any information that must be tightly controlled). By keeping all sensitive information seperate from the GitHub repositories (which will all be public) the information can be kept secure and no third party will be able to gain access to any of the systems.
This burndown chart is for 8 August to 17 August.
Project repository: CMPG232Project2-33677727
Enter the folllowing URL to access the API:
https://connectedoffice33677727.azurewebsites.net/swagger/index.html
To use the Zone and Category endpoints a user must be an admin user. A normal user can use the Devices endpoints and the Authentication endpoints. A user must login to recieve a token (use user name and password to login), be sure to copy this token with no "" marks. Click on the lock to the right of the endpoints and type in "Bearer <token>" to use the endpoints.
- Create a user(POST/api/Authenticate/register)
- Create an admin user (POST/api/Authenticate/register-admin)
- Log in and recieve a token (POST/api/Authenticate/login)
- Get all Categories (GET/api/Categories)
- Get a specified Category entry by id (GET/api/Categories/{id})
- Create a new Category (POST/api/Categories)
- Update an existing Category (PATCH/api/Categories/{id})
- Delete an existing Category (DELETE/api/Categories/{id})
- Get all Zones (GET/api/Devices)
- Get a specified Zone entry by id (GET/api/Devices/{id})
- Create a new Zone (POST/api/Devices)
- Update an existing Zone (PATCH/api/Devices/{id})
- Delete an existing Zone (DELETE/api/Devices/{id})
- Get all Devices (GET/api/Zones)
- Get a specified Device entry by id (GET/api/Zones/{id})
- Create a new Device (POST/api/Zones)
- Update an existing Device (PATCH/api/Zones/{id})
- Delete an existing Device (DELETE/api/Zones/{id})
Project repository: CMPG323Project3-33677727 The Web App developed for this project is meant to store information on IoT devices. The App allows you to store informaton on the Category of the Device (Name, Description and Date Created), on the Zone the Device is located in (Name, Description and Date Created) as well as information on the IoT Device itself (Name, Status, Is Active, Date Created, Category and Zone). The Web App makes use of a database hosted on Azure to store the information and the Web App is also hosted on Azure.
This Web App makes use of the MVC architecture pattern and uses Views, Models and Controllers. The Controller makes use of Repositories. A Generic Repository is used for all Database Context access operations. Each class is also given their own Repository which their controller uses to access the datbase indirectly.
To access the Web App hosted on Azure the following link can be used: https://devicemanagementwebapp33677727.azurewebsites.net
To use the Web app you can Register your own account or use the provided Login credentials. Once you have logged in three new tabs will become avaliable to you, namely Zones, Categories and Devices.
You can then Add, Edit, Delete and View Zones, Categories and Devices on the Web App. The Web App is quite user friendly and there should be little difficulty navigating to the different sections. Once you have added, edited or deleted all the Zones, Categories and Devices you want, you can then log out using the logout button on the menu tab.
To ensure that no credential are avaliable or present in the Project 3 repository, all the files that contain sensitive information or that may contain credentials have been added to the gitignore file. This was done after the repository was forked and before any work was done to ensure no credential are present in earlier commits of the project.
Because this project was forked from another reopsitory it was not possible to make the repositry private as all forked repositories must be public.
Project repository: CMPG323Project4-33677727
Once you click the play button in UIpath Orchestrator or run the process from UIpath Assistant you will be prompted to select an excel file to test the Web Page against. Once you have selected an excel File the automation will run and test everything on the https://connectedoffice-devicemanagement.azurewebsites.net web page (including logging in) and when it is done it will have printed the results of the testing in the "Test Results" tab of the selected excel file. Do not use the mouse or keyboard while the automation is running, go make yourself some tea instead :)
The sheets of the excel file must be in the order that the records must be created (Devices can't be created if there aren't any Zones or Categories).
The last sheet in the excel file must have he name "Test Results" and must have a list of the ID of all the test data as well as the following headings: Create Test Passed, Read Test Passed, Update Test Passed, Delete Test Passed. (Is case sensitive).
Each sheet will be used to test an entity (Zone, Category or Device) in the Web page. The columns of the tables in excel must match the lables in the web page. The first column of these sheets must also be and ID column (case sensitive).
An example of an acceptable excel file is in this repo under "Connected Office Test Data".
For this project a Power BI report was created on the data collected in the Web app from Project 4, which can be found at https://github.com/JessicavdM/CMPG323Project4-33677727 .
The Connected Office - Device Monitoring report contains four pages, the Filter Page, High-Level Metrics page, Device Monitoring page and the Device Registration Page page.
The report is connected to an Excel file in SharePoint via a Web Connection.
The report contains a Filter Page as well as a column on the left side of all the other pages that can be used to filter the data shown in the visualisations of the report. The filters work across all the pages and visuals of the report. The pages and visuals can be filtered by device Zone, device Category and Sub Category, the Date the device was installed and the Status of the device. Multiple selection of items in a filter can be made by holding the CTRL key and making your selection.
Filter column on all the other pages:
This page contains five visualisations. The first is a KPI visualisation comparing the number of devices installed this year to the number installed last year, by month. The large central number indicates the number of registered devices for the current month ("Blank" means no devices have been registered yet this month). The goal and precentage indicate how far away we are to this months goal.
The next visualisation is a line graph which shows how the number of registered devices has increased over time. The Date Installed filter can be adjusted to inspect a certain time period on this graph.
The bottom three gauge graphs indicate how many of the Zones, Categories and Sub Categories out of the number registered on the Web app, actually have devices registered for them. For example, out of the 9 Zones created in the app only 8 Zones have devices registered.
This page contains five visualisations. The first two bar charts keep track of the number of devices in each Category and each Sub Category. By selecting the bar of a Sub Category you will be able to see the portion of the Category that it takes up. Multiple selection of bars can be made by holding the CTRL key and selecting the bars. Any selection made will affect and filter the other visualisation in the page.
The last bar chart monitors the number of devices in each Zone. Again, the bars can be selected to filter the rest of the page. In the bottom right corner are two cards, the top card indicates the number of online devices and the bottom card indicated the number of offline devices.
This page contains three visualisations. The first visualisation is a column chart showing the number of registered devices over a time span. This chart can be drilled down to see how many devices have been registered over years, quaters, months and days. To drill down on the chart simply click the drill down icon in the top right of the chart (circled in red in the image below) to activate the drill down capabilities of the chart, then select the columns you want to inspect further. To drill up click the drill up icon (circled in blue in the image below).
Chart drilled down to Quarter:
The next visualisation, a line graph, shows how the number of Zones containing registered devies has increased over time. The Date Installed filter can be adjusted to inspect a certain time period on the graph. Next to this graph is a cloumn chart that shows the number of categories of devices. The column for each Category in the chart shows how many devices belong to each Sub Category withn that Category. These sections in the column can be selected to filter the rest of the page.