Skip to content

knightscode94/QA-SFIA

Repository files navigation

Aquarium water test logger

Contents

Project Brief

A more enviromentally friendly way to keep track of how your awauriums are doing in a store, home, professional enviroment

Resources

Requirements

For my project to be successful I need to create a CRUD able project this means it needs a CREATE READ UPDATE and DELETE. I met this by CREATING users and tanks with tests, READING the results from the tank tests on the home page, UPDATING and Reading the users information in account and finally DELETING the user and all the tests they carried out.

Project Approach

my project went under a redesign last minute as I wanted a working app over having something fancy. initially i was going to use three tables but had issues joining the tests to the tanks so went to having the tests connected to the tanks in one table, it isnt the most efficient but can be imporved in later stages and can be developed.

I started by creating the back end to include everything I needed then worked on the users, tanks with testing then submitting to home page.

Project Architecture

Kanban Board: Trello or an equivalent Kanban Board Database: GCP SQL Server or other Cloud Hosted managed Database. Programming language: Python Unit Testing with Python (Pytest) Integration Testing with Python (Selenium) Front-end: Flask (HTML) Version Control: Git CI Server: Jenkins Cloud server: GCP Compute Engine

alt text

Database Structure

alt text alt text

CI Pipeline

my pipline is set up using VSCode as my writing program, this has allowed me to keep track of my progress and set up. I then used git as my version control tracking system, this is my developers stage.

my devops stage is where I wrote code that tests my application and builds it using jenkins, if the tests are successful jenkins will automatically push the code up to be created and will create the application using gunicorn and systemd service. This means that any code that is developed will automatically go through the testing and building and can be done in less than a minute, obviously if more features are added then more tests have to be created.

Front End Development

my front end uses flask as my primary development implamentation due to its ease of use and the many external plugin libraries it offers, i havent added any css code yet that will be for future development but the front end is intuitive and easily readable and designed so even the least tech savy users can use it. Flask is a front end web development program designed to code in python. I could of used DJANGO which offers more support but is known to be more complex than flask especially for new users such as myself.

Testing

Here is my cov report of my application

alt text

To get 100%

forms.py: test email already in use functionality

routes.py: login - redirect if user already logged in, if user is not registered go to register update account - check user data is pulled from DB delete - check all data related is deleted

Unit Testing

Start of testing___

Application setup export keys drop the tables and create the new tables create users and save to users table

During testing____

standard test from tutorial test home page is visable test you can create a tank with test information test a user can logout delete a user and everything associated with user create a user with non auto input login using pre installed data

End of testing___

Delete tables

Functional Testing

test server is running from tutorials create a user test login redirects to register if user doesnt exist and log in user after registration

UI Testing with Selenium.

Selenium is a web browser automation tool that supports the most web browsers, across Windows, MacOS and Linux.

Selenium requires a web driver such as chromedriver to run tests within a web browser for my tests i used chrome.

Project Review

for the first version of my application I am happy weith how things have turned out, if i develop this further I will look into splitting my tables into 3, tanks users and tests, until then I will probable add a search feature so that you can reduce the home page data down to date, tank or who completed the test.

Risk Assessment

alt text

Known Issues

if nitrate, nitrite and ammonia are not filled in the app doesnt respond with an error, this is easily fixed by adding adding a validator into the forms, the app doesnt crash just does nothing. I had not fixed this yet due to the time it took to get the float system in place.

Author

Tobias Jackson show working

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published