How msr82302-arch/traveleasily works
EasyTravels is a visa-processing portal and consular operations console. Travelers explore destinations, prepare an application with passport scanning, submit it, and track application status, grants, and notification receipts in a wallet; staff manage applications, verification, permissions, and notifications. The frontend application context owns application state and generates lifecycle notifications, while the Django application API invokes backend notification services. The README also documents Gemini-powered visa advice and an administrative command center. Sampled frontend state appears partly simulated; excerpts do not establish how it connects to the backend, payment processing, or external email delivery.
Main entry points: ApplicationContext.tsx Application Context · AdminDashboard.tsx Admin Dashboard · ApplicationWizard.tsx Application Wizard · App.tsx Portal Router
Components 30
Traveler Portal
- Portal Router
src/App.tsx - Visa Destinations
src/data/destinations.ts - Document Wallet
src/components/wallet/DocumentWallet.tsx - Visa PDF Viewer
src/components/common/PdfVisaViewer.tsx - AI Visa Concierge
src/components/ai/AiConciergeModal.tsx
Application Workflow
- Application Wizard
src/components/apply/ApplicationWizard.tsx - Passport Scanner
src/components/apply/OcrScannerStep.tsx - Application Form
src/components/apply/ApplicationFormStep.tsx - Application Checkout
src/components/apply/CheckoutStep.tsx - Application Context
src/context/ApplicationContext.tsx
Consular Operations
- Staff Auth Context
src/context/AuthContext.tsx - Admin Dashboard
src/components/admin/AdminDashboard.tsx - Document Verifier
src/components/admin/DocumentVerifierDrawer.tsx - Staff Management
src/components/admin/StaffManagementTab.tsx - Roles and Permissions
src/components/admin/RolesManagementTab.tsx - Notification Management
src/components/admin/NotificationManagementTab.tsx
Backend Services
- Application API
backend/applications/views.py - Application Records
backend/applications/models.py - Accounts API
backend/accounts/views.py - Account Records
backend/accounts/models.py - Notification Service
backend/notifications/services.py - Notification Records
backend/notifications/models.py - Notification Tasks
backend/notifications/tasks.py
Shared Capabilities
- Language Context
src/context/LanguageContext.tsx - Application Types
src/types/visa.ts - Country Guidance
src/data/countryKnowledge.ts - Frontend Notifications
src/services/emailService.ts - Notification Types
src/types/notifications.ts
Other components
- Traveler
- Gemini AI
Connections 33
- Traveler → Portal Router: uses portal
README.md - Portal Router → Application Context: wraps provider
src/App.tsx - Portal Router → Application Wizard: routes to
src/App.tsx - Portal Router → Document Wallet: routes to
src/App.tsx - Portal Router → Admin Dashboard: routes to
src/App.tsx - Application Wizard → Passport Scanner: renders step
src/components/apply/ApplicationWizard.tsx - Application Wizard → Application Form: renders step
src/components/apply/ApplicationWizard.tsx - Application Wizard → Application Checkout: renders step
src/components/apply/ApplicationWizard.tsx - Application Wizard → Application Context: uses state
src/components/apply/ApplicationWizard.tsx - Application Wizard → Visa Destinations: reads options
src/components/apply/ApplicationWizard.tsx - Application Form → Application Context: updates draft
src/components/apply/ApplicationFormStep.tsx - Application Context → Frontend Notifications: generates notifications
src/context/ApplicationContext.tsx - Application Context → Application Types: uses types
src/context/ApplicationContext.tsx - Document Wallet → Application Context: reads applications
src/components/wallet/DocumentWallet.tsx - Document Wallet → Visa PDF Viewer: renders grants
src/components/wallet/DocumentWallet.tsx - AI Visa Concierge → Application Context: uses context
src/components/ai/AiConciergeModal.tsx - AI Visa Concierge → Country Guidance: reads guidance
src/components/ai/AiConciergeModal.tsx - AI Visa Concierge → Gemini AI: requests advice
README.md - Admin Dashboard → Application Context: reads applications
src/components/admin/AdminDashboard.tsx - Admin Dashboard → Staff Auth Context: uses permissions
src/components/admin/AdminDashboard.tsx - Admin Dashboard → Document Verifier: renders drawer
src/components/admin/AdminDashboard.tsx - Admin Dashboard → Staff Management: renders tab
src/components/admin/AdminDashboard.tsx - Admin Dashboard → Roles and Permissions: renders tab
src/components/admin/AdminDashboard.tsx - Admin Dashboard → Notification Management: renders tab
src/components/admin/AdminDashboard.tsx - Admin Dashboard → Frontend Notifications: uses email service
src/components/admin/AdminDashboard.tsx - Staff Management → Staff Auth Context: manages staff
- Staff Management → Frontend Notifications: dispatches invitation
- Application Context → Application API: backend link unclear
- Application API → Application Records: uses records
backend/applications/views.py - Application API → Notification Service: triggers notifications
backend/applications/views.py - Accounts API → Account Records: uses records
backend/accounts/views.py - Notification Service → Notification Records: creates records
backend/notifications/services.py - Notification Tasks → Notification Service: calls service
backend/notifications/tasks.py