Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證tnghfud3240-source/123
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
현장 창고 담당자와 사무실 담당자가 함께 사용하는 제설자재 재고/입출고 관리 웹앱(PWA)입니다. • backend/: Node.js + Express + SQLite(Node.js 내장 node:sqlite 모듈) API 서버 — 별도 컴파일 도구 없이 npm install만으로 설치됩니다 • frontend/: React + Vite 기반 PWA (설치형 웹앱, 오프라인 입력 지원) Node.js 버전: 22.5 이상 필요 (내장 SQLite 모듈 사용). node -v로 확인하세요. 최신 LTS 버전 설치를 권장합니다.檢視完整 README ↗
현장 창고 담당자와 사무실 담당자가 함께 사용하는 제설자재 재고/입출고 관리 웹앱(PWA)입니다.
node:sqlite 모듈) API 서버 — 별도 컴파일 도구 없이 npm install만으로 설치됩니다Node.js 버전: 22.5 이상 필요 (내장 SQLite 모듈 사용).
node -v로 확인하세요. 최신 LTS 버전 설치를 권장합니다.
transactions)의 합계로 현재 재고를 계산합니다. 여러 창고에서 오프라인으로 동시에 기록해도 서버에 반영될 때 값이 충돌하지 않습니다.client_id 기반 중복 방지).개발용으로 백엔드(4000번 포트)와 프론트엔드(5173번 포트)를 따로 띄우는 대신, 프론트엔드를 빌드해두면 백엔드 서버 하나가 화면(웹앱)과 API를 모두 제공합니다. 사무실의 PC(또는 서버) 한 대에 설치해서 켜두면, 같은 사내망의 다른 PC·휴대폰은 브라우저에 그 PC의 주소만 입력하면 접속됩니다.
Windows 기준:
node -v로 확인)install.bat 더블클릭 → 처음 한 번만 실행 (패키지 설치, 샘플 데이터 생성, 프론트엔드 빌드)start.bat 더블클릭 → 서버 실행. 콘솔에 이 PC의 IP 주소(예: 192.168.0.23)가 표시됩니다http://<표시된 IP>:4000 접속
start.bat 창을 닫으면 서버가 꺼집니다. 계속 켜두려면 창을 최소화한 채로 그 PC를 켜두세요install.bat 없이 start.bat만 실행하면 됩니다 (품목/코드가 바뀌었을 때만 다시 install.bat으로 재빌드)이 방식은 별도 비용이 들지 않고 지금 당장 써볼 수 있지만, 그 PC가 꺼지거나 네트워크에서 벗어나면(예: 외부에서 접속) 사용할 수 없습니다. 나중에 클라우드에 배포해 외부에서도 고정 링크로 접속하게 바꿀 수도 있습니다(그때 다시 요청해 주세요).
이 저장소를 vercel.com에서 "Import Project"로 연결하면 vercel.json 설정에 따라 프론트엔드는 정적 사이트로, 백엔드(API)는 api/index.js를 통해 서버리스 함수로 자동 배포됩니다. 별도 설정 없이 그대로 배포하면 됩니다.
⚠️ 주의: Vercel의 서버리스 함수는 요청이 뜸해지면(콜드 스타트) 파일시스템이 초기화됩니다. 이 앱은 SQLite 파일을 서버 임시 저장공간(
/tmp)에 저장하므로, 콜드 스타트마다 입력했던 재고 데이터가 사라지고 샘플 데이터로 리셋됩니다(첫 요청 시 자동으로 샘플 데이터가 채워집니다). 실제 재고를 계속 누적하려면 방법 A(사무실 PC) 또는 영구 디스크가 있는 클라우드(Render 등)를 사용하세요.
백엔드:
cd backend
npm install
npm run seed # 최초 1회: 샘플 창고/품목 데이터 생성
npm start # http://localhost:4000
프론트엔드:
cd frontend
npm install
npm run dev # http://localhost:5173 (백엔드로 /api 프록시)
프로덕션 빌드 시:
npm run build
npm run preview
빌드 결과물(dist/)은 서비스워커가 포함된 PWA입니다. 방법 A처럼 백엔드가 직접 서빙하거나, 별도 정적 파일 서버(Nginx 등) 뒤에 배포하고 /api를 백엔드로 프록시해도 됩니다. 모바일 브라우저에서 접속 후 "홈 화면에 추가"로 설치할 수 있습니다.
npm run seed 실행 시 생성)충북본부 산하 6개 지사, 지사별 3~6개 창고(총 30개, 지사마다 "현장염수분사장치" 포함)가 생성됩니다.
| 지사 | 창고 |
|---|---|
| 진천지사 | 서청주IC, 지사, 일죽IC, 남이천IC, 마장휴게소, 현장염수분사장치 |
| 제천지사 | 지사, 단양영업소, 치악휴게소, 현장염수분사장치 |
| 충주지사 | 지사, 감곡IC, 괴산IC, 연풍IC, 현장염수분사장치 |
| 보은지사 | 지사, 문의IC, 화서IC, 남상주IC, 내서, 현장염수분사장치 |
| 엄정지사 | 지사, 서충주IC, 북진천IC, 현장염수분사장치 |
| 상주지사 | 연풍IC, 점촌함창IC, 지사, 선산IC, 현장염수분사장치 |
"현장염수분사장치"는 실제 창고가 아니라, 전환(형태 변경) 시 염화칼슘을 염수로 만들어 현장에 설치된 분사 장비로 보낼 때 목적지로 선택하는 가상 창고입니다.
관리 품목과 톤 환산계수:
| 품목 | 형태 | 단위 | 환산계수 | 기준 |
|---|---|---|---|---|
| 소금(제설용) | 톤백 | 톤 | 1 | |
| 소금(제설용) | 개포 | 톤 | 1 | 톤백을 개포해도 무게는 그대로 |
| 염화칼슘 | 톤백 | 톤 | 1 | |
| 염화칼슘 | 염수 | 리터 | 1/1935 (≈0.00051680) | 염화칼슘 1톤 → 염수 1,935리터 제조 기준 |
지사별 비축기준(톤):
| 지사 | 소금(제설용) | 염화칼슘 |
|---|---|---|
| 진천지사 | 3,150 | 294 |
| 제천지사 | 2,745 | 342 |
| 충주지사 | 2,376 | 228 |
| 보은지사 | 2,064 | 360 |
| 엄정지사 | 3,159 | 219 |
| 상주지사 | 1,911 | 132 |
비축기준은 "비축기준 관리" 화면, 환산계수·단위는 "품목 관리" 화면에서 언제든 직접 수정할 수 있습니다.
로그인이 없으므로 링크에 접속하는 모든 사람이 지사·창고 구성을 포함한 전체 화면을 바로 사용할 수 있습니다.
| 변수 | 기본값 | 설명 |
|---|---|---|
PORT | 4000 | API 서버 포트 |
DATA_DIR | backend/data | SQLite 파일 저장 위치 |