How ahmedhrgx/pv-sharing works
Proper Voltage is a multi-tenant UPS battery-system customer portal. Integrators sign in, configure and size a project, save it as a draft, submit it for a quote that creates a HubSpot deal, and exchange project documents in a data room. The graph also preserves the company, location, and user administration capabilities. The README documents the web/API boundary and API ports-and-adapters structure; sampled source confirms quote submission, authorization, sizing, and document-provider behavior. Some unsampled service wiring is represented only where documented.
Main entry points: app.module.ts REST API · projects.controller.ts Project workflow · api-source.ts API data source · page.tsx Project workflow
Components 20
Portal experience
- Project workflow
apps/web/app/(app)/projects/new/page.tsx - Sizing calculator
apps/web/components/projects/calculator/CalculatorView.tsx - Project data room
apps/web/components/projects/DocumentsView.tsx - Admin portal
apps/web/components/companies/CompaniesView.tsx - API data source
apps/web/lib/data-source/api-source.ts
Portal API
- REST API
apps/api/src/app.module.ts - Token verification
apps/api/src/modules/auth/auth.controller.ts - Project workflow
apps/api/src/modules/projects/projects.controller.ts - Project service
apps/api/src/modules/projects/projects.service.ts - Sizing engine
apps/api/src/modules/sizing/default-sizing.engine.ts - Document service
apps/api/src/modules/documents/documents.service.ts
Tenant administration
- Company management
apps/api/src/modules/companies/companies.controller.ts - Location management
apps/api/src/modules/locations/locations.controller.ts - User management
apps/api/src/modules/users/users.service.ts
External services
- PostgreSQL
- Amazon Cognito
- HubSpot CRM
- Amazon S3
Shared domain
- Contracts and domain
packages/shared/src/contracts.ts
Other components
- Integrator
Connections 27
- Integrator → Amazon Cognito: signs in
- Integrator → Project workflow: configures project
- Project workflow → Sizing calculator: configures sizing
- Project workflow → Project data room: manages files
- Project workflow → API data source: requests data
- Sizing calculator → API data source: saves configuration
- Project data room → API data source: uploads and retrieves
- Admin portal → API data source: manages tenants
- API data source → REST API: REST requests
- REST API → Token verification: guards routes
- REST API → Project workflow: routes projects
- REST API → Document service: routes documents
- REST API → Company management: routes companies
- REST API → Location management: routes locations
- REST API → User management: routes users
- Project workflow → Project service: invokes
- Project service → PostgreSQL: reads and writes
- Project workflow → Sizing engine: computes sizing
- Project workflow → HubSpot CRM: submits quote
- Document service → Amazon S3: stores documents
- Document service → HubSpot CRM: stores files
- Company management → PostgreSQL: reads and writes
- Location management → PostgreSQL: reads and writes
- User management → PostgreSQL: reads and writes
- Token verification → Amazon Cognito: verifies tokens
- Project workflow → Contracts and domain: uses shared types
- Sizing engine → Contracts and domain: uses sizing types