В работе

Умный pseudo-SQL фильтр с подсказками на Javascript/jQuery

Привет!

Есть такая интересная задача, которую надо решить (см. анимированный GIF рабочей версии в приложении к задаче):

Есть список документов, которые лежат в базе данных.

Каждый документ из этого списка имеет ссылки на ключевые слова, на теги, на тех, кто его создал, изменял и т.д. И хотелось бы иметь возможность отображать только какую-то часть из всех имеющихся документов. Поэтому нужен фильтр. Но фильтр не в виде выпадающих списков, чекбоксов и радио-кнопок, а гибкий и умный, в виде <textarea> с всплывающими подсказками (см. GIF).

На примере запроса покажу, какие есть группы ключевых слов и как они друг к другу относятся. Примеры валидных запросов:

1) documents

2) documents order by createdDate desc

3) documents ORDER BY createdDate DESC

4) help

5) history

6) documents and createdBy = currentUser() and createdDate = startOfDay() and priority in (Critical, High) ORDER BY assignee DESC

Итак, запросы 1), 4), 5) - есть набор простых, статических слов/фраз, с которых обязательно начинается любой запрос в фильтре. Само это слово самодостаточно и может быть использовано в качестве широчайшего фильтра. Физический смысл такого запроса - очертить область типов документов или типов запросов, по которым мы будем работать. Так, например, введенный "help" будет открывать страничку помощи, а не будет участвовать в запросе в базу. Введенный "history" сделает запрос в базу, но не в документы, а в историю всех запросов пользователя и выведет ее ему. И т.д.

После такого очерчивания может идти ужесточение условий. Условия связываются друг с другом логическими операторами "И", "ИЛИ". Имена условий могут быть как статическими, известными системе, так и динамическими, подбираемыми в отдельные списки из базы при открытии данной страницы. Значения условий также коррелируют с именами: если имя статическое, то и набор значений для этого имени статический, если имя динамическое (из базы), то и значения тоже динамические (из базы). Например: createdDate - статическое имя. Может иметь занчения: startOfDay(), startOfMonth() и т.д. или priority - динамическое, его создал и назвал так пользователь, оно из базы, и может иметь значения High, Low и др. Оно не может иметь значение startOfMonth().

Полную и подробную спецификацию подготовлю на днях. По GIF должна быть понятна трудоемкость задачи, чтобы можно было оценить свои силы, требуемое время и бюджет. В качестве JS библиотеки для автозаполнения можно использовать эту: [login to view URL] , или взять из нее часть кода, или полностью написать свою.

Требования к коду: читабельный, простой и красивый, функциональный код.

Спасибо за внимание!

Дополнительные пояснения:

Это только фронт-энд задача!
Нужно только умное формирование строки фильтра, которая затем будет отправлена в бек-энд.
Как именно бек-энд справится с запросом и что ответит и как это отобразить - не предмет этой задачи.

Техническое задание будет в виде html файла с заготовкой JS скрипта, в котором уже будут даны списки имен со значениями, с указанием какой из списков статический, а какой - динамический (т.к. это будет необходимо учитывать при построении подсказок).

Навыки: JavaScript, jQuery / Prototype, Архитектура ПО

Показать больше: wpf javascript sql, javascript sql server, javascript sql php, html css javascript sql engineer programming karachi, javascript sql server 2005, jsp javascript sql, ajax javascript sql, javascript sql database

О работодателе:
( 5 отзыв(-а, -ов) ) Saint-Petersburg, Russian Federation

ID проекта: #8374373

6 фрилансеров(-а) готовы выполнить эту работу в среднем за $167

deuxdev

Здравствуйте, Задача и правда интересная, однако без спеки я не могу оценить сроки. Стоимость указана демпинговая, мне важнее рейтинг. I’d like to tell you why I can provide the best service for you: I starte Больше

$111 USD за 14 дней(-я)
(7 отзывов(-а))
5.0
amisha90

Hi There, I will take only 3-4days to complete your project... I am totally confident to do your work properly... and 100% satisfaction I am an experienced web developer, proficient in algorithms and debugging of cod Больше

$277 USD за 6 дней(-я)
(14 отзывов(-а))
5.0
NCFSD

Добрый день. Мы команда разработчиков. Специализируемся исключительно на Web-разработке. Имеем опыт создания полноценных сайтов( [login to view URL], [login to view URL], [login to view URL]), лендингов ([login to view URL],helpcredit. Больше

$190 USD за 5 дней(-я)
(2 отзывов(-а))
4.2
mhsevan

Hello, I am Evan and currently working as a senior web developer in a web development company. I didn't work in freelancer that much. But I assure you that I am really good at any kind of php, mysql, javascript/jquery Больше

$200 USD за 7 дней(-я)
(9 отзывов(-а))
3.3
maximulyanov

Доброго времени суток! Интересная задача, которую я могу решить для вас. Для более точного определения этапов работы необходимо полное техническое задание, а так же информация по модели существующей базы данных .

$111 USD за 10 дней(-я)
(0 отзывов(-а))
0.0
yuriytigiev

Есть опыт разработки приложений на разных языка программирования! Данная задача показалось мне интересной и есть возможность повысить свою квалификацию при ее реализации.

$111 USD за 14 дней(-я)
(0 отзывов(-а))
0.0