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,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A TestFit-style site-planning sketch tool aimed at industrial deals
(buildings, truck courts, trailer storage, car parking, detention) for the
Houston metro: Harris, Fort Bend, and Chambers counties.
Everything internal is in feet. Draw a parcel (or pull a real one), drop
buildings/paving/parking, and the right rail live-computes site yield: coverage,
FAR, impervious %, car stalls, trailer stalls, detention, open space.
Requires Node 18+.
Three ways to get a parcel onto the canvas
You can mix all three. There's no login or API key.查看完整 README ↗A TestFit-style site-planning sketch tool aimed at industrial deals (buildings, truck courts, trailer storage, car parking, detention) for the Houston metro: Harris, Fort Bend, and Chambers counties.
Everything internal is in feet. Draw a parcel (or pull a real one), drop buildings/paving/parking, and the right rail live-computes site yield: coverage, FAR, impervious %, car stalls, trailer stalls, detention, open space.
Requires Node 18+.
npm install
npm run dev # open the printed http://localhost:5173 URL
Build a static bundle:
npm run build # outputs to dist/
npm run preview # serve the production build
You can mix all three. There's no login or API key.
Right rail → Parcel lookup. Pick a county, search by address or account #, and click a result to import its true boundary (pulled live from the county's public GIS and converted to Texas State Plane feet, so on-screen distances are accurate — no Web-Mercator stretch).
The county endpoints live in src/lib/counties.js:
| County | Source |
|---|---|
| Harris | HCAD Parcels — gis.hctx.net/.../HCAD/Parcels/MapServer/0 |
| Fort Bend | FBCAD public service — gis.fbcad.org/.../Public/MapServer (parcels layer auto-detected) |
| Chambers | CCAD hosted parcels feature service (provisional — see note) |
The app reads each layer's field list at runtime and auto-detects the account and address fields, so a county renaming a column won't break the lookup. If an endpoint moves, paste a corrected URL into the Service / layer URL box under the search (no code change needed).
Heads up — verify in your browser. These are public Esri ArcGIS services and normally allow direct browser requests (CORS). If a county server is down, moved, or blocks CORS you'll get a clear error and should fall back to the screenshot workflow below. The Chambers endpoint in particular is marked beta and may need updating. If a server blocks CORS, uncomment the matching dev-proxy entry in
vite.config.jsand point that county's URL at the local path.
Right rail → Aerial underlay → Load screenshot…. Drop in any aerial or map screenshot, then:
Adjust Opacity to see your linework over the image. This path needs no network and is the reliable fallback while the county feeds are being dialed in.
Select (move/resize/rotate, drag empty space to pan) · Parcel · Building ·
Paving · Parking (auto-counts stalls) · Trailer (auto-counts) · Pond ·
Measure · Calibrate. Mouse wheel zooms; Fit frames everything; Esc
cancels; Delete removes the selection.
Parking/trailer dimensions, setback, and grid snap are all editable under Standards. Scenarios save to your browser (Save / load) or Export JSON.
index.html
src/main.jsx # React entry
src/SitePlanner.jsx # the whole planner (canvas, tools, inspector, metrics)
src/lib/storage.js # localStorage-backed scenario store
src/lib/image.js # screenshot loader + downscale
src/lib/counties.js # county endpoint presets + field auto-detect
src/lib/arcgis.js # ArcGIS REST query + geometry → local feet (EPSG:2278)
Adding another county is just one entry in src/lib/counties.js pointing at its
ArcGIS REST layer or service URL.
Production runs on Cloudflare Pages (serving planyr.io). Third-party secrets live as encrypted Cloudflare Pages → Settings → Environment variables / Secrets, never in the repo or the client bundle:
MAPILLARY_TOKEN — the Mapillary access token for the "Poles & hydrants from street
imagery" layer. Read server-side only by the /api/mapillary Pages Function
(context.env.MAPILLARY_TOKEN); it is deliberately not a VITE_* var (that would
compile into the public JS). Set in the Production environment (add it to Preview
too if you want per-branch preview URLs to show the layer). If it's absent the layer just
degrades gracefully — no street imagery, no error. See .env.example.The Supabase anon key is the only key that ships to the browser (it's RLS-protected and public by design); everything else (service-role, third-party API keys) stays server-side.