Органайзер для роботи з 3D друком.
https://print-db.realshade.me
Наразі реєстрація вільна, без очікування підтвердження адміністратором
Проєкт у розробці, тому можуть бути баги, а функції реалізовуватимуться поступово.
- Реестр завдань
- Реестр частин
- Реестр принтерів
- Керування запасами філаменту (ручне, кольорі не працюють)
- API події "перед друком", "після друку" та "друк зупинено"
- Ручне додавання поточного друку з ручним завершенням (друк додається до надрукованого)
- Автоматизація поточного друку при використанні API
- Інструмент перевірки назви файлу на валідність
- Організувати роботу з 3D принтером в плані ведення обліку друку та запасів філаменту
- Облік завдань та частин, які потрібно надрукувати, яки в процессі друку та які вже надруковані.
- Автоматизувати процес підрахунку кількості надрукованих частин, а також автоматично створювати завдання та частини, які потрібно надрукувати, на основі даних з API.
- Використовувати API для отримання даних про завдання та частини, які друкуються.
- Зв'язок між даними з API та даними в системі здійснюватиметься через назви файлів, які будуть містити інформацію про завдання та частини, що друкуються
- Зробити зручне ручне керування друком, завданнями та частинами через веб-інтерфейс, щоб можна було користуватися без API.
- Зробіти облік філаменту, ручне та автоматичне керування його витратою
- Звісно кожен користувач бачить лише свої завдання та частини, які він створив
- Лог друку, лог витрат філаменту
- У якості аватару використовується gravatar
- Стек: php8.3, laravel 12, mysql, redis, nginx. Bootstrap 5, SweetAlert2
- Завдання - це певна кількість комплектів, які потрібно надрукувати
- Комплект - це певна кількість різних частин (може бути одна частина, може бути різна кількість різних частин у комплекті)
- Частина - окрема модель, яка має свою назву та версію, та може входити до декількох завдань
- Статуси:
- "нова" - завдання, яке ще не почало друкуватися. Це початковий статус створеного вручну завдання. Статус змініться автоматично на "в процесі" при находженні на API пов'язаної з цим завдання події
- "в процесі" - завдання, яке вже почало друкуватися. Це початковий статус завдання, створенного автоматично. Статус зміниться автоматично на "надруковано" при досягненні потрібної кількості надрукованих частин (можливо, це буде опціонально)
- "надруковано" - завдання, яке вже повністю надруковане. Цей статус не змінюється автоматично. Тако ж завдання з цим статусом все ще вважаються відкритими, і можуть приймати події з API. Цей статус потрібно вручну змінити на "виконано" після того, як завдання буде повністю надруковане та відправлено замовнику
- "виконано" означає, що завдання повністю надруковано та відправлено замовнику
/print-start
/print-end
/print-stop
- API приймає як POST, так і GET запити
- Аутентифікація можлива через bearer (-H Authorization: Bearer токен) або токен у запиті (token=токен)
- токен створюється у налаштуваннях на сайті
- приймаються 2 параметри - filename (обов'язкове) та printer_id (якщо принтер створено всього один, то можна опустити)
- ! не працює без створених принтерів
- print-start бере дані з назви файлу та створює закріплений за принтером поточний друк визначених моделей. Не змінює кількість надрукованого, існує виключно для інформації
- print-stop очищає закріплений за принтером поточний друк. Не змінює кількість надрукованого
- print-end як і print-start, бере з назви файлу дані, але одразу додає до надрукованого та очищає закріплений за принтером поточний друк. Подія не додає автоматично поточний друк, а наново перевіряє назву файлу та обчислює дані. Таким чином можна працювати без print-start, а тільки з print-end, як єдиною точкою автоматизації
- шаблон для назви файлу можна подивитися в формі завдання або в формі кожної закріпленої за завданням моделі
- шаблон може бути присутнім будь-де у назві файлу
- може бути присутніми декілька шаблонів, якщо на столі декілька моделей навіть з різних завдань
- перевірити назву файлу можна на сторінці інструментів на сайті
- на формі завдання та формі прив'язаної моделі є готовий шаблон для додавання в назву файлу, в слайсері достатньо додати його у назву пластини
(tid_9999(x1))
- tid_ади завдання
- (xкількість) - скільки комплектів наразі друкується. За замовчуванням 1
- шукається завдання з таким айді серед незавершених, якщо не знайдено - помилка (сповіщення)
- якщо знайдено та не вказано кількість, вважати як 1 повний комплект
(pid_8888(x1)_9999)
- pid_айді частини
- (xкількість) - скільки екземплярів частин наразі друкується. За замовчуванням 1
- айди завдання
- шукається частина зі завданням з таким айді серед незавершених, якщо не знайдено завдання, або частина не належить завданню - помилка (сповіщення)