ministryofjustice/Claim-for-Crown-Court-Defence

View on GitHub
ux/user-journey-advocates.gv

Summary

Maintainability
Test Coverage
digraph ADP_Advocate_Journey {
    compound     = true
    labelloc     = t
    ordering     = out
    splines     = ortho
    nodesep        = 2.4
    ranksep     = .9

    label         = "Claim for crown court defence - Advocate User Journey Map"
    fontsize    = 16
    size         = "11x8"

    graph  [ style="rounded, filled" fillcolor=grey80 fontname=Helvetica penwidth=0 fontsize=18 ]
    node   [ shape=box style=filled fillcolor=bisque fontname=Helvetica fontsize=16 height=1.2 width=3 ]
    edge   [ minlen=2 arrowsize=1.5 fontname=Helvetica fontsize=12 fontcolor=grey40 ]

    subgraph cluster_digital_channel {
        label="Digital Channel"

        browser [ label = "Web browser" ]
    }

    subgraph cluster_adp_digital_service {
        label="ADP Digital Service"

        sign_in [ label="Sign in\n\n/" ]
        feedback [ label="User feedback\n\n/feedback/new" ]
        feedback_submitted [ label="Submit feedback" fillcolor=darkolivegreen2 ]

        feedback -> feedback_submitted

        # Advocate user
        subgraph cluster_advocate {
            label="Advocate"
            fillcolor=grey90

            claims [ label="Your claims view\n\n/advocates" shape="folder" ]
            outstanding_claims [ label="Outstanding claims\n\n/advocates/claims/outstanding" shape=folder ]
            authorised_claims [ label="Authorised claims\n\n/advocates/claims/authorised" shape=folder ]
            archive [ label="Archive\n\n/advocates/claims/archived" ]
            delete_archive [ label="Automatically\ndelete archive item"  fillcolor=indianred1 ]

            account [ label="User account\n\n/advocates/admin/advocates/{id}" ]

            account -> {
                edit [ label="Edit" fillcolor=darkolivegreen2 ]
                change_password [ label="Change password" fillcolor=darkolivegreen2 ]
            }

            subgraph cluster_claim_submission {
                label="Claim submission"
                penwidth=1
                fillcolor=grey80
                style="filled,dotted"

                start_claim [ label="Start claim\n\n/advocates/claims/new" fillcolor=darkolivegreen2 ]
                edit_claim [ label="Edit claim\n\n/advocates/claims/{id}/edit" fillcolor=darkolivegreen2 ]
                import_claims [ label="Import claims" fillcolor=darkolivegreen2 ]
                create_draft [ label="Create draft\n\nVPV" fillcolor=darkolivegreen2 ]

                certification [ label="Certification\n\n/advocates/claims/{id}/certification/new" fillcolor=lightcyan2 ]
                confirmation [ label="Confirmation\n\n/advocates/claims/{id}/confirmation" fillcolor=lightcyan2 ]
            }

            # Claim cluster
            subgraph cluster_individual_claim {
                node [ fillcolor=antiquewhite ]
                penwidth=1
                label="Individual claim"
                style=filled
                fillcolor=bisque
                color=black

                submitted_claim [ label="Submitted" ]
                authorised_claim [ label="Authorised" ]
                refused_claim [ label="Refused" ]
                rejected_claim [ label="Rejected" ]
                part_authorised_claim [ label="Part-authorised" ]
                draft_claim [ label="Draft claim" ]

                delete_claim [ label="Delete claim\n\nVPV" fillcolor=indianred1 ]
                update_claim_status [ label="Apply for redetermination\nRequest written reasons" fillcolor=darkolivegreen2 ]
            }

            # Advocate admin
            subgraph cluster_advocate_admin {
                label="Admin"
                penwidth=3
                fillcolor=grey80
                color=gray50
                style="filled,dotted"

                manage_advocates [ label="Manage advocates\n\n/advocates/admin/advocates" ]
                manage_chamber [ label="Manage chamber\n\n/advocates/admin/chambers/{id}" ]

                # Admin connections
                manage_advocates -> {
                    add_advocate [ label="Add\n\n/advocates/admin/advocates/new" fillcolor=darkolivegreen2 ]
                    edit_advocate [ label="Edit\n\n/advocates/admin/advocates/{id}/edit" fillcolor=darkolivegreen2 ]
                    delete_advocate [ label="Delete\n\nVPV" fillcolor=indianred1 ]
                }

                manage_chamber -> {
                    edit_chamber [ label="Edit\n\n/advocates/admin/chambers/{id}/edit" fillcolor=darkolivegreen2 ]
                    generate_api_key [ label="Generate\n\nVPV" fillcolor=darkolivegreen2 ]
                }
            }
        }
    }

    # Advocate connections

    browser -> sign_in -> claims

    claims -> {
        outstanding_claims
        authorised_claims
    }

    claims -> archive [ taillabel="Archived after 8 weeks" labeldistance="7" labelangle="80"]
    claims -> { import_claims, start_claim }

    claims -> submitted_claim [ lhead=cluster_individual_claim ]

    archive -> delete_archive [ taillabel="After 8 weeks\nin archive" labeldistance="5" labelangle="-60" ]

    outstanding_claims -> submitted_claim
    authorised_claims -> authorised_claim

    rejected_claim -> create_draft -> edit_claim


    {
        refused_claim
        rejected_claim
        part_authorised_claim
    } -> archive

    {
        authorised_claim
        part_authorised_claim
        refused_claim
    } -> update_claim_status

    import_claims -> create_draft

    { start_claim, edit_claim } -> certification -> confirmation -> {
        start_claim
        claims
    }

    start_claim -> draft_claim

    draft_claim -> { edit_claim, delete_claim }

    # Stylistic only, used to move cluster underneath
    delete_claim -> manage_chamber [ style=invis ]
}