Development Operations System (Dev ERP)
- [Deliverables]
- Internal Operations Portal
- [Stack]
- React/Vite, Express, Prisma, PostgreSQL
- [Role]
- Full-Stack Product Engineer
- [Service]
- Architecture + ERP Product Delivery

[Overview]
A live internal ERP that brings projects and task delivery, proposals, onboarding intake review, rent, accounting, invoicing, appointments, reporting, access control, automation, audit activity, and system-health monitoring into one workspace.
Designed for Admin, operations, finance, rent-only users, contributors. Built around Projects, tasks, proposals, intake, dashboard, rent, accounting, invoicing, appointments, organizations, users, reports, audit logs, settings, and system health. Delivered with React/Vite, Express route slices, Prisma schema + migrations, PostgreSQL, Cloudflare API routing.

[The Challenges]
#1
"Project delivery, proposals, intake submissions, rent, finance, appointments, reporting, and system status needed to live in one workspace without flattening user roles or organization boundaries."
#2
"The backend had to move toward focused vertical route slices while preserving secure session handling, CSRF checks, capability enforcement, and database isolation safeguards."
#3
"Public appointment booking, Google Calendar sync, report delivery, email/SMS alerts, and system-health checks needed to coexist with a maintainable Express and Prisma architecture."

[Discovery Phase]
Discovery started with a practical audit of Dev ERP operations portal + backend, mapping how people were actually using the system before any redesign or implementation decisions were made.
I mapped core user groups (Admin, operations, finance, rent-only users, contributors) and traced their task paths. The initial scope focused on Projects, tasks, proposals, intake, dashboard, rent, accounting, invoicing, appointments, organizations, users, reports, audit logs, settings, and system health. Project delivery, proposals, intake submissions, rent, finance, appointments, reporting, and system status needed to live in one workspace without flattening user roles or organization boundaries.

Design System Map
Patterns, states, and tokens working as one kit.
Component
Dev ERP
Primary surface for high-priority actions
Interaction
Shared States
Default, active, warning, and empty states
Token
Projects + tasks
Spacing, type scale, and alignment rhythm
Built By Design
Shared rules keep new screens aligned.
System
Architecture + ERP Product Delivery
Consistent rules applied across modules
Scale
Reusable Patterns
Built for iterative expansion without rework
[Design System]
For Dev ERP operations portal + backend, I defined a reusable design system that aligned layout, component behavior, and content hierarchy across every major user flow.
Patterns were shaped around real user groups (Admin, operations, finance, rent-only users, contributors) so screens stayed consistent while still supporting different operational tasks.
Using React/Vite, Express route slices, Prisma schema + migrations, PostgreSQL, Cloudflare API routing, I created modular UI building blocks and predictable state rules, so new pages could be launched faster without introducing visual drift.
[Architecture + Database Class Diagrams]
Architecture Diagram
React/Vite frontend modules, modular Express API slices, Prisma data model, and external operations integrations.
Architecture Diagram
- Modules
- 11
- Flows
- 6
React/Vite Admin Portal
Role-aware ERP modules
Public Appointment
Org-scoped booking page
Auth Sessions
Secure cookie flow
Capability Rules
Role and module checks
Core Modules
Independent pieces working from one operating record.
Modular Express API
Route slices and middleware
Prisma ORM
Schema and migrations
PostgreSQL Database
Ops, finance, rent data
Google Calendar
Appointment sync
Email Alerts
Reports and notices
SMS Alerts
Operational notices
Scheduled Jobs
Reports and system tasks
How a Request Flows
Readable steps without connector clutter.
module APIs
React/Vite Admin Portal -> Modular Express API
appointment APIs
Public Appointment -> Modular Express API
capability checks
Auth Sessions -> Modular Express API
allow or deny
Capability Rules -> Modular Express API
data access
Modular Express API -> Prisma ORM
SQL queries
Prisma ORM -> PostgreSQL Database
Database Class Diagram
Key entities, attributes, and relationships from the Dev ERP Prisma schema.
Class diagram
Database Class Diagram
- Classes
- 11
- Relations
- 13
entity
Organization
- id: uuid
- name: string
- slug: string
- status: enum
- settings: json
entity
Role
- id: uuid
- organizationId: fk
- name: string
- permissions: json
entity
User
- id: uuid
- organizationId: fk
- roleId: fk
- email: string
- status: enum
entity
Appointment
- id: uuid
- organizationId: fk
- customerName: string
- scheduledAt: datetime
- calendarEventId: string
entity
Invoice
- id: uuid
- organizationId: fk
- clientName: string
- status: enum
- total: decimal
entity
InvoiceLineItem
- id: uuid
- invoiceId: fk
- description: string
- quantity: int
- unitPrice: decimal
entity
AccountingEntry
- id: uuid
- organizationId: fk
- type: enum
- amount: decimal
- postedAt: datetime
entity
RentTenant
- id: uuid
- organizationId: fk
- tenantName: string
- unit: string
- status: enum
entity
RentPayment
- id: uuid
- tenantId: fk
- amount: decimal
- paidAt: datetime
- method: enum
entity
CalendarSettings
- id: uuid
- organizationId: fk
- provider: string
- oauthState: json
- bookingConfig: json
entity
ProductivityEntry
- id: uuid
- organizationId: fk
- userId: fk
- status: enum
- dueAt: datetime
Relationships
Entity links and ownership rules.

