Skip to content

subit-grg/book_review

Repository files navigation

book_review

QA Project 1, CRUD app

Objectives: To create a CRUD application with utilisation of supporting tools:

  1. Kanban board with full expansion on user stories, use cases and tasks needed to complete the project.

Please see following Kanban board (Week 3 - Week 5):

image

  1. Design Approach:

image

GCP (Google Cloud Platform): Virtual machine and Databases:

GBP is a suite of cloud computing services and in this project, it provides services of data storage and machine learning. (Cloud SQL and Compute Engine).

SQLAlchemy: The Database toolkit for Python.

Python coding language was used the main foundation of web development. It is a high-level, interpreted and dynamically-types programming language. As it was beginner friendly, I was able to understand and learn the language with some ease.

The micro-framework called Flask was used to act as a skeletal support as the basis for something being constructed. It aims to keep the core simple but extensible. Functionality, such as forms, and templates makes this framework user friendly and adheres to a clear structure.

To test the developed codes, Pytest was used for unit and integration testing. Personally, I believe I must improve my testing skills and pytest skills. However, it does seem very beginner friendly. With pytest, common tasks require less code and advanced tasks can be achieved through a variety of time-saving commands and plugins. Similarly, as Flask, pytest also has a clear and set structure for testing.

Git was used as repository, as its feature of tracking and managing changes are well known. It centralises all code changes and allow for effective collaboration within development teams. I was able to pull and push codes and make changes as necessary.

For software deployment, Jenkins was used, as it is known as an automation server. It creates a stable environment for deploying projects and as these automation servers tend to be linked to a Version Control System, such as Git. It was a lot easier to understand how each play their role in software development and deployment.

  1. User Stories and Acceptance Criteria:

a. As a User,
I want to add/register myself as user, So that I can add my name on the User List.

Given the User is in the home page, When they click the add user/ add review button, Then they will be directed to the relevant forms.

b. As a User, I want to submit a review under my name, So that other can see my review on the books I have read.

Given the User is in the add review page, When they add a review, they will be asked to put their name, Then, they will be directed to the review list, where they can see their review under their name.

c. As a User, I want to be able to see all the reviews, So that I can pick and choose.

Given the User is in the home page, When they click on view review, The, they will have access to all the book reviews.

d. As a developer, I want to be able to see the list of users, So that I can keep track of the number of users.

Give the developer is on any page, When they click on view users, Then they can view all the user list.

e. As a User, (UNSUCCESSFUL) I want to remove/update my details and reviews, So that I can change previously given information.

Given the user is in the review of user list, When they click on Edit or delete, Then, they will be able to edit or delete their information.

f. As a User, I want to be able to access different forms, So that I can save my time.

Given the User is on any page, When they click on review form, Then they can access the review form.

g. As a User, I want to find out what the web is about, So that I am aware of the web.

Given the User is in the home page, When they read the title and texts, Then they will know what the web is about.

  1. ERD

image

My app will allow users to leave short reviews on their favourite books!

Following images are the final web design with the help of, ERD, User Stories and supporting tools:

Home Page: image

Add User Page: image

Add Review Page: image

  1. Risk Assessment

image

  1. What went well and What I can imporve for my next project:
  • What went well: a. Grasped a bigger picture and understand of various softwares and tools. b. Builded confidence with coding skills and other tools. c. Managed to deploy my first app

  • What I must imporve on, for my next project: a. Pratice my python! b. Stick to my plans as I had a lot of change in mind c. Time management should be better next time, now I have better knowledge on different tasks d. Be vocal about asking for help ... and many more.

About

QA Project 1, CRUD app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published