Files
Aknaproff/README.md
Deploy Bot 64403d6fd6 v4.1.21: Реструктуризация проекта для Synology ARM
- Реструктуризация: src/ разбит на middleware/, utils/, repositories/ (удалены), routes/ (удалены)
- Добавлен src/original-html.ts — полный HTML с reportModal
- Добавлен src/index.tsx.backup — React-компонент с reportModal
- Миграции переименованы (0001_initial_schema.sql)
- Добавлена миграция 0018 (удалена позже)
- Docker: multi-stage build, wrangler.toml
- Frontend: public/static/app.js + style.css
- seed.sql добавлен
- Документация: CHANGELOG, CHANGES_v4.1.0-4.1.9, PROJECT_STRUCTURE
2026-01-14 18:37:00 +02:00

8.5 KiB
Raw Permalink Blame History

AKNAPROFF Tootmine

Версия: 4.0.4 (28.11.2025)
Статус: Production Ready - Все функции работают, включая клики по ячейкам

📋 Обзор проекта

Система управления производством окон для компании AKNAPROFF. Веб-приложение построено на Hono (Cloudflare Workers) с базой данных D1 SQLite.

🎯 Стратегия восстановления v4.0.0

ОСНОВА проекта (НЕ ТРОГАЕМ):

  • Original HTML (1223 строки) из архива aknaproff.zip
  • Original app.js (73KB, 2079 строк) - все функции, стили, логика
  • Original all.min.css (100KB) - FontAwesome и стили
  • Original button texts - "Lisa uus rida", "Tühista", etc.
  • Original function names - openModal(), closeModal(), etc.
  • Original IDs - recordModal, settingsForm, etc.

🔧 ЧТО ВОССТАНАВЛИВАЕМ:

  • Backend API (Hono) - создан под фронтенд вызовы из оригинального app.js
  • D1 Database - схема БД для хранения данных
  • Authentication - JWT токены для безопасности

🌐 Доступ к приложению

👤 Демо пользователи

Пользователь Пароль Роль Описание
admin demo123 Admin Для разработчика
aknaproff demo123 Admin Для клиента

Основные функции

Реализовано (v4.0.0):

  • 100% соответствие оригинальному HTML из архива
  • Управление производственными записями (CRUD)
  • Статусные чекбоксы для этапов производства
  • Система флагов ошибок с блокировкой полей
  • Модальные окна (7 шт): Login, Record, Notes, Problems, Blocked, Settings, Report
  • Быстрый поиск по: Klient, Tüüp, Pakkum. Nr, Töö Nr
  • Сортировка по колонкам
  • Фильтрация по месяцу и году
  • Итоговые суммы (Kogus, Hind)
  • JWT аутентификация
  • Audit log для изменений
  • Soft delete записей
  • Генерация отчётов (Master, Accountant)

🏗️ Архитектура

Frontend (из архива):

public/
├── static/
│   ├── app.js          # Original 73KB, 2079 lines
│   └── all.min.css     # Original 100KB FontAwesome
└── original.html       # Original 1223 lines (встроен в TypeScript)

Backend (Hono + D1):

src/
├── index.tsx           # Main Hono app (26 API endpoints)
├── original-html.ts    # Embedded original HTML
├── middleware/
│   └── auth.ts         # JWT middleware
└── utils/
    └── auth.ts         # Password hashing, token generation

Database (D1):

migrations/
└── 0001_initial_schema.sql    # 4 tables:
                                # - users
                                # - production_records
                                # - status_checkboxes
                                # - audit_log

📡 API Endpoints (26)

Authentication (2):

  • POST /api/auth/login - Вход в систему
  • PATCH /api/users/profile - Изменение профиля

Data Management (8):

  • GET /api/years - Список годов для фильтров
  • GET /api/records - Список записей (с фильтрами)
  • POST /api/records - Создание записи
  • GET /api/records/:id - Получение записи
  • PATCH /api/records/:id - Обновление записи
  • DELETE /api/records/:id - Удаление записи
  • PATCH /api/records/:id/material-confirmed - Подтверждение материала
  • PATCH /api/records/:id/material2-confirmed - Подтверждение материала-2

