chore: Remove migrated files from old .auto-build-data/ location

This commit is contained in:
2025-12-22 18:15:19 +02:00
parent 04369bed56
commit fed2e68fa2
5 changed files with 0 additions and 2373 deletions

View File

@@ -1,406 +0,0 @@
# Unified App Migration Checklist
**Track your progress** as you implement the unified app.
---
## Phase 1: Project Setup (0.5 days)
### Directory Structure
- [ ] Create directory structure in root (`/mnt/e/proiecte/roa2web/`)
- [ ] Create `src/` subdirectories:
- [ ] `src/modules/reports/views/`
- [ ] `src/modules/reports/stores/`
- [ ] `src/modules/reports/services/`
- [ ] `src/modules/data-entry/views/receipts/`
- [ ] `src/modules/data-entry/components/ocr/`
- [ ] `src/modules/data-entry/stores/`
- [ ] `src/modules/data-entry/services/`
- [ ] `src/shared/components/`
- [ ] `src/shared/stores/`
- [ ] `src/shared/styles/`
- [ ] `src/config/`
- [ ] `src/router/`
- [ ] `src/assets/css/`
### Core Configuration Files
- [ ] Create `package.json` (merge dependencies from both apps)
- [ ] Create `vite.config.js` (dual proxy + lazy loading)
- [ ] Create `src/main.js` (PrimeVue setup)
- [ ] Create `.env.example` (environment variables)
- [ ] Create `.gitignore`
- [ ] Create `README.md`
### Copy Shared Resources
- [ ] Copy `shared/frontend/components/``src/shared/components/`
- [ ] Copy `shared/frontend/stores/``src/shared/stores/`
- [ ] Copy `shared/frontend/styles/``src/shared/styles/`
- [ ] Copy `reports-app/frontend/src/assets/css/``src/assets/css/`
### Verification
- [ ] Run `npm install` - succeeds
- [ ] Run `npm run dev` - starts on port 3000
- [ ] No console errors
---
## Phase 2: Module Migration (1 day)
### Reports Module - Views
- [ ] Copy `DashboardView.vue``src/modules/reports/views/`
- [ ] Copy `InvoicesView.vue``src/modules/reports/views/`
- [ ] Copy `BankCashRegisterView.vue``src/modules/reports/views/`
- [ ] Copy `TrialBalanceView.vue``src/modules/reports/views/`
- [ ] Copy `TelegramView.vue``src/modules/reports/views/`
- [ ] Copy `CacheStatsView.vue``src/modules/reports/views/`
- [ ] Update imports in all views (if needed)
### Reports Module - Stores
- [ ] Copy `dashboard.js``src/modules/reports/stores/`
- [ ] Copy `invoices.js``src/modules/reports/stores/`
- [ ] Copy `treasury.js``src/modules/reports/stores/`
- [ ] Copy `trialBalance.js``src/modules/reports/stores/`
- [ ] Copy `cacheStore.js``src/modules/reports/stores/`
- [ ] Update imports in all stores (if needed)
### Reports Module - Services
- [ ] Copy `api.js``src/modules/reports/services/` (in root)
- [ ] Update base URL to `/api/reports/` in api.js
- [ ] Test API calls route to localhost:8001
### Data Entry Module - Views
- [ ] Copy `ReceiptsListView.vue``src/modules/data-entry/views/receipts/`
- [ ] Copy `ReceiptCreateView.vue``src/modules/data-entry/views/receipts/`
- [ ] Update imports in views (if needed)
### Data Entry Module - Components
- [ ] Copy `OCRUploadZone.vue``src/modules/data-entry/components/ocr/`
- [ ] Copy `OCRPreview.vue``src/modules/data-entry/components/ocr/`
- [ ] Copy `OCRConfidenceIndicator.vue``src/modules/data-entry/components/ocr/`
- [ ] Update imports in components (if needed)
### Data Entry Module - Stores
- [ ] Copy `receiptsStore.js``src/modules/data-entry/stores/`
- [ ] Update imports in store (if needed)
### Data Entry Module - Services
- [ ] Copy `api.js``src/modules/data-entry/services/` (in root)
- [ ] Update base URL to `/api/data-entry/` in api.js
- [ ] Test API calls route to localhost:8003
### CSS Merge
- [ ] Review `data-entry-app/frontend/src/assets/css/main.css`
- [ ] Merge unique styles into `src/assets/css/` (in root)
- [ ] Resolve any style conflicts
- [ ] Test responsive design
### Verification
- [ ] All Reports views render without errors
- [ ] All Data Entry views render without errors
- [ ] No import errors in console
- [ ] CSS loads correctly
- [ ] No style conflicts
---
## Phase 3: Routing & Navigation (0.5 days)
### Router Configuration
- [ ] Create `src/router/index.js` (in root)
- [ ] Add `/login` route (eager loaded)
- [ ] Add `/reports/*` routes (lazy loaded)
- [ ] Add `/data-entry/*` routes (lazy loaded)
- [ ] Add redirect `/``/reports/dashboard`
- [ ] Add authentication guard
- [ ] Add 404 handling
- [ ] Test all routes work
### Menu Configuration
- [ ] Create `src/config/menu.js` (in root)
- [ ] Define "Rapoarte" section
- [ ] Define "Introduceri Date" section
- [ ] Define "Sistem" section
- [ ] Export menu configuration
### Feature Flags
- [ ] Create `src/config/features.js` (in root)
- [ ] Add reports.enabled flag
- [ ] Add dataEntry.enabled flag
- [ ] Add module-level flags
- [ ] Export isFeatureEnabled function
### Root Component
- [ ] Create `src/App.vue` (in root)
- [ ] Integrate AppHeader with unified menu
- [ ] Integrate SlideMenu with menu sections
- [ ] Add router-view
- [ ] Add Toast and ConfirmDialog
- [ ] Test menu navigation
### Verification
- [ ] Can navigate to all routes
- [ ] Menu highlights active route
- [ ] Authentication guard works
- [ ] Login redirects to dashboard
- [ ] 404 redirects work
---
## Phase 4: Error Boundaries & Resilience (0.25 days)
### Error Boundary Component
- [ ] Create `src/shared/components/ErrorBoundary.vue` (in root)
- [ ] Implement onErrorCaptured hook
- [ ] Add user-friendly error display
- [ ] Add retry functionality
- [ ] Add navigate away option
- [ ] Test with intentional error
### Module Layouts
- [ ] Create `src/modules/reports/ReportsLayout.vue` (in root)
- [ ] Wrap with ErrorBoundary component
- [ ] Create `src/modules/data-entry/DataEntryLayout.vue` (in root)
- [ ] Wrap with ErrorBoundary component
### Error Isolation Testing
- [ ] Introduce error in Reports module
- [ ] Verify Data Entry still works
- [ ] Introduce error in Data Entry module
- [ ] Verify Reports still works
- [ ] Test retry functionality
- [ ] Test navigate away functionality
### Feature Flags Testing
- [ ] Disable Reports module
- [ ] Verify menu items hidden
- [ ] Disable Data Entry module
- [ ] Verify menu items hidden
- [ ] Re-enable all modules
### Loading States
- [ ] Add loading spinner for lazy routes
- [ ] Test module switching loading
- [ ] Add skeleton screens (optional)
### Verification
- [ ] Error boundary catches component errors
- [ ] User sees friendly error message
- [ ] Can retry or navigate away
- [ ] Module isolation works (error in one doesn't crash other)
- [ ] Feature flags work
---
## Phase 5: Build & Deploy (0.25 days)
### Production Build
- [ ] Run `npm run build`
- [ ] Build succeeds without errors
- [ ] Check `dist/` output
- [ ] Verify chunks created:
- [ ] vendor-core.[hash].js
- [ ] vendor-primevue.[hash].js
- [ ] vendor-utils.[hash].js
- [ ] reports.[hash].js (lazy)
- [ ] data-entry.[hash].js (lazy)
- [ ] main.[hash].js
- [ ] main.[hash].css
### Bundle Analysis
- [ ] Install `rollup-plugin-visualizer`
- [ ] Analyze bundle sizes
- [ ] Verify total size ≤ sum of current apps
- [ ] Check for duplicate dependencies
### Local Preview
- [ ] Run `npm run preview`
- [ ] Test all routes work
- [ ] Test API calls work
- [ ] Test error boundaries
- [ ] Test lazy loading
### IIS Configuration
- [ ] Create `web.config` (in root) with URL rewrite rules
- [ ] Add SPA routing rule (all → index.html)
- [ ] Add proxy rule: `/api/reports/*``http://localhost:8001/api/*`
- [ ] Add proxy rule: `/api/data-entry/*``http://localhost:8003/api/*`
- [ ] Add proxy rule: `/uploads/*``http://localhost:8003/uploads/*`
### Staging Deployment
- [ ] Deploy to staging IIS site
- [ ] Test all routes
- [ ] Test API calls
- [ ] Test error boundaries
- [ ] Test on different browsers
- [ ] Test on mobile devices
### Production Deployment
- [ ] Backup current IIS configuration
- [ ] Backup current builds
- [ ] Deploy unified app
- [ ] Test all routes
- [ ] Test API calls
- [ ] Monitor error logs
### Verification
- [ ] Build succeeds
- [ ] Chunks split correctly
- [ ] IIS deployment works
- [ ] API routing correct
- [ ] All features work in production
---
## Testing Checklist
### Manual Testing
- [ ] Login flow works
- [ ] Navigate to all Reports views
- [ ] Navigate to all Data Entry views
- [ ] Switch between modules
- [ ] Test company selector
- [ ] Test period selector
- [ ] Test logout
- [ ] Test on mobile (375px)
- [ ] Test on tablet (768px)
- [ ] Test on desktop (1920px)
### E2E Tests
- [ ] Create `tests/e2e/login.spec.js` (in root)
- [ ] Create `tests/e2e/reports-navigation.spec.js` (in root)
- [ ] Create `tests/e2e/data-entry-navigation.spec.js` (in root)
- [ ] Create `tests/e2e/module-switching.spec.js` (in root)
- [ ] Create `tests/e2e/error-isolation.spec.js` (in root)
- [ ] Run all E2E tests - pass
### Performance Testing
- [ ] Run Lighthouse audit
- [ ] Performance score ≥ 90
- [ ] Initial load < 2 seconds
- [ ] Module switching < 500ms (cached)
---
## Post-Implementation Checklist
### Documentation Updates
- [ ] Update `CLAUDE.md` - Architecture section
- [ ] Update `CLAUDE.md` - Deployment section
- [ ] Update `README.md` - Quick start
- [ ] Update `README.md` - URL structure
- [ ] Update `DEPLOYMENT_GUIDE.md` - IIS configuration
- [ ] Update `docs/ARCHITECTURE_SCHEMA.md` - Diagrams
- [ ] Update `deployment/windows/README.md` - Deployment steps
### Cleanup (After 1 Week)
- [ ] Archive `reports-app/frontend/` `reports-app/frontend-archived/`
- [ ] Archive `data-entry-app/frontend/` `data-entry-app/frontend-archived/`
- [ ] Update `start-test.sh` to use root directory
- [ ] Update `start-data-entry.sh` to use root directory
- [ ] Update CI/CD pipelines (if any)
- [ ] Document migration in CHANGELOG.md
### Monitoring (First Week)
- [ ] Day 1: Review error logs
- [ ] Day 2: Review error logs
- [ ] Day 3: Review error logs
- [ ] Day 4: Review error logs
- [ ] Day 5: Review error logs
- [ ] Day 6: Review error logs
- [ ] Day 7: Review error logs + user feedback
### Optimization (First Month)
- [ ] Week 2: Analyze bundle sizes
- [ ] Week 2: Optimize images/assets
- [ ] Week 3: Consider further code splitting
- [ ] Week 3: Add performance monitoring
- [ ] Week 4: Evaluate feature flag usage
- [ ] Week 4: Plan next improvements
---
## Common Issues & Solutions
### Issue: CSS Conflicts
**Solution**: Use CSS modules, check `docs/CSS_PATTERNS.md`
### Issue: Import Errors
**Solution**: Update import paths, check alias configuration in vite.config.js
### Issue: API Calls Failing
**Solution**: Verify proxy configuration, check backend is running
### Issue: Error Boundary Not Catching
**Solution**: Check onErrorCaptured implementation, add global error handler
### Issue: Large Bundle Size
**Solution**: Review manualChunks, enable tree shaking, lazy load more
### Issue: IIS Routing Not Working
**Solution**: Check web.config URL rewrite rules, verify IIS URL Rewrite module installed
### Issue: Store Contamination
**Solution**: Use module-scoped stores, check for global state
### Issue: PrimeVue Theme Conflicts
**Solution**: Use single theme (saga-blue), override in vendor CSS
---
## Progress Tracking
**Phase 1: Setup**
- Started: ___________
- Completed: ___________
- Time Spent: ___________ hours
**Phase 2: Migration**
- Started: ___________
- Completed: ___________
- Time Spent: ___________ hours
**Phase 3: Routing**
- Started: ___________
- Completed: ___________
- Time Spent: ___________ hours
**Phase 4: Error Boundaries**
- Started: ___________
- Completed: ___________
- Time Spent: ___________ hours
**Phase 5: Build & Deploy**
- Started: ___________
- Completed: ___________
- Time Spent: ___________ hours
**Total Time**: ___________ hours (Estimated: 20 hours)
---
## Success Metrics
### Deployment
- [ ] Single IIS site running (not 2)
- [ ] Single build process (not 2)
- [ ] Zero downtime during deployment
### Performance
- [ ] Initial load < 2 seconds
- [ ] Module switching < 500ms
- [ ] Lighthouse score 90
- [ ] Bundle size sum of old apps
### Quality
- [ ] 100% feature parity
- [ ] All E2E tests passing
- [ ] Zero user-reported bugs (first week)
- [ ] Error isolation verified
---
**Status**: Not Started | 🔵 In Progress | Complete
**Last Updated**: ___________
**Completed By**: ___________
**Production Deploy Date**: ___________

View File

@@ -1,346 +0,0 @@
# Unified App Specification - Executive Summary
**Created**: 2025-12-22
**Status**: Implementation-Ready
**Estimated Effort**: 2.5 days
---
## What We're Building
A single unified SPA that consolidates the Reports App and Data Entry App into one application with:
- Unified menu navigation between modules
- Module isolation via error boundaries
- Lazy loading for optimal performance
- Single build and deployment process
---
## Key Requirements (Top 5)
1. **Unified Navigation**: Single menu with Reports and Data Entry sections
2. **Module Isolation**: Error in one module doesn't crash the other
3. **Lazy Loading**: Modules loaded on-demand, not upfront
4. **Simplified Deployment**: Single IIS site instead of 2
5. **Zero Backend Changes**: Both backends (8001, 8003) remain unchanged
---
## Technical Approach
### Architecture: Pragmatic Monolith
**NOT using micro-frontends** because:
- Only 1 developer (not 20+ team)
- Weekly deploys (not multiple times per day)
- 1-5 concurrent users (not millions)
- Same tech stack (Vue 3 only)
**Using instead**:
- Error boundaries for isolation (50-70% blast radius reduction)
- Lazy loading for performance
- Feature flags for module control
- Shared dependencies for smaller bundles
### URL Structure
```
/login → Login
/ → Redirect to /reports/dashboard
/reports/dashboard → Dashboard
/reports/invoices → Invoices
/reports/bank-cash → Bank/Cash
/reports/trial-balance → Trial Balance
/reports/telegram → Telegram Bot
/reports/cache-stats → Cache Stats
/data-entry → Receipts List
/data-entry/create → New Receipt
/data-entry/:id → View Receipt
/data-entry/:id/edit → Edit Receipt
```
### API Routing
**Vite Dev Proxy**:
- `/api/reports/*``http://localhost:8001/api/*`
- `/api/data-entry/*``http://localhost:8003/api/*`
- `/uploads/*``http://localhost:8003/uploads/*`
**IIS Production Proxy**:
- Same routing via web.config URL rewrite rules
---
## Critical Files (Top 10)
### To Create (in root directory)
1. `package.json` - Merged dependencies
2. `vite.config.js` - Dual proxy + lazy loading
3. `src/main.js` - App initialization
4. `src/App.vue` - Root with unified menu
5. `src/router/index.js` - Unified router
6. `src/config/menu.js` - Menu configuration
7. `src/shared/components/ErrorBoundary.vue` - Error isolation
8. `src/modules/reports/ReportsLayout.vue` - Reports wrapper
9. `src/modules/data-entry/DataEntryLayout.vue` - Data Entry wrapper
10. `web.config` - IIS configuration
### To Migrate
**Reports Module** (7 views, 5 stores, 1 service):
- Views: Dashboard, Invoices, BankCash, TrialBalance, Telegram, CacheStats
- Stores: dashboard, invoices, treasury, trialBalance, cacheStore
- Service: api.js (change base URL to `/api/reports/`)
**Data Entry Module** (2 views, 3 components, 1 store, 1 service):
- Views: ReceiptsList, ReceiptCreate
- Components: OCRUploadZone, OCRPreview, OCRConfidenceIndicator
- Store: receiptsStore
- Service: api.js (change base URL to `/api/data-entry/`)
**Shared** (5 components, 3 stores):
- Components: LoginView, AppHeader, SlideMenu, CompanySelector, PeriodSelector
- Stores: auth, companies, accountingPeriod (factories)
**CSS**: Copy entire `reports-app/frontend/src/assets/css/` structure
---
## Implementation Phases
### Phase 1: Setup (0.5 days)
- Create directory structure
- Setup package.json, vite.config.js
- Copy shared components and CSS
**Verify**: `npm install` and `npm run dev` work
### Phase 2: Migration (1 day)
- Migrate all views, components, stores
- Update API service base URLs
- Merge CSS
**Verify**: All views render, no import errors
### Phase 3: Routing & Navigation (0.5 days)
- Create unified router with lazy loading
- Create menu configuration
- Create error boundaries
- Integrate AppHeader and SlideMenu
**Verify**: Navigation works, lazy loading works
### Phase 4: Error Boundaries & Resilience (0.25 days)
- Test error isolation
- Test feature flags
- Add loading states
**Verify**: Error in one module doesn't crash other
### Phase 5: Build & Deploy (0.25 days)
- Production build
- IIS configuration
- Deploy to staging
- Test all routes
**Verify**: Build succeeds, IIS works, APIs route correctly
---
## Expected Build Output
```
dist/
├── index.html
├── assets/
│ ├── vendor-core.[hash].js (~150KB) - Vue, Router, Pinia
│ ├── vendor-primevue.[hash].js (~200KB) - PrimeVue components
│ ├── vendor-utils.[hash].js (~80KB) - Axios, date-fns
│ ├── vendor-charts.[hash].js (~150KB) - Chart.js (lazy)
│ ├── vendor-export.[hash].js (~200KB) - XLSX, jsPDF (lazy)
│ ├── reports.[hash].js (~150KB) - Reports module (lazy)
│ ├── data-entry.[hash].js (~100KB) - Data Entry module (lazy)
│ ├── main.[hash].js (~50KB) - App shell
│ └── main.[hash].css (~80KB) - Global CSS
```
---
## Success Criteria
### Must Have (Before Production)
- [ ] All Reports views work correctly
- [ ] All Data Entry views work correctly
- [ ] Navigation preserves auth and company/period
- [ ] Error in one module doesn't crash other
- [ ] Single IIS site deployment works
- [ ] API routing to both backends works
### Performance Targets
- [ ] Initial load < 2 seconds
- [ ] Module switching < 500ms (cached)
- [ ] Bundle size sum of current apps
- [ ] Lighthouse score 90
### Testing
- [ ] E2E tests pass for login
- [ ] E2E tests pass for Reports navigation
- [ ] E2E tests pass for Data Entry navigation
- [ ] E2E tests pass for module switching
- [ ] E2E tests verify error isolation
---
## Risks & Mitigations
| Risk | Mitigation |
|------|------------|
| CSS conflicts | Use design tokens, test thoroughly |
| Large bundle size | Lazy loading, code splitting, tree shaking |
| Error boundary gaps | Test error scenarios, add global handler |
| IIS deployment complexity | Document config, test on staging first |
| Store contamination | Module-scoped stores, test isolation |
---
## Rollback Plan
**If deployment fails**:
1. **Keep both apps running** (zero downtime)
- Leave `/roa2web/` and `/data-entry/` running
- Add unified app at `/unified/` for testing
2. **Quick rollback** (15 minutes)
- Restore IIS config from backup
- Restore builds from `dist-backup/`
3. **Git rollback**
- Tag before merge: `v1.0-pre-unified`
- Revert if needed: `git reset --hard v1.0-pre-unified`
---
## Post-Implementation
### After 1 Week of Stability
**Archive old frontends**:
```bash
mv reports-app/frontend reports-app/frontend-archived
mv data-entry-app/frontend data-entry-app/frontend-archived
```
**Update documentation**:
- CLAUDE.md - Architecture and deployment
- DEPLOYMENT_GUIDE.md - IIS configuration
- README.md - Quick start and commands
**Update scripts**:
- `./start-test.sh` - Point to root directory
- `./start-data-entry.sh` - Point to root directory
### Monitoring (First Month)
**Week 1**: Daily error log review
**Week 2-4**: Performance optimization
- Bundle size optimization
- Further code splitting
- Cache optimization
---
## Open Questions & Recommendations
### 1. PrimeVue Theme
**Question**: Use `saga-blue` (reports-app) or `lara-light-blue` (data-entry-app)?
**Recommendation**: `saga-blue` (reports-app is primary)
### 2. Feature Flags
**Question**: Config file or environment variables?
**Recommendation**: Config file for simplicity, env vars for override
### 3. Module Activation
**Question**: All active by default or opt-in?
**Recommendation**: All active by default (disable via config if needed)
### 4. Monitoring
**Question**: Console logs only or add Sentry/similar?
**Recommendation**: Console logs for MVP, add monitoring later
---
## Key Decisions Made
1. **Architecture**: Pragmatic monolith (not micro-frontends)
2. **Error Isolation**: Error boundaries per module
3. **Code Splitting**: Lazy loading with manual chunks
4. **URL Structure**: `/reports/*` and `/data-entry/*`
5. **API Routing**: Proxy via Vite (dev) and IIS (prod)
6. **CSS System**: Use reports-app CSS structure
7. **PrimeVue Theme**: saga-blue (from reports-app)
8. **Shared Components**: Use existing from `shared/frontend/`
9. **Deployment**: Single IIS site at root `/`
10. **Backends**: No changes (remain at 8001, 8003)
---
## Documentation Locations
**Complete Spec**: `.auto-build-data/specs/unified-app/spec.md`
**Critical Files**: `.auto-build-data/specs/unified-app/critical-files.md`
**This Summary**: `.auto-build-data/specs/unified-app/SUMMARY.md`
**Note**: All implementation files will be created in the project root directory (`.` or `/mnt/e/proiecte/roa2web/`)
**Reference Docs**:
- `IMPLEMENTATION_PLAN_UNIFIED_APP.md` - Original plan
- `CLAUDE.md` - Project documentation (update after)
- `docs/ONBOARDING_CSS.md` - CSS system guide
- `docs/CSS_PATTERNS.md` - Available CSS patterns
---
## Next Steps
1. **Read the complete spec**: `spec.md` (detailed technical specification)
2. **Review critical files**: `critical-files.md` (files to migrate/create)
3. **Start Phase 1**: Project setup (0.5 days)
4. **Follow implementation plan**: 5 phases over 2.5 days
5. **Test thoroughly**: E2E tests before production
6. **Deploy to staging**: Test IIS configuration
7. **Deploy to production**: Single site deployment
8. **Monitor for 1 week**: Daily error log review
9. **Archive old apps**: After stability confirmed
10. **Update docs**: Complete documentation updates
---
## Quick Stats
- **Files to create**: ~15
- **Files to migrate**: ~20
- **CSS files to copy**: ~30
- **Total files affected**: ~65
- **Estimated time**: 2.5 days (20 hours)
- **Complexity**: Medium
- **Risk level**: Medium-Low (with mitigations)
---
**Specification Status**: Implementation-Ready
**All Technical Decisions**: Made
**Rollback Plan**: Defined
**Success Criteria**: Defined
**Ready to implement!** 🚀
---
**Version**: 1.0
**Created**: 2025-12-22
**Author**: Claude (Specification Agent)
**For**: ROA2WEB Unified App Feature

View File

@@ -1,477 +0,0 @@
# 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/`
1. `DashboardView.vue` - Main dashboard with metrics
2. `InvoicesView.vue` - Invoices table and filters
3. `BankCashRegisterView.vue` - Bank and cash register transactions
4. `TrialBalanceView.vue` - Trial balance report
5. `TelegramView.vue` - Telegram bot management
6. `CacheStatsView.vue` - Cache statistics
7. ~~`LoginView.vue`~~ - USE SHARED VERSION
### 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/`
1. `ReceiptsListView.vue` - List of receipts with filters
2. `ReceiptCreateView.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/`
1. `OCRUploadZone.vue` - File upload zone for receipts
2. `OCRPreview.vue` - Preview uploaded receipt image
3. `OCRConfidenceIndicator.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/`
1. `dashboard.js` - Dashboard data and metrics
2. `invoices.js` - Invoices data and filters
3. `treasury.js` - Bank/cash register data
4. `trialBalance.js` - Trial balance data
5. `cacheStore.js` - Cache statistics
**SKIP** (use shared):
- ~~`auth.js`~~ - Use `/mnt/e/proiecte/roa2web/shared/frontend/stores/auth.js`
- ~~`companies.js`~~ - Use `/mnt/e/proiecte/roa2web/shared/frontend/stores/companies.js`
- ~~`accountingPeriod.js`~~ - Use `/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/`
1. `receiptsStore.js` - Receipts data and CRUD operations
**SKIP** (use shared):
- ~~`auth.js`~~ - Use shared
- ~~`companies.js`~~ - Use shared
- ~~`accountingPeriod.js`~~ - Use shared
---
## Services to Migrate
### Reports Module
Source: `/mnt/e/proiecte/roa2web/reports-app/frontend/src/services/`
Destination: `/mnt/e/proiecte/roa2web/src/modules/reports/services/`
1. `api.js` - **MODIFY**: Change base URL to `/api/reports/`
**Current**:
```javascript
const api = axios.create({
baseURL: '/api'
})
```
**New**:
```javascript
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/`
1. `api.js` - **MODIFY**: Change base URL to `/api/data-entry/`
**Current**:
```javascript
const api = axios.create({
baseURL: '/api'
})
```
**New**:
```javascript
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 overrides
- `global.css` - Global styles
- `main.css` - Main entry point
- `mobile.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/`
1. `login.css` - Login page styles
2. `layout/header.css` - Header styles
3. `layout/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**:
```vue
<ErrorBoundary module-name="Reports">
<router-view />
</ErrorBoundary>
```
**File**: `/mnt/e/proiecte/roa2web/src/modules/data-entry/DataEntryLayout.vue`
**Wrapper**:
```vue
<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**:
```bash
# 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
1. **CLAUDE.md** (root)
- Update architecture diagram
- Add unified-app section
- Mark old apps as archived
- Update deployment instructions
2. **README.md** (root)
- Update quick start
- Update deployment section
- Update URL structure
3. **DEPLOYMENT_GUIDE.md**
- Update IIS configuration
- Update build process
- Add rollback instructions
4. **docs/ARCHITECTURE_SCHEMA.md**
- Update architecture diagrams
- Document module structure
- Add error boundary architecture
### Deployment Documentation
5. **deployment/windows/README.md**
- Update deployment steps
- Update IIS configuration
- Update proxy rules
6. **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

File diff suppressed because it is too large Load Diff

View File

@@ -1,30 +0,0 @@
{
"feature": "unified-app",
"status": "SPEC_COMPLETE",
"created": "2025-12-22T01:09:00Z",
"updated": "2025-12-22T01:13:00Z",
"complexity": "medium",
"estimated_effort": "2.5 days",
"history": [
{
"status": "SPEC_DRAFT",
"at": "2025-12-22T01:09:00Z"
},
{
"status": "SPEC_COMPLETE",
"at": "2025-12-22T01:13:00Z"
}
],
"files": {
"spec": "spec.md",
"summary": "SUMMARY.md",
"critical_files": "critical-files.md",
"migration_checklist": "MIGRATION_CHECKLIST.md"
},
"stats": {
"files_to_create": 15,
"files_to_migrate": 20,
"css_files_to_copy": 30,
"total_files_affected": 65
}
}