Giter Site home page Giter Site logo

vaadin-docx-generator's Introduction

Document Generator

image

image

image

Это первая лабораторная работа по курсу "Разработка клиент-серверных бизнес-приложений"

шаг 1

  1. Создать шаблон документа в Microsoft Word формата .dotx или .docx.
  2. Вписать в колонтитулах свою Фамилию, Имя, Отчество, текущий год, курс, группу.
  3. Придумать любой текст документа, например, заявку, договор, гарантийный талон, зачетную книжку, журнал группы и т.п.
  4. В документе вставить не менее 3-х «мест для заполнения» конкретных текстовых данных. Например, в договоре могут быть такие места как: ФИО или реквизиты сторон, номер договора, дата договора.
  5. В шаблоне документа придумать таблицу, содержащую не менее четырех колонок. Таблица должна подходить по смыслу к придуманному шаблону документа. По смыслу одна из колонок обязательно должна содержать текст, одна – дату, и одна – числа с двумя знаками после запятой.
  6. Оставить в шаблоне таблицы одну строку-заголовок (с названиями), и одну пустую строку для будущих данных.
  7. Величину шрифта, начертание и цвет в заголовке таблицы должны быть одинаковыми для всех колонок, а в колонках для строк данных – обязательно все разные.
  8. Выравнивание заголовков колонок и самих данных следующее: даты – выравнивание по центру колонку, числа – по правому краю, остальные колонки – по левому краю или по ширине.

шаг 2

  1. Создать desktop, мобильное или WEB-приложение на любом языке программирования.
  2. Добавить на форму ваши данные: ФИО, год, курс, группа.
  3. Создать поля для ввода информации, которые потом будут переноситься в «места для заполнения» шаблона-документа Word.
  4. Создать на форме таблицу с таким же количеством, порядком, названиями колонок, как и в шаблоне документа Word. Шрифт, цвет и начертание – на ваше усмотрение.
  5. Создать действие (кнопку, ссылку, …) для заполнения (перезаполнения) на экране задаваемого пользователем количества строк таблицы. Данные в таблице генерировать любые случайные, но все строки должны быть разными.
  6. Даты везде отображать только в формате ДД.ММ.ГГГГ. Числовые данные генерировать разной длины (т.е. чтобы можно было протестировать сортировку “как числа” в пункте 8 ниже).
  7. Выравнивание в столбцах повторить как в шаблоне документа, т.е. текст по левому краю или ширине, даты – посередине, числа – по правому краю.
  8. Обеспечить сортировку данных в колонках таблицы по возрастанию и убыванию, при этом текст должен сортировать как текст, даты – как даты, а числа – как числа.
  9. Создать возможность вызова диалогового окна для выбора на диске созданного файла шаблона Word. Обеспечить фильтрацию выбора только файлов (.dotx и .docx).
  10. (требование для десктопных приложений) при открытии окна для выбора шаблона по умолчанию обязательно предлагать текущую папку откуда запущено приложение или где лежит шаблон.
  11. Создать кнопку (ссылку) «Создать документ». По нажатию должен открыться документ Word на основе выбранного шаблона. На данном шаге его заполнение не требуется.

шаг 3

  1. Автоматизировать экспорт данных с экранной формы в «места для заполнения» документа Microsoft Word.
  2. Автоматизировать заполнение таблицы в документе сгенерированными на экране данными.
  3. Форматирование текста и ячеек таблицы должно определяться самим шаблоном. Т.е. при изменении шаблона – должен соответствующим образом меняться результат, без необходимости внесения изменений в код программы.
  4. В зависимости от варианта исполнителя (номера в списке группы на сайте) автоматизировать следующее действие в созданном документе: Заменить все заглавные буквы на строчные
  5. Заполненный документ достаточно оставлять открытым на экране, т.е. его сохранение не требуется.
  6. Призовой шаг (по желанию) [количество набранных баллов удваивается]:
  7. Обеспечить быстрое заполнение таблицы размером не менее 10 тысяч строк. Под быстрым понимается любой метод, который обеспечит вам хотя бы 3-х кратное ускорение по сравнению с методом последовательной вставки значений в каждую ячейку. Если вам при этом удастся сохранить и форматирование колонок указанными стилями, то баллы утраиваются. (Подсказки вариантов решения: процедура ConvertToTable; через xml).

Running the application

The project is a standard Maven project. To run it from the command line, type mvnw (Windows), or ./mvnw (Mac & Linux), then open http://localhost:8080 in your browser.

You can also import the project to your IDE of choice as you would with any Maven project. Read more on how to set up a development environment for Vaadin projects (Windows, Linux, macOS).

Deploying to Production

To create a production build, call mvnw clean package -Pproduction (Windows), or ./mvnw clean package -Pproduction (Mac & Linux). This will build a JAR file with all the dependencies and front-end resources, ready to be deployed. The file can be found in the target folder after the build completes.

Once the JAR file is built, you can run it using java -jar target/documentgenerator-1.0-SNAPSHOT.jar

Project structure

  • MainView.java in src/main/java contains the navigation setup (i.e., the side/top bar and the main menu). This setup uses App Layout.
  • views package in src/main/java contains the server-side Java views of your application.
  • views folder in frontend/ contains the client-side JavaScript views of your application.
  • themes folder in frontend/ contains the custom CSS styles.

Useful links

Deploying using Docker

To build the Dockerized version of the project, run

docker build . -t documentgenerator:latest

Once the Docker image is correctly built, you can test it locally using

docker run -p 8080:8080 documentgenerator:latest

vaadin-docx-generator's People

Contributors

pischule avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.