[01] Workspace Modules
Workspace Modules
Dashboard
KPI, availability, site status, and operational health overview.
Projects + Tasks
Org-scoped project records, delivery stages, progress, task ownership, activity, and optional external-project synchronization.
Rent
Tenant records, rent payment history, balances, and rent-only user paths.
Accounting + Invoicing
Revenue/expense entries, invoice records, line items, due dates, and payment state.
Proposals + Intake
Editable proposal canvas, secure client response links, and Faako onboarding submission review.
Appointments
Manual + public appointment booking with Google Calendar sync support.
Admin + Insights
Organizations, user control, reports, audit logs, settings, alerts, and system health.

[02] Security and Access Strategy
Security and Access Strategy
- Session security with HttpOnly auth cookies and CSRF token validation.
- Capability middleware maps route groups to user module access before backend actions run.
- Frontend module registries keep navigation, labels, grouping, state badges, and route metadata aligned while database-backed module toggles are planned.
- Organization scoping helpers block cross-organization reads and writes for local admins.
- Environment exposure tests keep browser-visible VITE variables intentionally allowlisted.
- Secret encryption supports Google Calendar OAuth tokens and hosted runtime safeguards.

[03] Data Architecture
Data Architecture
Organization-first model
Core entities are scoped by organization, with hierarchy support for parent and child organizations.
Relational role mapping
Roles and users map permissions and operational ownership.
ERP domain entities
Bookings, accounting entries, invoices, invoice line items, rent tenants, rent payments, productivity entries, and todos share consistent indexing.
Prisma migrations
Schema evolution maintained with migration history in version control.

[04] Integrations and Automations
Integrations and Automations
- Project delivery combines org-scoped records, Kanban stages, task tracking, activity history, and bounded external-project synchronization.
- Proposal workflows cover reusable templates, internal review, secure client responses, and approved-proposal handoff into invoice drafts.
- Google Calendar OAuth flow for booking sync, callback processing, and disconnect actions.
- Productivity coach endpoint connected to OpenAI Responses API for planning guidance.
- Scheduled report and reminder jobs support rent summaries, accounting reminders, invoice email delivery, and alerts.
- Live job-board aggregation from Remotive and Arbeitnow for opportunity tracking.
- Trust and site-status checks across related platforms for operational visibility.

[05] Implementation Outcomes
Implementation Outcomes
Before
- Ops, rent, finance, appointments, and reporting tracked across disconnected surfaces
- Backend routing concentrated in broad handlers
- Limited module-level access boundaries for non-admin roles
- Manual checks for reports, reminders, and system status
After
- One Dev ERP workspace for projects, proposals, intake, operations, finance, appointments, and monitoring
- Modular Express route slices composed by the runtime app
- Cookie + CSRF + capability-gated API access model
- Centralized automation, reports, cross-app audit activity, alerts, and system-health visibility

