Kompleksowa aplikacja webowa typu Serverless, zbudowana w środowisku Google Apps Script. Służy do zautomatyzowanego zarządzania przydziałem szafek pracowniczych w zakładach pracy, w pełni wykorzystując środowisko Google Workspace bez konieczności utrzymywania zewnętrznych serwerów.
Projekt powstał jako odpowiedź na potrzebę optymalizacji procesów HR i administracji, zastępując ręczne arkusze kalkulacyjne wydajnym, dwukierunkowym interfejsem graficznym.
- Dwukierunkowy system przydziału: Możliwość przypisywania szafek z poziomu widoku pracownika, jak i z poziomu widoku konkretnej szafki.
- Conflict Resolver (Ochrona przed wyścigami): Wbudowany mechanizm wykrywający Race Conditions. Jeśli dwóch użytkowników spróbuje zająć tę samą szafkę w tym samym czasie, system zablokuje transakcję drugiego użytkownika, chroniąc integralność bazy danych.
- Optymalizacja wydajności (Client-Side Rendering): Baza danych pobierana jest asynchronicznie, a operacje takie jak przydział czy zwolnienie szafki aktualizują pamięć RAM przeglądarki (DOM) w ułamku sekundy, unikając kosztownego przeładowywania całej aplikacji.
- Automatyczny import pracowników: Mechanizm
Triggerówzaciągający i parsujący najnowsze pliki CSV z Google Drive bezpośrednio do bazy. Wbudowany inteligentny analizator automatycznie wykrywa rodzaj separatora (średnik, przecinek, tabulator). - Zaawansowany interfejs (Tailwind CSS):
- Dynamicznie regulowana szerokość kolumn (Custom Resizer w Vanilla JS).
- Regulowany panel boczny (Split-pane) z detalami pracownika.
- Wielo-kryteriowa, asynchroniczna wyszukiwarka (szukanie jednoczesne po imieniu, dziale, zmianie itp.).
- Role-Based Access Control (RBAC): Dynamiczne renderowanie widoków i dostępów w zależności od uprawnień (Admin vs. Użytkownik) oraz odizolowanie widoczności szafek pomiędzy poszczególnymi działami operacyjnymi (np. Produkcja, Zdobienie).
- Client-Side Export: Generowanie natywnych plików Excel (CSV w formacie UTF-8 BOM) z aktualnie przefiltrowanego widoku tabeli, w całości po stronie przeglądarki klienta.
- Logi Aktywności (Audit Trail): Dedykowany panel dla administratorów pozwalający śledzić ostatnie akcje w systemie.
- Backend: Google Apps Script (JavaScript/ES6), Google Sheets API, Google Drive API.
- Frontend: HTML5, Vanilla JavaScript, Tailwind CSS (via CDN).
- Baza Danych: Google Sheets (wykorzystana jako relacyjna, darmowa baza chmurowa).
Aplikacja opiera się na wzorcu zbliżonym do MVC. Plik Code.gs działa jako kontroler i backend, obsługując requesty google.script.run wysyłane z frontendu.
Zamiast powolnych operacji I/O przy każdej interakcji, system w locie operuje na tablicach obiektów JSON przetrzymywanych w pamięci podręcznej przeglądarki, wykonując zapis do arkusza w sposób asynchroniczny z wymuszoną walidacją stanu (Concurrency Control).
Jako że projekt oparty jest na architekturze Google Workspace, nie wymaga instalacji lokalnej za pomocą Node.js czy Dockera.
- Utwórz nowy Arkusz Google lub zaimportuj DB_szafki.ods (będzie to Twoja baza danych) wraz z wymaganymi zakładkami (
Szafki,Pracownicy,Słowniki,Uprawnienia,Historia). - Otwórz edytor skryptów (Rozszerzenia -> Apps Script).
- Wklej zawartość pliku
Code.gsw głównym pliku backendu. - Utwórz nowy plik HTML o nazwie
Index.htmli wklej do niego kod frontendu. - Uzupełnij zmienną
DB_IDw plikuCode.gsidentyfikatorem swojego Arkusza. - Kliknij Wdróż -> Nowe wdrożenie, wybierz typ "Aplikacja internetowa" i przypisz uprawnienia dostępu.
Paweł Pawłowski - Automatyzacja procesów biznesowych