zayavka

UNICA — заявки и контрагенты

Веб-приложение (PWA), которое можно установить на телефон как обычное приложение. Внутри: каталог товаров, оформление заявок, контрагенты, роли пользователей (администратор / менеджер), админ-панель для каталога и сотрудников.

Это НЕ статичная страница — здесь есть настоящий сервер (Node.js) и база данных (SQLite), поэтому все сотрудники видят одни и те же данные одновременно.

Быстрый старт (проверить у себя на компьютере)

Нужен установленный Node.js версии 18 или новее.

cd unica-app
npm install        # ставит зависимости, один раз
npm run seed       # создаёт базу данных, каталог и первого администратора
npm start           # запускает сервер

Откройте http://localhost:3000 в браузере.

Вход по умолчанию: логин admin, пароль 123456. Обязательно смените пароль после первого входа (меню профиля → «Сменить пароль»), и заведите отдельные учётки для остальных сотрудников (Админ → Пользователи → Новый пользователь).

Чтобы это работало «как приложение» на телефонах сотрудников

Прямо сейчас сервер работает только на вашем компьютере (localhost) — с телефона до него не достучаться. Чтобы сотрудники могли открывать это как приложение на своих телефонах, нужно разместить сервер там, где он будет работать постоянно и будет доступен по интернету (или хотя бы по локальной сети офиса), с адресом на https://.

Варианты размещения (от простого к более гибкому):

Как только у приложения появится адрес на https://, на телефоне достаточно:

  1. Открыть этот адрес в Chrome (Android) — появится баннер или пункт меню «Добавить на главный экран» / «Установить приложение».
  2. Готово — иконка появится на рабочем столе телефона и будет открываться как обычное приложение, без адресной строки браузера.

Размещение на Render (уже настроено)

В репозитории есть файл render.yaml — Render сам прочитает его и создаст сервис с нужными настройками и диском для базы данных и фото (без диска данные будут стираться при каждом перезапуске сервера).

  1. Зайдите на https://dashboard.render.com и войдите через GitHub.
  2. Нажмите New → Blueprint, выберите этот репозиторий (zayavka).
  3. Render покажет план — там будет поле SEED_ADMIN_PASSWORD: впишите пароль администратора, который хотите использовать (логин — admin, его можно сменить в переменной SEED_ADMIN_LOGIN).
  4. Нажмите Apply. Через пару минут сервис соберётся и выдаст адрес вида https://unica-app-XXXX.onrender.com — его и открывают с телефона.
  5. Тариф — Free, карта не нужна. Важно: на бесплатном тарифе Render «усыпляет» сервис после ~15 минут без обращений и при каждом пробуждении/повторном деплое стирает файлы — то есть база данных (заявки, контрагенты, добавленные фото) может периодически сбрасываться. Для пробы/показа — ок. Для надёжной постоянной работы нужен платный план (Starter, ~$7/мес) с постоянным диском — тогда в render.yaml вернуть plan: starter и блок disk (сохранён в истории коммитов).

Структура проекта

unica-app/
  server/            бэкенд (Express + SQLite)
    index.js          точка входа сервера
    db.js              схема базы данных
    seed.js            наполняет базу каталогом и создаёт админа
    seed_data.json      исходные данные каталога (из вашего Excel)
    middleware/auth.js  проверка входа и ролей
    routes/             API: авторизация, контрагенты, заявки, каталог
  public/             фронтенд (то, что видит пользователь)
    index.html          разметка приложения
    app.css             стили
    app.js              вся логика интерфейса
    manifest.json        настройки PWA (иконка, имя приложения)
    sw.js                service worker (для установки и офлайн-оболочки)
    uploads/products/    фотографии товаров
  data/unica.db        база данных (создаётся командой npm run seed)

Что уже умеет приложение

Дальнейшие шаги, если понадобится