• Android-плагін для офлайн-підпису PDF у польових оглядах з інтеграцією в існуючий застосунок

    17 годин тому
    • Бажаний бюджет до 420.62 USD
    • Очікує виконавця...
  • Є внутрішній Android-застосунок для польових інспекцій (Kotlin, Android 10-14, мінімум API 26). Інспектори працюють у зонах без зв’язку, заповнюють чек-лист, роблять фото, а наприкінці формують акт у PDF. Зараз PDF генерується на сервері, через що процес ламається офлайн. Потрібно зробити локальне формування та підпис PDF на пристрої з подальшою синхронізацією при появі мережі.

    Технічне середовище та обмеження
    - Проєкт: Kotlin, Gradle Kotlin DSL, MVVM, Coroutines/Flow, Hilt, Room, WorkManager, minSdk 26
    - Формат документів: PDF/A не потрібен, але PDF має відкриватися в Adobe Acrobat без помилок
    - Підпис: рукописний підпис стилусом/пальцем + timestamp, а також опціонально накладання на документ зображення печатки (PNG із прозорістю)
    - Офлайн: генерація PDF і постановка задачі на синхронізацію без доступу до мережі
    - Безпека: вихідні фото та підпис не можна писати у спільні каталоги, лише app-private storage; тимчасові файли мають видалятися

    Що вже є
    - Екран заповнення чек-листа, локальна база Room з даними огляду та фото, черга синхронізації на WorkManager
    - Серверний endpoint приймає готовий PDF як multipart і повертає serverDocumentId

    Що потрібно зробити
    - Додати модуль/пакет для локальної генерації PDF з даних огляду (текстові поля, таблиця пунктів, вбудовані фото з масштабуванням, нумерація сторінок)
    - Додати екран збору підпису: canvas з відстеженням тиску, згладжуванням ліній (bezier/kalman або аналог), кнопки очистити/повторити, прев’ю сторінки з місцем підпису
    - Реалізувати накладання підпису та печатки у визначену область останньої сторінки PDF з коректним масштабом незалежно від DPI пристрою
    - Додати офлайн-чергу: якщо мережі немає, зберігати згенерований PDF у внутрішнє сховище, створювати запис у Room, а WorkManager має відправити документ при появі мережі і проставити serverDocumentId
    - Додати базові інструментальні тести або перевірки, щоб зловити регресії генерації (наприклад, що PDF не порожній, містить очікувану кількість сторінок для великого набору фото)
    - Надати коротку документацію для розробників у вигляді README з описом архітектури та точок інтеграції

    Вимірювані критерії приймання
    1) У режимі польоту можна створити акт для огляду з мінімум 20 пунктів і 10 фото (по 3-5 МБ кожне), додати підпис, отримати PDF на пристрої без падінь і ANR.
    2) PDF відкривається на ПК в Adobe Acrobat і містить: заголовок, дані об’єкта, таблицю пунктів, вкладені фото, номер сторінки у форматі "X/Y", підпис у заданій області останньої сторінки.
    3) Після відновлення мережі WorkManager відправляє PDF на сервер, у локальній БД з’являється serverDocumentId, а локальний тимчасовий файл видаляється (або помічається для очищення, але реально очищається протягом 24 год).
    4) Пам’ять: під час генерації PDF з 10 фото застосунок не вилітає на пристроях з 4 ГБ RAM; великі зображення ресайзяться перед вбудовуванням у PDF.
    5) Код збирається в існуючому CI (Gradle), без додавання важких залежностей, які суттєво збільшують APK (погоджувана межа +8 МБ).

    Результат
    - PR або набір комітів у репозиторій із реалізацією генерації PDF, екраном підпису, офлайн-синхронізацією та мінімальними тестами, готовий до рев’ю.

    Бюджет обмежений, тому важлива прагматична реалізація без зайвого дизайну, але з надійною роботою офлайн і коректним PDF.
  • Як ви оцінюєте це завдання?

    Увійдіть в обліковий запис, щоб залишити свою оцінку.

    Усього оцінок: 0

Ваша пропозиція

Ви ще не залишили пропозицію до цього замовлення.
Натисніть «Запропонувати послугу», щоб надіслати свою пропозицію.

Потрібне схоже завдання?

Якщо завдання схоже на ваше, можна переглянути готові послуги в категорії або створити власне завдання з потрібним бюджетом, строками та вимогами.

Завдання «Android-плагін для офлайн-підпису PDF у польових оглядах з інтеграцією в існуючий застосунок» можна використати як орієнтир для свого брифа: що потрібно зробити, який результат потрібен і який бюджет вказати.