Hello, This is Vignesh looking for a project to be done based on building anagram engine using python, google app engine with jinja2 framework.
Anagram is a word in which the exact letters of a word can be reordered to make
a separate word. For example the word glare can have its letters reordered to
make large or lager or the word evil can be reordered to make veil or live.
Your engine is expected to store lists for these anagrams. As you will be
using a key value pair database it is recommended that to generate keys you
reorder the letters of a word in lexicographical order. The value should be a list
of words that contains the exact letters (and quantities) of the key.
A user should be able to store these lists independently as they may be
using different dictionaries for different tasks. The should be able to look for
sub-anagrams as well. A sub-anagram is a smaller collection of letters taken from
the original anagram to produce smaller words. e.g. for glare, sub-anagrams
might be ael to produce ale and aegr to produce rage
1) Write the shell of an application that has a working login/logout
2) a)Generate a model that will store a list of words under a common key
and will maintain a count of those words and how many letters each
b) Write a function that will take in a word and will sort all letters of
that word into lexicographical order this will be used as the key.
a) Have a link that will go to a separate page for adding in new words
to the dictionary (Bracket failure if not separate page).
b) Enable a user to add a word to their word list.
c) Keep the word lists separate from each user .
a)On the main page provide a form enabling a user to enter text and
search for the anagrams of that text.
b) Text entry should be restricted to alphabet characters only (Bracket
failure if numbers, punctuation or anything else can be entered).
c) Display the list of words that are anagrams of the entered word.
a)Add in a counter that will keep track of how many unique anagrams
there are and display this to the user
b) Add in a counter that will keep track of the total number of words
in the engine and display this to the user.
6)Maintain and update both counters in an optimal way (i.e. you don’t
query the entire database to work out these values on every request)
(Bracket failure if values computed by querying the entire database)
a) Add in the ability to take a wordlist through a newline seperated
text file in order to populate the dictionary.
7) Given an anagram calculate all the sub anagrams and also display
the words associated with them. (e.g. if I search for glare, I should
also get ale, rage, etc) down to a minimum of 3 letter anagrams
a) Have the sub anagram query in a seperate page
b) Modify your model to compute and store the sub anagrams of each
anagram using the same rules above.