В работе

Умный 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