You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Olivier Heintz <ho...@ofbizextra.org> on 2016/12/15 10:09:56 UTC

Use Cases for POC

The goal of this mail is only two questions :
1. Is this form of use case like in this mail is usable for new UI POC ? (and new Doc POC and Selenium-Webdriver POC)
2. Is these use cases seem to be the correct to have correct POC ?

If answer to these two question seem to be yes, I will created a wiki confluence page with these use case and we can start to discuss on each detail
it's necessary to have a correct release of this document, usable for the POCs.

Because, I'm testing some documentation tools, these use cases are also readable on
https://olivier-heintz.gitbooks.io/use-cases-for-poc/content/

-----------------------------------

# Use cases for POC

Theses use cases are to be used for new UI POC, documentation associated and selenium unit task test.

All these use cases should be done with existing entities and services, if it's necessary to develop one, simplify the use case, the goal is UI, not
service or entity.

These use case description are done in a agile philosophy, only main point is present and during realization details choices will be discuss and done.

Preliminary remarks :
---------------------
1. In this document, the term "application" corresponding to "specialpurpose/component" in the ofbiz terminology
which is not same as a "applications/component" in ofbiz terminology.
An application is dedicated for a business purpose for a user type, it's build by assembling piece of ofbiz components, sometimes without any
specifics entities, services and screen (ex: CRM-B2C, CRM-B2B, SFA are 3 applications uses by sales men)

1. Each use case is on an "application" and is part of one of the menu of this application.
Of course, this document describe only menu-option needed by the use-case. As it's difficult to do a clear definition of "web-page" because it's
depending of theme/template, use case is for me at two level :

    1. screen, which can be well define
    2. page, which depend on default theme

  Of course, some of use case (screen or page) will be done by a previous one (ex : sometime edit is done by the same screen as add). It's even, one
of the re-usable important point (UI, Doc and Selenium)

1. Each time a line (or point) start by a "?" the question is "is this point is needed ?"

## Release and goal

Goal is the POC realization, not doing multiple super applications. POC realization should generate discussion and decision, each time be careful to
mainly discuss on UI, Doc or Selenium and not on use case business justification. Use case are to be realistic but mainly as a support for a specifics
UI, Doc or Selenium needed.

### V1

**Main Goal is to proof the technical points**. Of course UI re-organization is the driver for this phase, documentation start to work in parallel but
will wait first realization to test integration for help. For selenium unit task, it will be a simple usage of the new UI with the default theme, the
sole purpose being to check that test with default theme is simple.

So never mind if all cases is not done, the list exist to give different classic case what we will need to know how to process it. Some case which
seem to be duplicate from other can be use for beginner who want to help and check if the concept is understanding.

During V1 realization, UseCase list will be updated

### V2

**Main Goal is to check if** the solution is **useful for the different type of contributors**

