Skip to content

About

A local project request portal with comments, status history and transactional SQLite audit records.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ClientLane

ClientLane is a local, single-user project request portal. It combines a correspondence-style React workspace with a small Node HTTP API and SQLite persistence. Users can create requests, filter by status, review request details, add comments, move work through four stages, and inspect an immutable activity history.

The included requests and comments are synthetic fixtures. ClientLane has no authentication and does not represent a hosted client system or production usage.

Run locally

Requires Node.js 22.22+ or 24.15+.

npm install
npm run dev
  • Web interface: http://127.0.0.1:5176
  • API: http://127.0.0.1:4313

SQLite data is created at .data/clientlane.sqlite. Delete that local file while the app is stopped to restore the synthetic seed data on the next run.

Verify

npm test
npm run typecheck
npm run build

Architecture

  • server/domain.ts validates and normalizes request, comment, and status input.
  • server/store.ts owns schema setup, parameterized SQLite operations, transactions, synthetic seeding, and immutable audit inserts.
  • server/api.ts exposes the /api contract through Node's HTTP server, including JSON parsing and a 16 KiB request limit.
  • src/api.ts is the typed browser transport layer.
  • src/components/ separates the request list, detail conversation, activity history, and creation form.
  • src/App.tsx coordinates selection, filters, writes, and detail refreshes.

Request creation, comment creation, and status transitions commit their audit entries in the same SQLite transaction. Comments are returned in chronological order, while audit entries remain append-only.

Limitations

  • This is an explicitly local single-user demo. It does not provide accounts, authentication, authorization, multi-user editing, file uploads, or notifications.
  • API access is bound to 127.0.0.1; Vite proxies /api during local development.
  • The app has no migration system beyond idempotent schema creation.
  • Browser drafts survive server validation errors, but not a full page refresh.

Implementation note

This independent portfolio demonstration was built with AI-assisted development. It is not affiliated with a private employer product and contains no client or employment data.

License

MIT. See LICENSE.

About

A local project request portal with comments, status history and transactional SQLite audit records.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages