Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Здравствуйте!

Требуется написать скрипт (программу) javascript + php с WEB-интерфейсом для обработки текста (списков фраз и отдельных слов).

Или с использованием других языков программирования и технологий, которые обеспечат необходимую производительность обработки и скорость вывода данных в рабочие окна программы.

Возможность одновременной работы нескольких сотрудников с авторизацией или без авторизации (оба варианта).

Примерная логика работы скрипта:

В видимую (рабочую) область выводится три окна списков: 1-й, 2-й, 3-й.

1. Загружаем фразы путем загрузки файла или из буфера (через popup) – оба варианта.

2. При загрузке фраз, фразы разбиваются на отдельные уникальные слова и выводятся в левой колонке, из фраз удаляются все спецсимволы, слова из отдельного списка (delete.txt), прописанные построчно.

3. При перемещении по левому списку слов при помощи стрелок "вверх-вниз", в средней колонке выводятся только те фразы, которые содержат слово, на котором находится курсор в данный момент.

4. По горячей клавише "D" или "Стрелка вправо" (оба варианта) отмечаем нужное слово, слово прописывается в правый список. 

   По горячей клавише "A" или или "Стрелка влево" (оба варианта) – удаляем слово из правого списка.

5. В средней колонке выделяются цветом только фразы, в которых присутствуют слова из правой колонки, но, выводятся все фразы, в которых присутствует слово, на котором находится курсор в левой колонке.

6. В левой колонке выделяются цветом слова, которые имеются в правой колонке.

7. Пройдя все слова в левой колонке, и сформировав список нужных слов в правой колонке, выгружаем по кнопке "Сохранить результаты" следующие данные:

   1) Слова из правой колонки в файл .txt

   2) Выгружаем фразы из средней колонки в файл .txt, одновременно вырезая из фраз слова из правой колонки. 

   3) Выгружаем только отмеченные (выделенные цыетом) фразы из средней колонки, как есть, без дополнительных действий.

   4) Выгружаем только НЕ отмеченные (НЕ выделенные цыетом) фразы из средней колонки, как есть, без дополнительных действий.

8. При выгрузке во всех вариантах удаляем лишние пробелы.      

   

   – При выгрузке (в режиме с авторизацией) создаем на сервере папку с идентификатором проекта (логин_пользователя_самая короткая фраза из списка загружаемых фраз_текущие дата и время) и сохраняем в нее копии выгружаемых файлов.

   – При выгрузке (в режиме без авторизации) создаем на сервере папку с идентификатором проекта (самая короткая фраза из списка загружаемых фраз_текущие дата и время) и сохраняем в нее копии выгружаемых файлов.

   – Имена директорий (точнее, самые короткие фразы в именах) и файлов желательно создавать в кириллице, либо, если это затруднительно, создавать внутри директории сохраняемого проекта файл с именем типа name_project.txt с самой короткой фразой в проекте.

   

9. Возможность загрузки слов в правую колонку из файла или буфера (оба варианта) (возможность дополнения списка слов с удалением дублей при загрузке).

10. Ограничение типа загружаемых файлов – только .txt

      Ограничение на количество загружаемых строк – фраз (настраиваемая переменная, по умолчанию – 10 000 строк), лишние удаляются при загрузке.

      Ограничение на количество слов в строке (настраиваемая переменная, по умолчанию – 10 слов), лишние слова удаляются из строк при загрузке.

11. Фильтрация "опасных" запросов при импорте данных из буфера.

Желательно изначально написать скрипт максимально оптимизированным в плане производительности, т.к. скриптом будет пользоваться одновременно несколько пользователей.

Крайне важна скорость вывода фраз в среднюю колонку при переходах по словам в левой колонке.

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

Так же, желательно предусмотреть контроль текущего использования ресурсов сервера при запуске заданий, во избежание "падения" сервера, т.е. перед запуском очередного задания проверять, если в данный момент выполняются ресурсоемкие процессы, то, не запускать их все одновременно, а ставить в очередь, на выполнение, дожидаясь освобождения ресурсов сервера и выводя пользователям надпись, типа "Задание в очереди".

Возможна установка в будущем выделенного сервера, но, на начальном этапе планируется разместить скрипт на VPS.

4 года назад
Alexey-Dolgih
Алексей 
48 летРоссия
15 лет в сервисе
Был
год назад