110 lines
4.3 KiB
Markdown
110 lines
4.3 KiB
Markdown
# Provider Exchange
|
|
|
|
Provider Exchange is an early Laravel prototype for a provider-centered field service network and work-order exchange.
|
|
|
|
The code is intended to be open source under the MIT License.
|
|
|
|
Project record keeping lives in:
|
|
|
|
- `CHANGELOG.md` for shipped changes, verification notes, and unusual commit/history notes.
|
|
- `docs/ROADMAP.md` for the current build direction and deferred features.
|
|
- Git for rollback and branch history.
|
|
|
|
The `.old` backup convention is not used for routine Laravel edits in this project. Use Git for normal recovery. Create a local `.old` copy only before risky manual rewrites, legacy file replacement, or generated artifact recovery where a second local copy is useful before editing, then move that snapshot to an external archive safe outside the repo after the matching Git history is committed and pushed.
|
|
|
|
The product goal is not to clone Field Nation. The first version focuses on:
|
|
|
|
- provider and buyer profiles;
|
|
- community posts;
|
|
- buyer job posts;
|
|
- provider quotes;
|
|
- work-order assignment and status tracking;
|
|
- mutual reviews;
|
|
- peer-review dispute records;
|
|
- external profile/rating snapshots from Field Nation, WorkMarket, and similar platforms.
|
|
|
|
## Guardrails
|
|
|
|
- The platform does not hold money in v1.
|
|
- The platform does not set or recommend market rates.
|
|
- Providers control their own rate cards and terms.
|
|
- Buyers control their own posted offer terms.
|
|
- Payment remains direct between buyer and provider unless a compliant payment partner is added later.
|
|
- Reputation is mutual: providers review buyers and buyers review providers.
|
|
- Dispute records are reputational/peer-review records, not legal adjudication.
|
|
|
|
## Local Setup
|
|
|
|
```bash
|
|
composer install
|
|
npm install
|
|
cp .env.example .env
|
|
php artisan key:generate
|
|
touch database/database.sqlite
|
|
php artisan migrate:fresh --seed
|
|
php artisan storage:link
|
|
npm run build
|
|
php artisan serve --host=0.0.0.0 --port=8123
|
|
```
|
|
|
|
## Server Install
|
|
|
|
See `docs/INSTALL.md` for the first-pass Ubuntu/Nginx installer and update script.
|
|
|
|
## Demo Accounts
|
|
|
|
All seeded demo accounts use password `password`.
|
|
|
|
- `admin@example.com`
|
|
- `provider@example.com`
|
|
- `buyer@example.com`
|
|
- `hybrid@example.com`
|
|
|
|
## Test Commands
|
|
|
|
```bash
|
|
php artisan test
|
|
npm run build
|
|
```
|
|
|
|
## Current Roadmap Status
|
|
|
|
See `docs/ROADMAP.md` for the durable roadmap. The short status below is a convenience snapshot.
|
|
|
|
1. Foundation: Laravel app, auth, roles, seeded demo users.
|
|
2. Profiles: provider and buyer profiles.
|
|
3. Social layer: community feed posts.
|
|
4. Job posts: buyer job-post creation and listing.
|
|
5. Quote flow: provider quotes and buyer acceptance.
|
|
6. Work orders: assignment, role-aware status transitions, deliverables, messages, evidence files, completion notes.
|
|
7. Reviews: mutual buyer/provider reviews with category metrics.
|
|
8. Disputes: peer-review dispute records with comments, evidence files, and structured votes.
|
|
9. API prep: Sanctum installed with starter API routes and authenticated work-order/dispute feeds.
|
|
10. Hardening: tests, seed data, setup docs, database notifications, admin overview, and no-payment/no-rate-setting guardrails.
|
|
|
|
## Implemented Hardening Pass
|
|
|
|
- Polymorphic attachments for provider profiles, buyer profiles, feed posts, jobs, work orders, disputes, and imported external profiles.
|
|
- Polymorphic comments for feed posts, jobs, and disputes.
|
|
- Work-order messages between buyer and provider.
|
|
- Quote revision history and quote decline flow.
|
|
- Role-aware work-order transition rules.
|
|
- Category review metrics for communication, scope accuracy, payment reliability, workmanship, and timeliness.
|
|
- Dispute peer votes with provider/buyer/split/insufficient-evidence recommendations.
|
|
- Database notifications for quote, work-order, review, and dispute events.
|
|
- Admin overview page for users, jobs, work orders, disputes, and attachment counts.
|
|
|
|
## External Profile Imports
|
|
|
|
Provider profiles support manual external snapshots. For Field Nation, the first version records:
|
|
|
|
- platform name;
|
|
- external provider ID;
|
|
- profile URL if available;
|
|
- rating;
|
|
- review count;
|
|
- completed jobs;
|
|
- notes or copied review summaries.
|
|
|
|
Public search did not expose a Field Nation profile for provider ID `172-630`, so any automated Field Nation import should be treated as a later authenticated/export-assisted workflow rather than a public scrape assumption.
|