Giter VIP home page Giter VIP logo

airport's Introduction

airport

This project is now up-to-date with the latest changes (basically everything we've covered in class throughout October). This means AssetClass, AssetType and Asset, some tests, and nicely-layered UI are implemented. We have also implemented ConditionRating and Service Status and tied them back to Assets.

Home assignments

  • implemented user stories AC03-AC05 and AC08-AC09 (skipped through AC06-AC07 per instructions)
  • made some progress with implementing AC10-15
  • made the user manual for the application

Developer Manual

  1. read the corresponding Asset Acquisition user story in the google drive folder, as well as analyse that story in the context of other user stories, planning ahead what functionality you might need
  2. create an issue in which you describe the problem, the solution and the expected outcome, capturing all the requirements as stated in the user story
  3. create a branch where you'll be working on your changes; the branch name has to correspond to the number of the issue you've created
  4. implement the main functionality (moder and/or UI), as well as tests (make sure they are green)
  5. commit the changes with a straightforward description, push the changes on the corresponding branch, and create a pull request in which reference the issue it resolves (# and number of the issue)
  6. the PR will be merged after there's at least one approving review

airport's People

Contributors

01es avatar andrianhevalo avatar myroslavarm avatar yaroslavboiko avatar

Watchers

 avatar  avatar  avatar

Forkers

yaroslavboiko

airport's Issues

Fix requirements for AssetClass

Description

There are several requirements that were not included in the previous PRs and due to the nature of the implementation I think it would be better to just gather them together in this one PR for this issue.

implement ConditionRatings for AssetType

Description

Should be able to add/define ConditionRatings for an AssetType.

  • entity ConditionRating with a single-member composite key condition:Integer and desc:String.

  • UI for reviewing, adding and defining new conditions.

  • testing functionality.

Expected outcome

Be able to describe the condition of an asset and to plan appropriate maintenance and/or replacement activities.

Add a user manual

  • a document describing progress on the project, as well as how to use the implemented application

  • has to be written in latex, with proper version control

User story 6

The Bulk Upload feature helps you upload or update multiple documents at the same time without needing to go to Add new document and select each document individually.

Description
System Engineer must be able to bulk upload and register Assets from a completed project. So that, all Assets developed/delivered by the project can be tracked and depreciated, and maintenance can be planned, scheduled and performed on them.

Acceptance criteria
In a bulk upload:
Asset description/record is created and associated with the relevant Asset Type;
A new, unique Asset Id has been generated and assigned to the Asset;
Relevant information (mandatory Asset attributes based on Asset Type) has been captured/populated.

This can be done with the usage of functionality which we provide for AC05 case ( register and classify an Asset).

User story 9

Description
Implement an opportunity to record the Role, Business Unit or Organisation that owns an Asset (or Asset Type)

Expected outcome
The system engineer knows who manages the budget for the Asset (or Asset Type).

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Acceptance criteria
Asset / Asset Type is associated with the applicable Asset Owner and
the date/time of the association is recorded.

Proper handling of key generation in case of exception

Description

We need to come up with a good way to handle key generation in case of an exception after an entity had its ID assigned but the database transaction was rolled back.

The idea is that we need to somehow store the key that was assigned to our asset even without saving the asset in the database. I.e. when we create Asset1 and then create and save Asset2 before Asset1, then actually Asset2 will have key 1 and Asset1, to the confusion of the user, will be 2. This is something that shouldn't happen and therefore we need to find a solution.

Approach to solving the problem

Check if asset wasn't saved at all -- if that's true, then simply generate a number and save the asset. If we get an exception and the asset is not saved, we reset the number to default.

Expected outcome

In case of concurrent changes, everything should work properly and the data shouldn't be "lost" because of running into problems with the ID being already assigned.

AC13 Identifying Regulatory Assets

Description

There needs to be a possibility to mark the Asset entity as a regulatory asset (see: activatable as example).

  • set Asset as regulatory

  • check for service interruptions

Expected outcome

Asset can be classified as a regulatory asset.
If an Asset is regulatory and there has been a service interruption (ServiceStatus is 'interrupted', for example), we need to be able to report it.

user_storie_8

Description

The main idea behind the implementation is that users (accountant, systems engineer, maintenance planner, maintenance planner) can change the assets to Capex that were raised to buy/pay for them - or the project that designed them / created them.

This is to ensure that assets can be tracked, depreciated and disposed of properly.

Functionalities can be made as a separate class or implemented directly in the Asset class. Therefore, in the previous way(realization of users' story), it is best to implement a separate class in the services directory.

Expected outcome

Capex or Project number is recorded against the specific Asset(s) that were acquired/developed;

And Asset(s) can be selected/tracked by the Capex or Project that they are associated to;

And (planned/unplanned) maintenance costs over the lifetime of the Asset(s) can be determined through the Work Orders associated to them.

User story 5

Description
System Engineer, Maintenance Planner, Maintenance Scheduler must have the right to register and classify an Asset

Expected outcome
System Engineer, Maintenance Planner, Maintenance Scheduler can track and depreciate Asset. Also, its maintenance can be planned, scheduled, and performed on it if required.

Acceptance criteria
Asset description/record is created and associated with the relevant Asset Type.
A new, unique Asset Id has been generated and assigned to the Asset.
Relevant information (mandatory Asset attributes based on Asset Type) has been captured/populated.

#2 - here we develop functionality for System Engineer to add and define Asset Class.

User story 11

Description
Entity 'AssetSchedulingDet' should be created as a one-2-one association with Asset. The following properties should be present at the beginning:

  • acquireDate: Date -- the date/time when the asset was created or purchased.

  • isMaintenanceBy: the Role, Business Unit or Organisation -- who is responsible for planning & scheduling maintenance & repairs of the Asset.

An instance of 'AssetSchedulingDet' should be saved at the same time as a new instance of Asset.

Expected outcome
There is information about who schedules maintenance & repairs the Asset.

implement ServiceStatus

Description

Should be able to add/define ServiceStatuses.
Possible states are: planned, operational, not in use, under repair, etc.

  • entity ServiceStatus with a single-member composite key name:String and desc:String.

  • UI for reviewing, adding and defining new states.

  • testing functionality.

Expected outcome

This will enable us to describe the current state of an asset
(by associating it to the appropriate service status)

implement AssetType (design)

Description

add/define a new Asset Type (subsets of Asset Classes)

  • activatable entity AssetType with a single-member composite key name:String and desc:String.

  • property assetClass: AssetClass to allocate asset types to asset classes.

  • UI for reviewing, editing and creating new asset type instances.

Expected outcome

Asset Type description/record is created and associated to the relevant Asset Class.

user_storie_7

Description

The main idea behind the implementation is that the system engineer was able to use data from existing Assets for new Assets (that is, it would be necessary to implement a data call from other objects of the same class). This is to avoid repeatedly entering the same data for multiple Assets.

Expected outcome

Users can select pre-populated fields/information from an Asset to be replicated/copied to other Assets.

improve test functionality

add better tests for:

  • ConditionRating class

  • ServiceStatus class

  • AssetDao and testing of the key generation error

AC12: Record Service Status for an Asset

Description

  • Create an entity AssetServiceStatus with the following properties:
  1. service status
  2. currentStatus
  3. currentOwnership
  • Cover the implemented functionality with tests

Excpected outcome
I know the status of the Asset, where it is, whether it is currently in service and what maintenance it requires.

Acceptance criteria
Asset is associated to the relevant Service Status and the date/time of the association/change of state is recorded.

AC015 implementing Maintenance Planner

Description

Specify the loading/usage rate of an asset.

  • MaintenancePlanner entity with String:name, String:description and Decimal:rate.

  • maintenancePlanner property for Asset.

Expected outcome

The typical/average loading or usage rate is recorded and captured for the Asset.

AssetClass entity

User Story

image

Description

Create entity type AssetClass.

Expected Outcome

Ability to create and edit asses classes.

Asset Class Model and UI

Description

  • Create an activatable entity AssetClass with a single-member composite property name: String. Also need property desc: String that is required.

  • Create Asset Class Master.

  • Create Asset Class Centre.

Expected outcome

The ability for users to enter, modify and search for asset classes.

User story 10

Description
Entity 'AssetControlDet' should be created as a one-2-one association with Asset. The following properties should be present at the beginning:

  • acquireDate: Date -- the date/time when the asset was created or purchased.

  • isOverseeingBy: the Role, Business Unit or Organisation -- who controls/operates the Asset (or Asset Type).

An instance of 'AssetControlDet' should be saved at the same time as a new instance of Asset.

Expected outcome
There is information about who controls the asset

AC14 Identifying Key Service Assets

Description

There needs to be a possibility to mark the Asset entity as a key service asset.

  • set Asset as key service

  • check for service interruptions

Approach

Clarify what is a key service asset.

Expected outcome

Asset can be classified as a key service asset.
If an Asset is a key service asset and there has been a service interruption (ServiceStatus is 'interrupted', for example), we need to be able to report it.

Fix issue 15

  • Make sure that the rate will be in the range from 0 to 100(create a validator).
  • Fix input format so it contains "%" symbol.
  • Cover with unit tests.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.