Topology - HoseaCodes/PropFlow-UI GitHub Wiki


System Topology (High-Level Overview)

             +-------------------+
             |     End Users     |
             | (Airbnb Hosts)    |
             +--------+----------+
                      |
                      v
         +------------+-------------+
         |      Angular Frontend    |  (Hosted on Vercel)
         |  - Weekly Report UI      |
         |  - Dashboard + Charts    |
         |  - Email trigger button  |
         +------------+-------------+
                      |
        HTTPS (API Calls) | 
                      v
         +------------+-------------+
         |   Node.js + Express API  |  (Hosted on EC2)
         |  - REST API              |
         |  - Business Logic        |
         |  - Cron Jobs (weekly)    |
         +------------+-------------+
                      |
    +-----------------+-----------------+
    |                                   |
    v                                   v
+-----------+                    +-------------------+
| MongoDB   |  (Atlas or EC2)   |   OpenAI API       |
| - Bookings                     | - Review analysis |
| - Weekly Reports               | - Suggestions     |
| - Property Data                +-------------------+
| - Operational Costs            |
+-----------+-------------------+
            |
            v
     +------+-------------------------+
     |   Nodemailer / Mailgun / SES   | (Transactional Emails)
     |   - Sends weekly report email  |
     +-------------------------------+

Deployment Notes

  • Frontend: Deployed to Vercel

    • Environment variables for API base URL

    • Fetches weekly reports and user preferences

  • Backend (API + Scheduler): Deployed to EC2

    • Uses PM2 or Docker for uptime

    • Node Cron triggers report generation weekly

    • Makes outbound requests to OpenAI

  • Database: Use MongoDB Atlas for easier scaling + reliability

  • AI Layer: Uses OpenAI GPT-4 via API (can later replace with fine-tuned local model)

  • Email Service: Use Nodemailer with SMTP (Gmail for dev, Mailgun or SES in prod)


Optional Extensions

Component Description
Google Calendar Sync Sync calendar for availability and marketing timing
Stripe / RevenueCat Handle payments for subscription plans
Firebase Auth Replace or enhance login with email/social login
Analytics (PostHog, LogRocket) Track usage and improve retention
Caching Layer (Redis) Speed up frequent data reads for AI Copilot queries
⚠️ **GitHub.com Fallback** ⚠️