You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by Apache Bloodhound <de...@bloodhound.apache.org> on 2014/03/18 19:17:08 UTC

[Apache Bloodhound] Proposals/BEP-0013 modified

Page "Proposals/BEP-0013" was changed by thimal
Diff URL: <https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0013?action=diff&version=2>
Revision 2
Changes:
-------8<------8<------8<------8<------8<------8<------8<------8<--------
Index: Proposals/BEP-0013
=========================================================================
--- Proposals/BEP-0013 (version: 1)
+++ Proposals/BEP-0013 (version: 2)
@@ -1,59 +1,121 @@
 
-= BEP <BEP number> : <BEP title> #overview
+= BEP 13 : Dynamic client-side autocompletion features for the Apache Bloodhound ticket system #overview
 
 [[PageOutline]]
 
-|| '''BEP''' || <BEP number> ||
-|| '''Title''' || <BEP title> ||
+|| '''BEP''' || 13 ||
+|| '''Title''' || Dynamic client-side autocompletion features for the Apache Bloodhound ticket system ||
 || '''Version''' || <leave blank> ||
 || '''Last-Modified''' || <leave blank> ||
-|| '''Author''' || Author With Email <us...@dom.ain>, Author Name Only, or The Bloodhound project (see [wiki:/Proposals#bep-header-preamble BEP preamble explained]) ||
+|| '''Author''' || Thimal Kempitiya <tk...@gmail.com> ||
 || '''Status''' || Draft ||
-|| '''Type''' || <BEP type (see [wiki:/Proposals#bep-types BEP types explained])> ||
+|| '''Type''' || Standards Track BEP ||
 || '''Content-Type''' || [wiki:PageTemplates/Proposals text/x-trac-wiki] ||
-|| '''Created''' || <leave blank> ||
-|| '''Post-History''' || <leave blank> ||
+|| '''Created''' ||  ||
+|| '''Post-History''' ||  ||
 
 ----
 
 == Abstract #abstract
 
-<Delete text in this section and add a short (~200 word) description of the technical issue being addressed. Take a look at sample abstract below>
-
-This template provides a boilerplate or sample template for creating your
-own BEPs.  In conjunction with the [wiki:/Proposals general content guidelines] and the [wiki:/Proposals/Formats/WikiFormatting WikiFormatting BEP guidelines]  
-, this should make it easy for you to conform your own
-BEPs to the format outlined below. See [#howto How to Use This Template] for further instructions.
-
-**Note**: if you are reading this template via the web, you should first try to create a new wiki page by selecting `ProposalsRst` |page template guide|.  **DO NOT EDIT THIS WIKI PAGE IN ORDER TO CREATE A NEW BEP! **
-
-If you would prefer not to use WikiFormatting markup in your BEP, please see  [wiki:/Proposals/Formats/RestructuredText reStructuredText BEP guidelines].
-
-== Motivation ==
-
-<The motivation is critical for BEPs that want to change the copy of ''Trac'' patched using vendor branch . It should clearly explain why the existing ''Bloodhound'' solution is inadequate to address the problem that the ''BEP'' solves. ''BEP'' submissions without sufficient motivation may be rejected outright. >
+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.
 
 == Proposal #proposal
 
-<The technical specification should describe any new features , detail its impact on the components architecture , mention what plugins will be included as a result , whether they are hosted by ​[http://trac-hacks.org trac-hacks.org] or not , and any other relevant technical subject . The specification should be detailed enough to allow competing, interoperable implementations for any of the current supported database platforms (e.g. ''SQLite'', ''Postgres'', ''MySQL'') and server technologies (e.g. ''Apache HTTPD server'', ''nginx'', ''mod_wsgi'', ''CGI'').. >
+Detailed Description of the Project
+
+Project is to enhance the ticket system of the Apache Bloodhound. Ticket System should assist the user by auto completing and giving suggestion when user type in ticket creating and modifying process. This will reduce the typing of users and assist them and also reduce the potential of errors.
+
+This project will enhance the bloodhound ticket system in the following way.
+
+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)
+
+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
+
+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.
+
+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).
+
+ 
+
+Autocomplete Users Component
+
+This will show list of users in Cc field  and Owner field. It show list of usernames according to the keys user press.
 
 == Rationale #rationale
 
-<The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work, e.g. how the feature is supported in other issue trackers or ''Trac'' hacks . The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion. Take a look at sample rationale below>
+There are Trac Hack plugins which will provide the similar features to this ( autocomplete user plugin, duplicate search plugin and keyword suggest plugin). But they are not supporting the bloodhound theme or the bloodhound multi products. Proposed solution will provide the these features which will be work with bloodhound theme (jQuery and bootstrap) and work with multi product environment. Proposed solution will be work as a plugin with 3 components. So the users can enable or disable features as they need.
+One alternative to this is build these fractures as internal part of bloodhound, but then it may not be enable or disable
 
-''BEP'' submissions come in a wide variety of forms, not all adhering to the format guidelines set forth below. Use this template, in conjunction with the [wiki:/Proposals general content guidelines] and the [wiki:/Proposals/Formats/WikiFormatting WikiFormatting BEP guidelines], to ensure that your ''BEP'' submission is easy to read and understand.
+== Approach #Approach
 
-This template allows to create BEPs and is very similar to [http://www.python.org/dev/peps/pep-0012 PEP 12] . However it has been optimized by moving long explanations to the [wiki:/Proposals/Formats/WikiFormatting WikiFormatting BEP guidelines] . If you are interested take a look at the  [?action=diff&old_version=1 differences]. The goal is to redact new BEPs just by following in-line instructions between angle brackets (i.e. **<** **>**) . Even if this will allow to write BEPs faster , it is highly recommended to read the [wiki:/Proposals/Formats/WikiFormatting WikiFormatting BEP guidelines] at least once in your lifetime to be aware of good practices and expected style rules . 
+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.
 
-== How to Use This Template #howto
+Here is rough description about what I'm going to do,
 
-<BEPs may include further sections. This is an example.>
+There are main two approaches, either to develop this as plugin to bloodhound or develop as core part of the bloodhound. I discussed this in developer mailing list and best approach I thins suitable is develop as a plugin with three components KeywordSuggest, DuplicateTicketSearch, and AutocompletUsers. But this may change according to the feedback from the community.
 
-Quick edits will consist in following the instructions inside angle brackets (i.e. **<** **>**) . That should be everything needed to write new BEPs. To be more informed about advanced considerations please read the [wiki:/Proposals general content guidelines] and the [wiki:/Proposals/Formats/WikiFormatting WikiFormatting BEP guidelines] . If there is no point in including one of the sections in this document then feel free to remove it.
+KeywordSuggest
 
-== Backwards Compatibility #backwards-compatibility
+This is the component to assist users with the keyword suggestion.
 
-<All BEPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The ''BEP'' must explain how to deal with these incompatibilities. ''BEP'' submissions without a sufficient backwards compatibility treatise may be rejected outright. >
+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.
+
+In front end need to create a better output for the keyword entering and display available keyword for the ticket.
+
+When entering new keywords plugin will suggest keywords base on the characters and can enter one keyword by pressing enter, to add this feature and to give better look my idea is to used the bootsrap tags input. So we can enter keywords by pressing enter key and remove them by clicking the x on keyword.
+
+DuplicateTicketSearch
+
+This will show list of related tickets to users to avoid duplicates.
+
+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. (need to check the possibility to use the Query API, I have not done many research on this so need to do bit research on this).
+
+ 
+
+AutocompleteUsers
+
+This will show list of users in Cc field and Owner field.
+
+AutocompleteUsers component, in back end is similar to the keywordSuggest component. So for this also I think it is better to user separate plain text to get data which will be dynamically populate when new users added.
+
+For the frond end it has two fields to update. Cc field would be same as the keyword field and owner field will give list of users according to the keys users type and only username can enter.
+
+
+== Approximate Schedule  #Approximate Schedule 
+
+Gsoc will be for 14 weeks and here is rough estimation of the work break down. But this will be change according to the work flow and the discussion with bloodhound community.
+
+community Bonding period:
+
+week 1-3 : start with the keyword suggest component and autocomplete user component, and create basic component for plugin. Added the plain text list
+
+week 4-5: Do the front end of keyword suggest and autocomplete user components. Test it with bloodhound environment without the BlooodhoundMultiproduct plugin  add test cases.
+
+week 6-7:Test the keyword suggest and autocomplete user components with BlooodhoundMultiproduct plugin and add necessary test cases.
+
+Mid Term Evaluation
+
+week 8-9-: start with the duplicateSearch component. Start with the trac Search api
+
+week 10-11: add the front end for the duplicate search and test it. Expand this to work with BloodhoundSearch API. Test it with bloodhound environment without the BlooodhoundMultiproduct plugin  add test cases.
+
+week 12-13 : Test the duplicate search component with BlooodhoundMultiproduct plugin and add necessary test cases.
+
+week 14 : complete test for plugin and add documentation
+
+Final Evaluation
 
 == Reference Implementation #reference-implementation
 
@@ -73,16 +135,12 @@
 
 == References #references
 
-<List the references included in BEP body>
 
-  1. PEP 1, PEP Purpose and Guidelines, Warsaw, Hylton
-     http://www.python.org/dev/peps/pep-0001/
-  2. PEP 9, Sample Plaintext PEP Template, Warsaw
-     http://www.python.org/dev/peps/pep-0009
-  2. PEP 12, Sample reStructuredText ''PEP'' Template, Goodger, Warsaw
-     http://www.python.org/dev/peps/pep-0012/
-  3. http://www.opencontent.org/openpub/
+  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 
 
+ 
 == Copyright #copyright
 
 <In this section all licensing issues should be meticulously exposed . Library and plugin dependencies are among the most important topics . On the other hand each BEP will be explicitly labelled with a copyright statement like shown below, so should not change that. Requests for a different copyright statement have to be posted to bloodhound-dev@incubator.apache.org . For more details consult [wiki:/Proposals#what-belongs-in-a-successful-bep BEP structure explained] .>
-------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 .