* experiment developer
* beginner developer
* functional consultant for parameters
* functional consultant for personalization
* ? end user - for parameters ? (if it's still possible with the new architecture)

Use Case list will be use as a deployment plan. The list contains similar case to these which are realize in V1, so those on V2 can be achieve by all
types of contributors.

### Documentation Goal
- Apache OFBiz web site wiki
- OFBiz Help
- PDF ?

### Selenium test
1. demo data for each use case
1. selenium unit test for each screen
1. selenium scenario test for each page (or page group)

## Simple Party Management

### Which Sub-Application

1. in HR application, simple employee management
2. in CRM B2C application, simple customer (person) management
3. in eCommerce, simple profile page
4. in HR application, simple organization/place (group) management
5. in CRM B2B application, simple customer (company) management
6. in Facility application, simple worker management

### Which Party sub-component

1. Party - Person - PartyGroup
2. Contact Mech,
    - with postal address, phone and mail;
    - one or two fixes purpose (ex: phone fix number and mobile phone number)
3. Role
4. Party Identification
5. Party association
6. Not ~~UserLogin~~ because all Security entities should be use and it will generate a too large domain for this POC

### Which Screen

1. Party
   * find, list
   * A person
     * add / edit, show
   * A group
     * add / edit, show
   * A company
     * add / edit, show
   * show a synthesis view (party/person/company, contact informations, roles, Identification)
     * Person
     * Company
     * PartyGroup
1. Contact information
   * all contact informations (for one party / facility)
     * with and without purpose
     * with and without history
     * deactivated
   * add / edit postal address
   * add / edit mail
   * add / edit phone
2. Role
   * list for a party
   * add a role (for a parent RoleType)
   * add a role in two step :
     1. select parent RoleType
     2. select the role
   * remove a role
1. Party Identifications
   * list, add, remove

## HR Component, Employee management
Starting person management with the more complete form about person.
- Menu option to manage employee
   - find, list, show, add, edit and manage his
      - contact information
      - identification (3 idTypes, one mandatory, two optionals)
- template page with a header (or sidebar or ...) to show on which employee we are

### Use Case Screen :

1. find Person
    - simple form (only on party or person)
    - with an add button (which can be show or not depending on parameter or authorization)
-  Person list with an add button (which can be show or not depending on parameter or authorization)
-  add a Person
-  show a Person
-  show a Person with sub-menu with two options : contact informations and Identifications
-  edit a Person
-  List of all contact informations for a person, with an add button (which can be show or not depending on parameter or authorization)
-  add a postal address
-  add a mail
-  add a phone number (to go step by step, without purpose management, will be done in next Use Case group)
-  edit a postal address
-  edit a mail
-  edit a phone number
-  List of all identification number for a person, with an add button (which can be show or not depending on parameter or authorization)
-  add a identification number with choice of identification type
-  edit a identification number with choice of identification type
-  add a identification number with a fix identification type
-  edit a identification number with a fix identification type

### Use Case Page :

1. create a person
1. search a person
1. visualize a person
1. manage informations about a person
1. template page with a header (or sidebar or ...) to show on which employee we are, (for example to show all his knowledges, or his skills, or his
positions, or his ...)
1. manage informations about a person on one page, and with access at this page directly by a field (auto-completion on id, first, last name)

## CRM B2C, customer (person) management
The difference from previous use case group is :

1. person form is more simple than in HR
1. role will be used to characterize customer position (suspect, prospect, with_Quote, customer)

Menu option to manage employee
- find (with role field), list, show, add, edit and manage his
  - contact informations
  - identification (3 idTypes, one mandatory, two optionals)
- template page with a header (or sidebar or ...) to show on which customer we are

### Use Case Screen :

1. find Person with an add button (which can be show or not depending on parameter or authorization)
    - search field same as in HR find person
    - role field which can appear or not, when not appear a fix value has been put as parameters.
    - contact information field, phone, mail, town. These fields can be show or not by the user with a "deploy" button
-  Person list with an add button (which can be show or not depending on parameter or authorization)
    - role field appear or not, when not appear a fix value has been put as parameters, so only person with this role appear
-  add a Person, all main informations in the form
    - role
    - less field about person than in HR form
    - 1 postal address
    - 2 phone number
    - 1 identification number
-  show a Person, all main informations in the screen with indicator for contact information and identification when there are more data that what
it's show.
-  show a Person with sub-menu with options :
   - contact informations
   - Identifications
   - role history
   - change role : a direct action button
-  edit a Person, only "Person" field
-  a button bar to change role (ex: for a suspect, there are the 3 options), this use case is for having a action bar, in this business process case
it's maybe not a need, but for more complex object like order or task, it's a classical need.
-  List of all contact informations for a person, with one or multiple add buttons
   (which can be show or not depending on parameter or authorization)
   and purpose are show, it's the second step, with purpose management.
-  add a postal address (or just a purpose)
-  add a mail
-  add a phone number
-  edit a postal address
-  edit a mail
-  edit a phone number
-  List of all identification number for a person, with an add button (which can be show or not depending on parameter or authorization)
-  add a identification number with choice of identification type
-  edit a identification number with choice of identification type

### Use Case Page :

1. create a new entry in CRM (role is choose during creation)
1. search a "customer" (or suspect, prospect, ...)
1. visualize a "customer"
1. manage informations about a "customer"
1. template page with a header (or sidebar or ...) to show on which "customer" we are, (for example to show all his quotes, or his orders, or  ...)
1. manage informations about a person on one page, and with access at this page directly by a field (auto-completion on id, first, last name)

## eCommerce, simple profile page
The difference from previous use case will be mainly on Use Case Page because eCommerce theme could be more original and public user interface should
be, most of the time, more simple.

### Use Case Screen :

1. show the person, all main informations in the screen with indicator for contact information and identification when there are more data that what
it's show.
-  show the Person with sub-menu with options :
   - contact informations
   - Identifications
-  edit a Person, only "Person" field
-  List of all contact informations for a person, with an add button  and purpose are show, purpose is need for invoice or shipping.
-  add a postal address (or just a purpose)
-  add a mail
-  add a phone number
-  edit a postal address
-  edit a mail
-  edit a phone number

### Use Case Page :

1. visualize the profile (the person) with edit button
1. manage his contact informations
1. manage his identifications
1. All in one page, which can be look as a long page or using as a "angular style" depending on theme.

## HR component, simple organization/place (group) management
Now PartyGroup management (very simple), but with complex screen to manage hierarchy.
In this use case group we will use the word "group" for service or department, or subsiadiry.

- Menu option to manage the Company organization
   - manage group
   - associated employee in a group
   - manage a hierarchy of group

### Use Case Screen :

1. find group (with a specific partyType)
    - simple form (only on party or partyGroup)
    - with an add button (which can be show or not depending on parameter or authorization)
-  PartyGroup list with an add button (which can be show or not depending on parameter or authorization)
-  add a group
-  show a Person, all informations in screen with sub-menu with two options : contact informations and Identifications
-  edit a Group
-  List all contact informations for a group, with an add button (which can be show or not depending on parameter or authorization)
-  add a postal address
-  add a phone number
-  edit a postal address
-  edit a phone number
-  List all identification number for a group, with an add button (which can be show or not depending on parameter or authorization)
-  add a identification number with choice of identification type
-  edit a identification number with choice of identification type
-  add a identification number with a fix identification type
-  edit a identification number with a fix identification type
- List all person associated to the group with two add buttons (which can be, individually, show or not depending on parameter or authorization)
    - add a manager
    - add a member
- List all group associated to the group (the child) with two add buttons (which can be, individually, show or not depending on parameter or
authorization)
    - add an existing group as a child
    - create a new group and add it as a child
    - in the list, each group is a link to this screen, to be able to navigate top-down
    - a third button to go to the parent level, to be able to navigate bottom-up
    - the name of the group manager appear above the list
- ? List all parent group for a group or for a person ?
- show group hierarchy as a tree with action or detail at each level, top-down
- show group hierarchy as a tree with action or detail at each level, bottom-up


### Use Case Page :

1. search a group
1. manage a group
1. manage its contact informations
1. manage hierarchy step by step (parent to child or child to parent)
1. manage hierarchy with a tree view
1. in HR employee, show the tree, top-down or bottom-up with the template "for an employee"

## CRM B2B application, simple customer (company) management
For clarification, in these Use Cases, B2B is an other application than B2C.
The "CRM B2C & B2B" will be a third, but not in this list because it contains no specificity on screen-page definition

The main difference between B2C is :
1. company versus person,
2. contact management with PartyAssociation
3. ? customer organization management ?

### Use Case Screen :

1. find customer (a company (specific partyType)) with an add button
   (which can be show or not depending on parameter or authorization)
    - search field are on multiple entities with some part deploy or not
    - role field which can appear or not, when not appear a fix value has been put as parameters.
    - contact information field, phone, mail, town.
      These fields can be show or not by the user with a "deploy" button
-  Company list with an add button
   (which can be show or not depending on parameter or authorization)
    - role field appear or not, when not appear a fix value has been put as parameters, so only company with this role appear
-  add a Company, all main informations in the form
    - role
    - field from PartyGroup
    - 1 postal address
    - 2 phone number
    - 2 identification number
-  show a Company, all main informations in the screen
   with indicator for contact informations and identification when there are more data that what it's show.
-  show a Company with sub-menu with options :
   - contact informations
   - Identifications
   - role history
   - change role : a direct action button
-  edit a Company, only "Company" field
-  a button bar to change role (ex: for a suspect, there are the 3 options),
   this use case is for having a action bar,
   in this business process case it's maybe not a need, but for more complex object like order or task, it's a classical need.
-  List of all contact informations for a company, with an add button
   (which can be show or not depending on parameter or authorization)
   and purpose are show, (so, with purpose management).
-  add a postal address (or just a purpose)
-  add a mail
-  add a phone number with purpose
-  edit a postal address
-  edit a mail
-  edit a phone number
-  List of all identification number for a company, with an add button
   (which can be show or not depending on parameter or authorization)
-  add a identification number with choice of identification type
-  edit a identification number with choice of identification type
-  list of contact (person) associated to this company with an add button
   (which can be show or not depending on parameter or authorization)
    - a contact is a person with contact information
    - list with only one line per contact
    - list of block with contact details for each
-  edit a contact or his contact information

### Use Case Page :
Exactly the same as the CRMB2C

1. create a new entry in CRM (role is choose during creation)
1. search a "customer" (or suspect, prospect, ...)
1. visualize a "customer"
1. manage informations about a "customer"
1. template page with a header (or sidebar or ...) to show on which "customer" we are,
   (for example to show all his quotes, or his orders, or  ...)
1. manage informations about a company on one page, and with access at this page directly by a field (auto-completion on id, first, last name).
   Depending of the theme, can be used for a one page "angularJs style".

## Facility application, simple worker management

For this last use case group, it's a simplification of the previous one.
Only a very simple and short process for adding people.

It's the last one, because the goal is to check if it's easy and rapid to create \(or parametrize\) a new small application from existing one.

In the Warehouse Management application \(simple version OOTB\)

* in the administration menu
  * the user menu to manage internal user per facility
    In the standard business process, it will be used mainly for login and authorization, in our case we will only manage person, his phone number and
his facility \(where he's authorized\)
  * the facility menu to manage contact informations and person authorized


### Use Case Screen : {#facility-simple-worker-screens}

#### Already existing screen used

1. find Person
   * simple form \(only on party or person\)
   * with an add button
2. Person list with an add button
3. add a Person, simple form 3-6 fields
4. show a Person
5. show a Person with sub-menu with option to manage contact informations
6. edit a Person
7. List of all contact informations for a person, with one or multiple add button
8. add a mail
9. add a phone number
10. edit a mail
11. edit a phone number

#### New Screen

1. add a facility, simple form, if service exist, including some contact informations
2. List of all existing facility
3. List of all contact informations for a facility, with one or multiple add button
4. List of all persons associated to the facility, with two add button
   * add an existing person
   * create a new person and add it to the facility
5. List of all facility associated to a person, with one add button
   * add an existing facility


### Use Case Page :

1. manage facilities
2. manage persons
3. visualize a facility details \(info, contact informations, persons associated\)





Re: Use Cases for POC

Posted by Jacques Le Roux <ja...@les7arts.com>.
Hi Olivier,

I began to read, really began only read the 1st 3 pages :) Much easier to read directly at 
https://olivier-heintz.gitbooks.io/use-cases-for-poc/content/ than the copy in email

It seems this proposition is not related to the efforts recently announced by Anuj Jain, Shubham Agrawal, Aayushi Gupta and Renuka Srishti. Just 
saying because maybe a common effort would help?

BTW it's not quite clear to me because on page 1 you say

<<In this document, the term "application" corresponding to "specialpurpose/component" in the ofbiz terminology which is not same as a 
"applications/component" in ofbiz terminology.>>

but on the other hand on page 3 you refer to

 1. n HR application, simple employee management
 2. in CRM B2C application, simple customer (person) management
 3. in eCommerce, simple profile page
 4. in HR application, simple organization/place (group) management
 5. in CRM B2B application, simple customer (company) management
 6. in Facility application, simple worker management

which are not all specialpurpose/components. And what correspond to "CRM B2C/B2B" in OFBiz parlance? I guess it's related with the SFA webapp?

Jacques


Le 15/12/2016 � 11:09, Olivier Heintz a �crit :
> The goal of this mail is only two questions :
> 1. Is this form of use case like in this mail is usable for new UI POC ? (and new Doc POC and Selenium-Webdriver POC)
> 2. Is these use cases seem to be the correct to have correct POC ?
>
> If answer to these two question seem to be yes, I will created a wiki confluence page with these use case and we can start to discuss on each detail
> it's necessary to have a correct release of this document, usable for the POCs.
>
> Because, I'm testing some documentation tools, these use cases are also readable on
> https://olivier-heintz.gitbooks.io/use-cases-for-poc/content/
>
> -----------------------------------
>
> # Use cases for POC
>
> Theses use cases are to be used for new UI POC, documentation associated and selenium unit task test.
>
> All these use cases should be done with existing entities and services, if it's necessary to develop one, simplify the use case, the goal is UI, not
> service or entity.
>
> These use case description are done in a agile philosophy, only main point is present and during realization details choices will be discuss and done.
>
> Preliminary remarks :
> ---------------------
> 1. In this document, the term "application" corresponding to "specialpurpose/component" in the ofbiz terminology
> which is not same as a "applications/component" in ofbiz terminology.
> An application is dedicated for a business purpose for a user type, it's build by assembling piece of ofbiz components, sometimes without any
> specifics entities, services and screen (ex: CRM-B2C, CRM-B2B, SFA are 3 applications uses by sales men)
>
> 1. Each use case is on an "application" and is part of one of the menu of this application.
> Of course, this document describe only menu-option needed by the use-case. As it's difficult to do a clear definition of "web-page" because it's
> depending of theme/template, use case is for me at two level :
>
>      1. screen, which can be well define
>      2. page, which depend on default theme
>
>    Of course, some of use case (screen or page) will be done by a previous one (ex : sometime edit is done by the same screen as add). It's even, one
> of the re-usable important point (UI, Doc and Selenium)
>
> 1. Each time a line (or point) start by a "?" the question is "is this point is needed ?"
>
> ## Release and goal
>
> Goal is the POC realization, not doing multiple super applications. POC realization should generate discussion and decision, each time be careful to
> mainly discuss on UI, Doc or Selenium and not on use case business justification. Use case are to be realistic but mainly as a support for a specifics
> UI, Doc or Selenium needed.
>
> ### V1
>
> **Main Goal is to proof the technical points**. Of course UI re-organization is the driver for this phase, documentation start to work in parallel but
> will wait first realization to test integration for help. For selenium unit task, it will be a simple usage of the new UI with the default theme, the
> sole purpose being to check that test with default theme is simple.
>
> So never mind if all cases is not done, the list exist to give different classic case what we will need to know how to process it. Some case which
> seem to be duplicate from other can be use for beginner who want to help and check if the concept is understanding.
>
> During V1 realization, UseCase list will be updated
>
> ### V2
>
> **Main Goal is to check if** the solution is **useful for the different type of contributors**
>
> * experiment developer
> * beginner developer
> * functional consultant for parameters
> * functional consultant for personalization
> * ? end user - for parameters ? (if it's still possible with the new architecture)
>
> Use Case list will be use as a deployment plan. The list contains similar case to these which are realize in V1, so those on V2 can be achieve by all
> types of contributors.
>
> ### Documentation Goal
> - Apache OFBiz web site wiki
> - OFBiz Help
> - PDF ?
>
> ### Selenium test
> 1. demo data for each use case
> 1. selenium unit test for each screen
> 1. selenium scenario test for each page (or page group)
>
> ## Simple Party Management
>
> ### Which Sub-Application
>
> 1. in HR application, simple employee management
> 2. in CRM B2C application, simple customer (person) management
> 3. in eCommerce, simple profile page
> 4. in HR application, simple organization/place (group) management
> 5. in CRM B2B application, simple customer (company) management
> 6. in Facility application, simple worker management
>
> ### Which Party sub-component
>
> 1. Party - Person - PartyGroup
> 2. Contact Mech,
>      - with postal address, phone and mail;
>      - one or two fixes purpose (ex: phone fix number and mobile phone number)
> 3. Role
> 4. Party Identification
> 5. Party association
> 6. Not ~~UserLogin~~ because all Security entities should be use and it will generate a too large domain for this POC
>
> ### Which Screen
>
> 1. Party
>     * find, list
>     * A person
>       * add / edit, show
>     * A group
>       * add / edit, show
>     * A company
>       * add / edit, show
>     * show a synthesis view (party/person/company, contact informations, roles, Identification)
>       * Person
>       * Company
>       * PartyGroup
> 1. Contact information
>     * all contact informations (for one party / facility)
>       * with and without purpose
>       * with and without history
>       * deactivated
>     * add / edit postal address
>     * add / edit mail
>     * add / edit phone
> 2. Role
>     * list for a party
>     * add a role (for a parent RoleType)
>     * add a role in two step :
>       1. select parent RoleType
>       2. select the role
>     * remove a role
> 1. Party Identifications
>     * list, add, remove
>
> ## HR Component, Employee management
> Starting person management with the more complete form about person.
> - Menu option to manage employee
>     - find, list, show, add, edit and manage his
>        - contact information
>        - identification (3 idTypes, one mandatory, two optionals)
> - template page with a header (or sidebar or ...) to show on which employee we are
>
> ### Use Case Screen :
>
> 1. find Person
>      - simple form (only on party or person)
>      - with an add button (which can be show or not depending on parameter or authorization)
> -  Person list with an add button (which can be show or not depending on parameter or authorization)
> -  add a Person
> -  show a Person
> -  show a Person with sub-menu with two options : contact informations and Identifications
> -  edit a Person
> -  List of all contact informations for a person, with an add button (which can be show or not depending on parameter or authorization)
> -  add a postal address
> -  add a mail
> -  add a phone number (to go step by step, without purpose management, will be done in next Use Case group)
> -  edit a postal address
> -  edit a mail
> -  edit a phone number
> -  List of all identification number for a person, with an add button (which can be show or not depending on parameter or authorization)
> -  add a identification number with choice of identification type
> -  edit a identification number with choice of identification type
> -  add a identification number with a fix identification type
> -  edit a identification number with a fix identification type
>
> ### Use Case Page :
>
> 1. create a person
> 1. search a person
> 1. visualize a person
> 1. manage informations about a person
> 1. template page with a header (or sidebar or ...) to show on which employee we are, (for example to show all his knowledges, or his skills, or his
> positions, or his ...)
> 1. manage informations about a person on one page, and with access at this page directly by a field (auto-completion on id, first, last name)
>
> ## CRM B2C, customer (person) management
> The difference from previous use case group is :
>
> 1. person form is more simple than in HR
> 1. role will be used to characterize customer position (suspect, prospect, with_Quote, customer)
>
> Menu option to manage employee
> - find (with role field), list, show, add, edit and manage his
>    - contact informations
>    - identification (3 idTypes, one mandatory, two optionals)
> - template page with a header (or sidebar or ...) to show on which customer we are
>
> ### Use Case Screen :
>
> 1. find Person with an add button (which can be show or not depending on parameter or authorization)
>      - search field same as in HR find person
>      - role field which can appear or not, when not appear a fix value has been put as parameters.
>      - contact information field, phone, mail, town. These fields can be show or not by the user with a "deploy" button
> -  Person list with an add button (which can be show or not depending on parameter or authorization)
>      - role field appear or not, when not appear a fix value has been put as parameters, so only person with this role appear
> -  add a Person, all main informations in the form
>      - role
>      - less field about person than in HR form
>      - 1 postal address
>      - 2 phone number
>      - 1 identification number
> -  show a Person, all main informations in the screen with indicator for contact information and identification when there are more data that what
> it's show.
> -  show a Person with sub-menu with options :
>     - contact informations
>     - Identifications
>     - role history
>     - change role : a direct action button
> -  edit a Person, only "Person" field
> -  a button bar to change role (ex: for a suspect, there are the 3 options), this use case is for having a action bar, in this business process case
> it's maybe not a need, but for more complex object like order or task, it's a classical need.
> -  List of all contact informations for a person, with one or multiple add buttons
>     (which can be show or not depending on parameter or authorization)
>     and purpose are show, it's the second step, with purpose management.
> -  add a postal address (or just a purpose)
> -  add a mail
> -  add a phone number
> -  edit a postal address
> -  edit a mail
> -  edit a phone number
> -  List of all identification number for a person, with an add button (which can be show or not depending on parameter or authorization)
> -  add a identification number with choice of identification type
> -  edit a identification number with choice of identification type
>
> ### Use Case Page :
>
> 1. create a new entry in CRM (role is choose during creation)
> 1. search a "customer" (or suspect, prospect, ...)
> 1. visualize a "customer"
> 1. manage informations about a "customer"
> 1. template page with a header (or sidebar or ...) to show on which "customer" we are, (for example to show all his quotes, or his orders, or  ...)
> 1. manage informations about a person on one page, and with access at this page directly by a field (auto-completion on id, first, last name)
>
> ## eCommerce, simple profile page
> The difference from previous use case will be mainly on Use Case Page because eCommerce theme could be more original and public user interface should
> be, most of the time, more simple.
>
> ### Use Case Screen :
>
> 1. show the person, all main informations in the screen with indicator for contact information and identification when there are more data that what
> it's show.
> -  show the Person with sub-menu with options :
>     - contact informations
>     - Identifications
> -  edit a Person, only "Person" field
> -  List of all contact informations for a person, with an add button  and purpose are show, purpose is need for invoice or shipping.
> -  add a postal address (or just a purpose)
> -  add a mail
> -  add a phone number
> -  edit a postal address
> -  edit a mail
> -  edit a phone number
>
> ### Use Case Page :
>
> 1. visualize the profile (the person) with edit button
> 1. manage his contact informations
> 1. manage his identifications
> 1. All in one page, which can be look as a long page or using as a "angular style" depending on theme.
>
> ## HR component, simple organization/place (group) management
> Now PartyGroup management (very simple), but with complex screen to manage hierarchy.
> In this use case group we will use the word "group" for service or department, or subsiadiry.
>
> - Menu option to manage the Company organization
>     - manage group
>     - associated employee in a group
>     - manage a hierarchy of group
>
> ### Use Case Screen :
>
> 1. find group (with a specific partyType)
>      - simple form (only on party or partyGroup)
>      - with an add button (which can be show or not depending on parameter or authorization)
> -  PartyGroup list with an add button (which can be show or not depending on parameter or authorization)
> -  add a group
> -  show a Person, all informations in screen with sub-menu with two options : contact informations and Identifications
> -  edit a Group
> -  List all contact informations for a group, with an add button (which can be show or not depending on parameter or authorization)
> -  add a postal address
> -  add a phone number
> -  edit a postal address
> -  edit a phone number
> -  List all identification number for a group, with an add button (which can be show or not depending on parameter or authorization)
> -  add a identification number with choice of identification type
> -  edit a identification number with choice of identification type
> -  add a identification number with a fix identification type
> -  edit a identification number with a fix identification type
> - List all person associated to the group with two add buttons (which can be, individually, show or not depending on parameter or authorization)
>      - add a manager
>      - add a member
> - List all group associated to the group (the child) with two add buttons (which can be, individually, show or not depending on parameter or
> authorization)
>      - add an existing group as a child
>      - create a new group and add it as a child
>      - in the list, each group is a link to this screen, to be able to navigate top-down
>      - a third button to go to the parent level, to be able to navigate bottom-up
>      - the name of the group manager appear above the list
> - ? List all parent group for a group or for a person ?
> - show group hierarchy as a tree with action or detail at each level, top-down
> - show group hierarchy as a tree with action or detail at each level, bottom-up
>
>
> ### Use Case Page :
>
> 1. search a group
> 1. manage a group
> 1. manage its contact informations
> 1. manage hierarchy step by step (parent to child or child to parent)
> 1. manage hierarchy with a tree view
> 1. in HR employee, show the tree, top-down or bottom-up with the template "for an employee"
>
> ## CRM B2B application, simple customer (company) management
> For clarification, in these Use Cases, B2B is an other application than B2C.
> The "CRM B2C & B2B" will be a third, but not in this list because it contains no specificity on screen-page definition
>
> The main difference between B2C is :
> 1. company versus person,
> 2. contact management with PartyAssociation
> 3. ? customer organization management ?
>
> ### Use Case Screen :
>
> 1. find customer (a company (specific partyType)) with an add button
>     (which can be show or not depending on parameter or authorization)
>      - search field are on multiple entities with some part deploy or not
>      - role field which can appear or not, when not appear a fix value has been put as parameters.
>      - contact information field, phone, mail, town.
>        These fields can be show or not by the user with a "deploy" button
> -  Company list with an add button
>     (which can be show or not depending on parameter or authorization)
>      - role field appear or not, when not appear a fix value has been put as parameters, so only company with this role appear
> -  add a Company, all main informations in the form
>      - role
>      - field from PartyGroup
>      - 1 postal address
>      - 2 phone number
>      - 2 identification number
> -  show a Company, all main informations in the screen
>     with indicator for contact informations and identification when there are more data that what it's show.
> -  show a Company with sub-menu with options :
>     - contact informations
>     - Identifications
>     - role history
>     - change role : a direct action button
> -  edit a Company, only "Company" field
> -  a button bar to change role (ex: for a suspect, there are the 3 options),
>     this use case is for having a action bar,
>     in this business process case it's maybe not a need, but for more complex object like order or task, it's a classical need.
> -  List of all contact informations for a company, with an add button
>     (which can be show or not depending on parameter or authorization)
>     and purpose are show, (so, with purpose management).
> -  add a postal address (or just a purpose)
> -  add a mail
> -  add a phone number with purpose
> -  edit a postal address
> -  edit a mail
> -  edit a phone number
> -  List of all identification number for a company, with an add button
>     (which can be show or not depending on parameter or authorization)
> -  add a identification number with choice of identification type
> -  edit a identification number with choice of identification type
> -  list of contact (person) associated to this company with an add button
>     (which can be show or not depending on parameter or authorization)
>      - a contact is a person with contact information
>      - list with only one line per contact
>      - list of block with contact details for each
> -  edit a contact or his contact information
>
> ### Use Case Page :
> Exactly the same as the CRMB2C
>
> 1. create a new entry in CRM (role is choose during creation)
> 1. search a "customer" (or suspect, prospect, ...)
> 1. visualize a "customer"
> 1. manage informations about a "customer"
> 1. template page with a header (or sidebar or ...) to show on which "customer" we are,
>     (for example to show all his quotes, or his orders, or  ...)
> 1. manage informations about a company on one page, and with access at this page directly by a field (auto-completion on id, first, last name).
>     Depending of the theme, can be used for a one page "angularJs style".
>
> ## Facility application, simple worker management
>
> For this last use case group, it's a simplification of the previous one.
> Only a very simple and short process for adding people.
>
> It's the last one, because the goal is to check if it's easy and rapid to create \(or parametrize\) a new small application from existing one.
>
> In the Warehouse Management application \(simple version OOTB\)
>
> * in the administration menu
>    * the user menu to manage internal user per facility
>      In the standard business process, it will be used mainly for login and authorization, in our case we will only manage person, his phone number and
> his facility \(where he's authorized\)
>    * the facility menu to manage contact informations and person authorized
>
>
> ### Use Case Screen : {#facility-simple-worker-screens}
>
> #### Already existing screen used
>
> 1. find Person
>     * simple form \(only on party or person\)
>     * with an add button
> 2. Person list with an add button
> 3. add a Person, simple form 3-6 fields
> 4. show a Person
> 5. show a Person with sub-menu with option to manage contact informations
> 6. edit a Person
> 7. List of all contact informations for a person, with one or multiple add button
> 8. add a mail
> 9. add a phone number
> 10. edit a mail
> 11. edit a phone number
>
> #### New Screen
>
> 1. add a facility, simple form, if service exist, including some contact informations
> 2. List of all existing facility
> 3. List of all contact informations for a facility, with one or multiple add button
> 4. List of all persons associated to the facility, with two add button
>     * add an existing person
>     * create a new person and add it to the facility
> 5. List of all facility associated to a person, with one add button
>     * add an existing facility
>
>
> ### Use Case Page :
>
> 1. manage facilities
> 2. manage persons
> 3. visualize a facility details \(info, contact informations, persons associated\)
>
>
>
>
>