THE FIELD GUIDE

Documentation.

Understand the project, set up a development workspace, and find your way into the code.

01 / OVERVIEW

What is Fieldjig?

Fieldjig is a construction field-management project for contractors, project managers, field crews, and office teams. It brings project coordination, crew time, daily reports, documents, and administrative workflows into a self-hosted application.

Our goal is to give smaller construction businesses access to practical management tools without breaking the bank. We're building an open-source, self-hosted alternative to costly larger platforms, while recognizing that hosting, setup, and ongoing maintenance still require a budget.

The code currently lives in the public Fieldjig repository. Older technical documents may use the previous project name, project-manager-app.

02 / PROJECT STATUS

Building in the open.

Active development, not a production-readiness guarantee.

Migration, mobile parity, and verification work are ongoing. Test workflows in an isolated environment before using real employee, payroll, or project data.

The development checklist records implemented timecard lifecycle flows, daily-report workflows, document management, admin task tools, and a payroll foundation. Project workflows, reporting, mobile coverage, and other domains still have open work.

Feature completion is not a security or compliance certification. Payroll calculations and operational controls need validation for your organization and jurisdiction.

Read the feature checklist
03 / REQUIREMENTS

Before you start.

  • PHP: the Composer manifest declares PHP 8.2+. Check the lockfile and required extensions against your target runtime; project guidance targets PHP 8.4.
  • Composer: for installing the PHP dependencies.
  • Node.js: the application uses Vite 7; use Node 22.12+ or a newer compatible LTS release, plus npm.
  • Database: provision a database supported by your selected app configuration. Confirm migration compatibility before deployment.
  • Services: configure mail, storage, cache, queue workers, and the scheduler as required by the workflows you enable.
Check dependency access first.

The current frontend manifest includes flux-icons-pro-pack. Confirm its availability and licensing, along with any other restricted dependencies, before assuming a clean install works without additional access.

04 / DEVELOPMENT SETUP

Get a local workspace running.

This is a development starting point, not a production installer. Use a disposable database and review the repository's current instructions before running setup.

Terminal
git clone https://github.com/eli-reid/fieldjig.git
cd fieldjig
composer install
npm install

Copy .env.example to .env using your file manager or shell. Set your local application URL and database connection. Never commit that file or share credentials.

Terminal
php artisan key:generate
php artisan migrate
npm run build
composer run dev

Keep the development process running and open the local URL printed by the server. The repository includes automated tests; run the affected tests for your changes.

If package installation or migrations fail, stop and resolve the reported error. Do not use real production data to work around setup failures.

05 / OPERATIONS

Self-host with a plan.

Production setup needs more than uploading a source archive. Serve the Laravel public directory over HTTPS, disable debug output, provision persistent storage, and configure workers and the scheduler.

  • Back up both the main database and any persistent settings database.
  • Use an approved release or deployment branch; review migrations before applying them.
  • Build frontend assets and install production PHP dependencies.
  • Verify permissions, notifications, file uploads, and enabled workflows.
  • Plan rollback and test backup restoration.

The existing runbook refers to a production branch. Confirm that branch and your deployment policy before following it.

Read the deployment checklist
06 / UNDER THE HOOD

A modular Laravel foundation.

The application uses Laravel 12 and Livewire. Cross-cutting platform systems live under app/Core; business features live under app/Domains. Services and actions own business logic, while UI components stay focused on orchestration.

  • Livewire-first route-facing interfaces.
  • Policy- and permission-based authorization.
  • Explicit boundaries between business domains.
  • Dedicated mobile surfaces following mobile/{domain}.

A community plugin library is planned for this website. Catalog submissions, compatibility rules, and distribution are not available yet.

The consolidated architecture specification is the canonical reference; older documents may describe superseded structures.

Read the architecture specification
07 / COMMUNITY

There's more than one way to help.

Useful contributions include reproducible bug reports, field-workflow feedback, documentation fixes, tests, and focused code changes.

Report a bug

Open a GitHub issue with the app version or commit, environment, steps to reproduce, expected behavior, and actual behavior. Include sanitized screenshots or logs, never employee data or credentials.

Suggest a feature

Describe the jobsite problem first: who is affected, what they do today, and what success would look like. Search existing issues before creating a new one. Discuss large changes before implementing them.

Send a pull request

Read the repository's contributor instructions, keep changes scoped to the owning domain, add or update tests, and link the related issue. Explain what changed and how you verified it.

Suspected security issue?

Do not publish exploit details or sensitive data in a public issue. Use the repository's private vulnerability reporting option if enabled, or an established private maintainer contact. A security policy should be published before launch.

08 / PROJECT ORGANIZATION

A small, useful tracking system.

GitHub Issues is the recommended starting point for bugs, feature requests, documentation, and maintenance work. The following is a proposed workflow, not a claim that these tools are already configured.

Issues

Use structured bug and feature forms. Label by type, domain, and priority. Keep one actionable item per issue.

A project board

Start with Backlog, Ready, In progress, In review, and Done. Add a target release only when work is committed.

Milestones & releases

Group issues into small release milestones. Tag releases and publish notes, known issues, and install instructions.

Discussions

If enabled, use Discussions for questions and open-ended ideas. Move accepted work into an issue.

Before launch, confirm the open-source license and dependency redistribution rights, add contribution and security policies, and identify supported versions. A license field in a package manifest is not a substitute for a reviewed repository license.

09 / KEEP EXPLORING

Go straight to the source.