Page "Proposals/BEP-0013" was changed by thimal Diff URL: <https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0013?action=diff&version=9> Revision 9 Changes: -------8<------8<------8<------8<------8<------8<------8<------8<-------- Index: Proposals/BEP-0013 ========================================================================= --- Proposals/BEP-0013 (version: 8) +++ Proposals/BEP-0013 (version: 9) @@ -18,7 +18,7 @@ == Abstract #abstract -Ticket system need to assist users when creating and modifying ticket to reduce potential errors and to minimize the amount need to type by the users by auto completing the fields. +Ticket system need to assist users when creating and modifying ticket to reduce potential errors and to minimize the amount need to type by the users by auto completing the fields. When creating tickets suggest duplicate tickets to avoid the creation of duplicate tickets. This also help when using custom query in keywords, owner, Cc fields. == Proposal #proposal @@ -31,19 +31,19 @@ Autocomplete the Owner and Cc fields from a list of valid users. Autocomplete the keywords from list of keywords that have been user to date Search for duplicate tickets as the ticket summary is entered -Project will have two distinct parts plugin component in server side and client side impementation in ajax, javascript (jQuery and bootstrap) +Project will have two distinct parts plugin components in server side and client side implementation in ajax, javascript (jQuery and bootstrap) Deliverables -Main aim of this project is to develop a module that can assist the users in the ticket creating and modifying process by auto-completing the field values. Project will deliver three main components +Main aim of this project is to develop a module that can assist the users in the ticket creating and modifying process by auto-completing the field values. Project will deliver three main plugins that are under the Bloodhound Theme plugin. Keyword Suggest Component -This component will suggest keywords in the existing tickets and suggest them in order of the frequency of usage ( or alphabetical order) and according to the combination of characters entered by the users. Keywords list will be suggest by only pressing the enter key according to the frequency of usage. Suggest these keywords without case sensitivity of user entered characters. +This component will suggest keywords in the existing tickets and suggest them in order of the frequency of usage and according to the combination of characters entered by the users. Keywords list will be suggested when focus on the field according to the frequency of usage. Suggest these keywords without case sensitivity of user entered characters. Duplicate Ticket Search Component -This will show list of related tickets based on the summary field and if possible with description field (need to check the performance) on the relevant product. Suggest list have maximum limit (limit need to decide with discussion with community). +This will show list of related tickets based on the summary field and if possible with description field on the relevant product. When user is not selected a product then show possible duplicate tickets in all products. Suggest list have maximum limit (max limit for ticket page is 15 and max limit in popup ticket create component is 5). When there is more possible duplicate tickets than this show link to search all duplicate tickets. @@ -57,11 +57,11 @@ Proposed solution will be work as a part of the BloodhoundThemePlugin with 3 components. So the users can enable or disable features as they need. -One alternative to this is build these fractures as separate plugin bloodhound, but as these are basic features, no need to clutter the bloodhound project with another plugin. Also as part of BloodhoundThemePlugin it can provide all the features provided as a separate plugin (enabling and disabling features). So the best way to do this is as a part of BloodhoundThemePlugin as discussed in the developer mailing list. (But this may be changed according to the discussion with the bloodhound community) +One alternative to this is build these fractures as separate plugin bloodhound, but as these are basic features, no need to clutter the bloodhound project with another plugin. Also as part of BloodhoundThemePlugin it can provide all the features provided as a separate plugin (enabling and disabling features). So the best way to do this is as a part of BloodhoundThemePlugin as discussed in the developer mailing list. == Approach #Approach -Existing autocomplete plugin of trac give good insight about the structure (keyword Suggestion Plugin, Duplicate Ticket Plugin , Autocomplete User Plugin). for the basic structure I used the same structure in these plugin. +Existing autocomplete plugins of trac give good insight about the structure (keyword Suggestion Plugin, Duplicate Ticket Plugin , Autocomplete User Plugin). for the basic structure I used the same structure in these plugin. Here is rough description about what I'm going to do, @@ -73,7 +73,7 @@ Back end part need to access the database of the existing ticket to get detail about the keywords and need to keep track of the frequency of each keyword used irrespective of the case sensitivity of characters. -Getting data from database related to keywords may be a problem with the performance. As solution to this I hope to use a plain text list of keywords and to keep track of frequency of each keyword. So the keywords can directly can be get from list and need to populate dynamically the list when user added new keyword. Also need to populate the list for the first time when starting the plugin. +Getting data from database related to keywords have done using direct sql query. To avoid the performance issue rertiive all the keywords from database at one time and send it to the page as JSON object. In front end need to create a better output for the keyword entering and display available keyword for the ticket. @@ -86,7 +86,8 @@ This has two approaches first is to use the Ticket Query API, other one is to use the BloodhoundSearch API. But to give more support to users to find the duplicate ticket it need to search whole phrase typed in the summary field, part of the phrase typed in summary field and significant words typed in summary field. To search all these at once it is better to use BloodhoundSearch API. As the Ticket Query API search only the exact phrase or word provide to it. (but need to check the performance) For this it need to use the BloodhoundSearch API, But due to the complexity in powerfulness of BloodhoundSearch API I hope to start with the TracSearch API and get the component to work with the TracSearch API and then move into the BloodhoundSearch API, as a incremental development. - +Even though there TracSearch and BloodhoundSearch APIs available used method for search of duplicate tickets is direct sql query which is based on the TracSearch. This method is used as it is fast compare to BloodhoundSearch API (it only search for duplicate tickets and other overheads are low), also partial combinations of the phrase entered need to search to find potential duplicate tickets. +This may be changed to use Solr search in future. AutocompleteUsers @@ -141,9 +142,9 @@ == References #references - 1. Keyword Suggest Plugin :http://trac-hacks.org/wiki/KeywordSuggestPlugin - 2. Autocomplete User Plugin :http://trac-hacks.org/wiki/KeywordSuggestPlugin - 3. Duplicate Search Plugin : http://trac-hacks.org/wiki/KeywordSuggestPlugin + 1. Keyword Suggest Plugin: http://trac-hacks.org/wiki/KeywordSuggestPlugin + 2. Autocomplete User Plugin: https://trac-hacks.org/wiki/AutocompleteUsersPlugin + 3. Duplicate Search Plugin: https://trac-hacks.org/wiki/DuplicateTicketSearchPlugin == Copyright #copyright -------8<------8<------8<------8<------8<------8<------8<------8<--------
-- Page URL: <https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0013> Apache Bloodhound <https://issues.apache.org/bloodhound/> The Apache Bloodhound issue tracker This is an automated message. Someone added your email address to be notified of changes on 'Proposals/BEP-0013' page. If it was not you, please report to .
