Skip to content

AShakerQA/AssignmentOneBackEnd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AssignmentOneBackEnd

Contents

Brief

The objective states to create a CRUD application with the utilisation of supporting tools,methodologies and technologies that encapsulates all core modules covered during training.

In Layman's terms this means to create an application which can create, read, update and delete information in order to display my current understanding of all the technologies I have been introduced to.

Additonal Requirements

The task must utilise the following technologies that I have learnt.

  • A Kanban Board created within Jira
  • A Database utilising GCP and MySQL (H2 used)
  • Clear documentation of the design phase and a risk assessment
  • A functional application created using an OOP language, in this case Java
  • Front end design using HTML, CSS and JavaScript
  • Test suites for the application using JUnit and Mockito
  • Utilise Git as a version control system throughout the application development process
  • Backend test coverage should be over 80%

My Approach

To achieve this I have decided to create a game library within a shop.

  • Create a new game that stores:
    • The Name of the game
    • the genre of the game
    • The current price of the game
  • Reading the information will be diplayed as an object within the front end (visually)
  • Updating the price
    • Price can be ammended, for instance during a sale
  • Deleting the game would remove the game from the database

All this information will be stored on a H2 Database.

Architecture

The project currently has one table therefore this is no relationship in terms of multiple tables, however this is the Game table.

ERD

If an Order was to be introduced as a new table, then the relationship would be many-to-many as many different games can be in many different orders.

Risk Assessment

RiskAssessment

Project Tracking

Jira was used in order to track progress of the project using the sprint features to detect how much functionality was being completed in a set time.

Link to the Jira board: https://recipeofdisaster.atlassian.net/jira/software/projects/RFD/boards/1/backlog

The Board utilises User stories in perspective of the staff whom are the users of the library in their store, the customers who will interact with the database online and the developers they would hire to make things run more smoothly for customers.

  • To Do Would be the latest features that would need to be implemented in that particular sprint
  • In progress would mean not only is someone assigned to the task, but they are looking into implementing this feature
  • Done represents all features that have been added and have been tested, notes will be added if they have been implemented with hiccups

An example of a Sprint: jiraSShot

Testing

Testing was done within the STS framework using JUnit 5 and Mockito, they were designed using the assert equals, which means a value was set and later expected in order to test if the method is working. EclEmma was used in order to test the coverage of the entire project. A Test Coverage of 95.7% was attained. testCoverage

Front End Design

Although all the CRUD functionality has been created, there is a basic appearance of the website at this point. The user has the ability to create a new entry into the Game Library using the 3 input fields. The user is also able to delete the entry or update the price.

FEexample

Known Issues

Currently the only issue I have discovered is that when the user inputs data for the update field, which only intakes the price, this updates all the fields of the database entry, because it is a put method rather than a patch.

Future Improvements

There are a number of improvements that I would like to make:

  • If a user attempts to add another game with the same title I would prefer it to reject the entry.
  • Introduce a few more fields tables which interact with the game table to allow users to place orders and save them with unique order ids.
  • Aesthetic design of the entire web page would be better if more time was available to experiment with CSS. (Bootstrap would be the easy way out!)

Acknowledgements

Authors

Abdul Shaker

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages