How adityasonigrowlity-tech/esg-tech-brsr-report works
This is a BRSR reporting web application: users upload a prior-year PDF, enter current-year data, review Principle 3 and 6 indicators, and export a report. The home page coordinates the workflow; a state hook restores and saves year-specific report data. Authentication and persistence are separate supporting layers. PDF parsing delegates text extraction to a worker and uses an external language-model service for extraction. Source excerpts are partial, so links for unsampled component wiring are omitted.
Main entry points: page.tsx Report workspace · parse-pdf/route.ts PDF parsing API · auth.ts Credentials auth · signup/route.ts Signup API
Components 20
BRSR workflow
- Report workspace
src/app/page.tsx - Dashboard
src/features/brsr/components/BrsrDashboard.tsx - PDF upload
src/features/brsr/components/DataUpload.tsx - Data entry
src/features/brsr/components/BrsrWizard.tsx - Excel import
src/features/brsr/components/ExcelImportPanel.tsx - Report review
src/features/brsr/components/BrsrReview.tsx
Data processing
- PDF parsing API
src/app/api/brsr/parse-pdf/route.ts - PDF text worker
pdf-worker.cjs - Language model
- PDF generation API
src/app/api/brsr/generate-pdf/route.tsx - BRSR metrics
src/features/brsr/types.ts
Authentication
- Signup API
src/app/api/auth/signup/route.ts - Credentials auth
src/auth.ts - Auth route
src/app/api/auth/[...nextauth]/route.ts - Sign-in page
src/app/auth/signin/page.tsx - Sign-up page
src/app/auth/signup/page.tsx
State persistence
- Report state hook
src/features/brsr/hooks/useBrsrState.ts - Report state API
src/app/api/brsr/state/route.ts - Supabase database
src/lib/db.ts
Other components
- Report user
Connections 22
- Report user → Report workspace: uses
- Report workspace → Dashboard: renders
- Report workspace → PDF upload: renders
- Report workspace → Data entry: renders
- Report workspace → Report review: renders
- Report workspace → Report state hook: manages state
- Report workspace → PDF parsing API: uploads PDF
- PDF parsing API → PDF text worker: extracts text
- PDF parsing API → Language model: extracts fields
- PDF parsing API → Report workspace: returns parsed data
- Report workspace → BRSR metrics: calculates metrics
- Report review → PDF generation API: requests export
- PDF generation API → Report review: returns PDF
- Report state hook → Report state API: loads and saves
- Report state API → Credentials auth: checks session
- Report state API → Supabase database: reads and writes
- Auth route → Credentials auth: dispatches
- Credentials auth → Supabase database: reads users
- Signup API → Supabase database: creates users
- Sign-in page → Auth route: signs in
- Sign-up page → Signup API: registers
- Signup API → Credentials auth: hashes password