Status Management (6):

  • PATCH /api/records/:id/worksheets-cycle - Цикл статуса "Töölehti"
  • PATCH /api/records/:id/status - Обновление даты статуса
  • PATCH /api/records/:id/notes - Сохранение заметок
  • PATCH /api/records/:id/problems - Сохранение проблем
  • PATCH /api/records/:id/price-paid - Подтверждение оплаты
  • PATCH /api/records/:id/blocked - Информация о блокировке

🔒 Важные принципы восстановления

НЕ МЕНЯТЬ:

  1. Названия функций из оригинального app.js
  2. Тексты кнопок (на эстонском языке)
  3. HTML структуру из архива
  4. CSS классы и стили
  5. ID элементов
  6. Логику работы фронтенда

ТОЛЬКО СОЗДАВАТЬ:

  1. Backend API endpoints под фронтенд вызовы
  2. Database схему для хранения данных
  3. Middleware для аутентификации
  4. Utility функции для бэкенда

🚀 Локальная разработка

# Установка зависимостей
cd /home/user/webapp
npm install

# База данных
npm run db:migrate:local    # Применить миграции
npm run db:seed             # Загрузить тестовые данные

# Разработка
npm run build              # Сборка проекта
pm2 start ecosystem.config.cjs  # Запуск сервера
pm2 logs webapp --nostream      # Просмотр логов

# Тестирование
curl http://localhost:3000/api/years
curl http://localhost:3000/api/records?month=1&year=2025

📝 Git история

6d22b04 - FULL RESTORE: Use original HTML/CSS/JS from archive as base (v4.0.0)
cc7b3d4 - Update README to v3.20.8
013be72 - Fix: Replace openAddRecordModal() with openModal()
f45b5a3 - Fix D1 database binding and API /api/years endpoint (v3.20.7)
[Earlier commits...]

🎨 Оригинальные стили и функции

Кнопки (Original):

  • "Lisa uus rida" - Добавить новую строку (openModal())
  • "Tühista" - Отмена (closeModal())
  • "Salvesta" - Сохранить
  • "Kustuta" - Удалить

Модальные окна (Original):

  • loginModal - Вход администратора
  • recordModal - Добавление/редактирование записи
  • notesModal - Заметки к записи
  • problemsModal - Проблемы производства
  • blockedFieldModal - Уведомление о блокировке
  • settingsModal - Настройки пользователя
  • reportModal - Генерация отчётов

Функции (Original from app.js):

  • openModal() - Открыть форму добавления
  • closeModal() - Закрыть форму
  • toggleDate() - Переключить дату статуса
  • toggleWorksheetsStep() - Цикл статусов "Töölehti"
  • openNotesModal(), openProblemsModal(), etc.

Проверка качества восстановления

# ✅ Проверка оригинального HTML
curl http://localhost:3000 | grep "Lisa uus rida"
curl http://localhost:3000 | grep 'onclick="openModal()"'

# ✅ Проверка API
curl http://localhost:3000/api/years  
# {"years":[2024,2025,2026]}

# ✅ Проверка модальных окон
curl http://localhost:3000 | grep -o 'id="recordModal"'
curl http://localhost:3000 | grep -o 'id="settingsForm"'

📦 Технологии

  • Frontend: Original HTML/CSS/JS from archive
  • Backend: Hono (Cloudflare Workers)
  • Database: Cloudflare D1 (SQLite)
  • Auth: JWT tokens
  • Styles: TailwindCSS + FontAwesome
  • Deployment: Cloudflare Pages

🎯 Следующие шаги

  1. Тестирование всех функций на соответствие оригиналу
  2. Проверка всех модальных окон
  3. Проверка генерации отчётов
  4. Deploy на Cloudflare Pages

Версия 4.0.0 - Полное восстановление из архива с соблюдением принципа "Архив - это основа" 🎉