Modified all specification files to reference the project root directory (.) instead of creating a new unified-app/ subdirectory: - spec.md: Updated project structure and all file paths - SUMMARY.md: Updated critical files paths and documentation references - critical-files.md: Updated all source/destination paths for migration - MIGRATION_CHECKLIST.md: Updated directory creation and file paths All implementation files will now be created directly in /mnt/e/proiecte/roa2web/ instead of /mnt/e/proiecte/roa2web/unified-app/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
12 KiB
Unified App - Critical Files Reference
Quick Reference: Files that will be most affected during implementation
Files to Analyze (Before Implementation)
Configuration Files
Reports App:
/mnt/e/proiecte/roa2web/reports-app/frontend/package.json- Dependencies to merge/mnt/e/proiecte/roa2web/reports-app/frontend/vite.config.js- Proxy config, build settings/mnt/e/proiecte/roa2web/reports-app/frontend/src/main.js- PrimeVue setup
Data Entry App:
/mnt/e/proiecte/roa2web/data-entry-app/frontend/package.json- Dependencies to merge/mnt/e/proiecte/roa2web/data-entry-app/frontend/vite.config.js- Proxy config/mnt/e/proiecte/roa2web/data-entry-app/frontend/src/main.js- PrimeVue setup
Application Entry Points
Reports App:
/mnt/e/proiecte/roa2web/reports-app/frontend/src/App.vue- Root component, menu integration/mnt/e/proiecte/roa2web/reports-app/frontend/src/router/index.js- Router config
Data Entry App:
/mnt/e/proiecte/roa2web/data-entry-app/frontend/src/App.vue- Root component, menu integration/mnt/e/proiecte/roa2web/data-entry-app/frontend/src/router/index.js- Router config
Shared Components (Already Created)
/mnt/e/proiecte/roa2web/shared/frontend/components/LoginView.vue/mnt/e/proiecte/roa2web/shared/frontend/components/layout/AppHeader.vue/mnt/e/proiecte/roa2web/shared/frontend/components/layout/SlideMenu.vue/mnt/e/proiecte/roa2web/shared/frontend/components/CompanySelector.vue/mnt/e/proiecte/roa2web/shared/frontend/components/PeriodSelector.vue
Shared Stores (Factories)
/mnt/e/proiecte/roa2web/shared/frontend/stores/auth.js/mnt/e/proiecte/roa2web/shared/frontend/stores/companies.js/mnt/e/proiecte/roa2web/shared/frontend/stores/accountingPeriod.js
Views to Migrate
Reports Module (7 views)
Source: /mnt/e/proiecte/roa2web/reports-app/frontend/src/views/
Destination: /mnt/e/proiecte/roa2web/src/modules/reports/views/
DashboardView.vue- Main dashboard with metricsInvoicesView.vue- Invoices table and filtersBankCashRegisterView.vue- Bank and cash register transactionsTrialBalanceView.vue- Trial balance reportTelegramView.vue- Telegram bot managementCacheStatsView.vue- Cache statistics- USE SHARED VERSIONLoginView.vue
Data Entry Module (2 views + 3 components)
Views:
Source: /mnt/e/proiecte/roa2web/data-entry-app/frontend/src/views/receipts/
Destination: /mnt/e/proiecte/roa2web/src/modules/data-entry/views/receipts/
ReceiptsListView.vue- List of receipts with filtersReceiptCreateView.vue- Create/edit receipt form
Components:
Source: /mnt/e/proiecte/roa2web/data-entry-app/frontend/src/components/ocr/
Destination: /mnt/e/proiecte/roa2web/src/modules/data-entry/components/ocr/
OCRUploadZone.vue- File upload zone for receiptsOCRPreview.vue- Preview uploaded receipt imageOCRConfidenceIndicator.vue- OCR confidence indicator
Stores to Migrate
Reports Module (5 stores)
Source: /mnt/e/proiecte/roa2web/reports-app/frontend/src/stores/
Destination: /mnt/e/proiecte/roa2web/src/modules/reports/stores/
dashboard.js- Dashboard data and metricsinvoices.js- Invoices data and filterstreasury.js- Bank/cash register datatrialBalance.js- Trial balance datacacheStore.js- Cache statistics
SKIP (use shared):
- Useauth.js/mnt/e/proiecte/roa2web/shared/frontend/stores/auth.js- Usecompanies.js/mnt/e/proiecte/roa2web/shared/frontend/stores/companies.js- UseaccountingPeriod.js/mnt/e/proiecte/roa2web/shared/frontend/stores/accountingPeriod.js
Data Entry Module (1 store)
Source: /mnt/e/proiecte/roa2web/data-entry-app/frontend/src/stores/
Destination: /mnt/e/proiecte/roa2web/src/modules/data-entry/stores/
receiptsStore.js- Receipts data and CRUD operations
SKIP (use shared):
- Use sharedauth.js- Use sharedcompanies.js- Use sharedaccountingPeriod.js
Services to Migrate
Reports Module
Source: /mnt/e/proiecte/roa2web/reports-app/frontend/src/services/
Destination: /mnt/e/proiecte/roa2web/src/modules/reports/services/
api.js- MODIFY: Change base URL to/api/reports/
Current:
const api = axios.create({
baseURL: '/api'
})
New:
const api = axios.create({
baseURL: '/api/reports'
})
Data Entry Module
Source: /mnt/e/proiecte/roa2web/data-entry-app/frontend/src/services/
Destination: /mnt/e/proiecte/roa2web/src/modules/data-entry/services/
api.js- MODIFY: Change base URL to/api/data-entry/
Current:
const api = axios.create({
baseURL: '/api'
})
New:
const api = axios.create({
baseURL: '/api/data-entry'
})
CSS to Migrate
Reports Module CSS (COPY ENTIRE STRUCTURE)
Source: /mnt/e/proiecte/roa2web/reports-app/frontend/src/assets/css/
Destination: /mnt/e/proiecte/roa2web/src/assets/css/
Copy ALL files (this is the main CSS system):
core/- Design tokens (colors, spacing, typography)components/- Reusable UI patterns (buttons, forms, cards, tables, stats)patterns/- Interactive patterns (animations, dashboard, interactive)layout/- Page structure (containers, grid, navigation)utilities/- Utility classes (colors, spacing, flex, text, display)vendor/- PrimeVue overridesglobal.css- Global stylesmain.css- Main entry pointmobile.css- Mobile responsive styles
Data Entry Module CSS (MERGE)
Source: /mnt/e/proiecte/roa2web/data-entry-app/frontend/src/assets/css/
Analyze and merge unique styles:
main.css- Merge with reports-app main.css- Any component-specific styles - Integrate into unified system
Shared CSS
Source: /mnt/e/proiecte/roa2web/shared/frontend/styles/
Destination: /mnt/e/proiecte/roa2web/src/shared/styles/
login.css- Login page styleslayout/header.css- Header styleslayout/navigation.css- Navigation styles
Critical Implementation Files
1. Package Configuration
File: /mnt/e/proiecte/roa2web/package.json
Dependencies to merge:
- From reports-app: axios, chart.js, date-fns, jspdf, jspdf-autotable, qrcode.vue, xlsx
- From data-entry-app: All covered by reports-app
- Shared: vue@^3.4.0, vue-router@^4.2.5, pinia@^2.1.7, primevue@^3.46.0
2. Vite Configuration
File: /mnt/e/proiecte/roa2web/vite.config.js
Key sections:
- Dual proxy for
/api/reports/→http://localhost:8001 - Dual proxy for
/api/data-entry/→http://localhost:8003 - Lazy loading configuration (manualChunks)
- Alias configuration (@, @shared, @reports, @data-entry)
3. Application Entry
File: /mnt/e/proiecte/roa2web/src/main.js
Key setup:
- PrimeVue configuration (theme: saga-blue)
- Global components registration
- Router, Pinia, ToastService, ConfirmationService
- CSS imports
4. Root Component
File: /mnt/e/proiecte/roa2web/src/App.vue
Key elements:
- AppHeader with unified menu
- SlideMenu with module sections
- router-view
- Toast, ConfirmDialog
5. Router Configuration
File: /mnt/e/proiecte/roa2web/src/router/index.js
Key routes:
/login- LoginView (eager loaded)/reports/*- ReportsLayout (lazy loaded) with children/data-entry/*- DataEntryLayout (lazy loaded) with children- Authentication guard
6. Menu Configuration
File: /mnt/e/proiecte/roa2web/src/config/menu.js
Sections:
- Rapoarte (Reports)
- Introduceri Date (Data Entry)
- Sistem (System)
7. Feature Flags
File: /mnt/e/proiecte/roa2web/src/config/features.js
Flags:
- reports.enabled
- dataEntry.enabled
- Module-level flags
8. Error Boundary Component
File: /mnt/e/proiecte/roa2web/src/shared/components/ErrorBoundary.vue
Key features:
- onErrorCaptured hook
- User-friendly error display
- Retry functionality
- Navigate away option
9. Module Layouts
File: /mnt/e/proiecte/roa2web/src/modules/reports/ReportsLayout.vue
Wrapper:
<ErrorBoundary module-name="Reports">
<router-view />
</ErrorBoundary>
File: /mnt/e/proiecte/roa2web/src/modules/data-entry/DataEntryLayout.vue
Wrapper:
<ErrorBoundary module-name="Data Entry">
<router-view />
</ErrorBoundary>
Deployment Files
IIS Configuration
File: /mnt/e/proiecte/roa2web/web.config
Key rules:
- SPA routing (all routes → index.html)
- API proxy:
/api/reports/*→http://localhost:8001/api/* - API proxy:
/api/data-entry/*→http://localhost:8003/api/* - Uploads proxy:
/uploads/*→http://localhost:8003/uploads/*
Environment Variables
File: /mnt/e/proiecte/roa2web/.env.example
Variables:
# API Endpoints (dev only, production uses IIS proxy)
VITE_REPORTS_API=http://localhost:8001
VITE_DATA_ENTRY_API=http://localhost:8003
# Feature Flags
VITE_ENABLE_REPORTS=true
VITE_ENABLE_DATA_ENTRY=true
Testing Files
E2E Tests
New files to create:
/mnt/e/proiecte/roa2web/tests/e2e/login.spec.js/mnt/e/proiecte/roa2web/tests/e2e/reports-navigation.spec.js/mnt/e/proiecte/roa2web/tests/e2e/data-entry-navigation.spec.js/mnt/e/proiecte/roa2web/tests/e2e/module-switching.spec.js/mnt/e/proiecte/roa2web/tests/e2e/error-isolation.spec.js
Existing tests to adapt:
/mnt/e/proiecte/roa2web/reports-app/frontend/tests/- Update routes/mnt/e/proiecte/roa2web/data-entry-app/frontend/tests/- Update routes
Documentation Files to Update
Primary Documentation
-
CLAUDE.md (root)
- Update architecture diagram
- Add unified-app section
- Mark old apps as archived
- Update deployment instructions
-
README.md (root)
- Update quick start
- Update deployment section
- Update URL structure
-
DEPLOYMENT_GUIDE.md
- Update IIS configuration
- Update build process
- Add rollback instructions
-
docs/ARCHITECTURE_SCHEMA.md
- Update architecture diagrams
- Document module structure
- Add error boundary architecture
Deployment Documentation
-
deployment/windows/README.md
- Update deployment steps
- Update IIS configuration
- Update proxy rules
-
deployment/windows/docs/WINDOWS_DEPLOYMENT.md
- Complete Windows guide updates
File Count Summary
To Create: ~15 new files
- 9 core files (package.json, vite.config.js, main.js, App.vue, router, menu, features, ErrorBoundary, 2 layouts)
- 3 configuration files (.env.example, web.config, README.md)
- 3 documentation updates
To Migrate: ~20 files
- 7 Reports views
- 2 Data Entry views
- 3 Data Entry components
- 5 Reports stores
- 1 Data Entry store
- 2 API services
To Copy: ~30 CSS files
- Entire reports-app CSS structure
Total Files Affected: ~65 files
Time Estimates per File Type
| Task | Files | Avg Time | Total |
|---|---|---|---|
| Create core files | 9 | 30 min | 4.5 hours |
| Migrate views | 9 | 20 min | 3 hours |
| Migrate components | 3 | 15 min | 45 min |
| Migrate stores | 6 | 20 min | 2 hours |
| Migrate services | 2 | 30 min | 1 hour |
| Copy CSS | 1 | 1 hour | 1 hour |
| Configuration | 3 | 30 min | 1.5 hours |
| Documentation | 6 | 30 min | 3 hours |
| Testing & fixes | - | - | 4 hours |
Total: ~20 hours (~2.5 days)
Verification Checklist
After migrating each category:
Configuration Files ✓
- package.json has all dependencies
- vite.config.js has dual proxy
- main.js initializes correctly
- npm install succeeds
- npm run dev starts
Views ✓
- All Reports views render
- All Data Entry views render
- No import errors
- Routes work
Stores ✓
- All stores import correctly
- No duplicate store instances
- Shared stores work
- Module stores isolated
Services ✓
- API calls route to correct backend
- /api/reports/ → :8001
- /api/data-entry/ → :8003
- Auth headers preserved
CSS ✓
- No style conflicts
- Design tokens work
- PrimeVue theme consistent
- Responsive works
Router ✓
- All routes accessible
- Lazy loading works
- Auth guard works
- 404 redirects
Error Boundaries ✓
- Catches component errors
- Displays user message
- Module isolation works
- Can retry/navigate
Build ✓
- npm run build succeeds
- Chunks split correctly
- Bundle size acceptable
- Preview works
Last Updated: 2025-12-22 For: Unified App Implementation Reference: See spec.md for complete specification