/project-root
│
├── package.json
├── .env
├── .env.example
├── .gitignore
├── README.md
│
├── prisma
│   ├── schema.prisma
│   └── migrations/
│
├── src
│   ├── server.js           # server start file (entry)
│   ├── app.js              # express config
│
│   ├── config              # global configurations
│   │   ├── prisma.js       # Prisma Client
│   │   ├── logger.js       # winston/pino logger config
│   │   ├── cors.js         # cors settings
│   │   └── env.js          # environment loader/validator
│
│   ├── models              # Data mappers (Prisma model helpers)
│   │   ├── index.js        # exports prisma client
│   │   ├── User.js
│   │   ├── Location.js
│   │   ├── Subscription.js
│   │   ├── Plan.js
│   │   └── ...any future models
│
│   ├── routes              # HTTP Routes
│   │   ├── index.js
│   │   ├── user.routes.js
│   │   ├── location.routes.js
│   │   ├── subscription.routes.js
│   │   ├── auth.routes.js
│   │   └── webhook.routes.js    # Stripe / GHL
│
│   ├── controllers         # only request handling + validation
│   │   ├── user.controller.js
│   │   ├── auth.controller.js
│   │   ├── location.controller.js
│   │   ├── subscription.controller.js
│   │   ├── webhook.controller.js
│   │   └── ...more
│
│   ├── services            # business logic
│   │   ├── user.service.js
│   │   ├── auth.service.js
│   │   ├── location.service.js
│   │   ├── subscription.service.js
│   │   ├── ghl.service.js          # GoHighLevel API Logic
│   │   ├── clerk.service.js        # Clerk API logic
│   │   ├── stripe.service.js       # Stripe logic
│   │   └── email.service.js        # SendGrid/Mailgun
│
│   ├── utils
│   │   ├── apiResponse.js
│   │   ├── error.js                # custom error classes
│   │   ├── validator.js            # yup/joi validators
│   │   └── helper.js
│
│   ├── middleware
│   │   ├── auth.js
│   │   ├── isAdmin.js
│   │   ├── rateLimit.js
│   │   └── errorHandler.js
│
│   ├── jobs                    # CRON / background tasks
│   │   ├── index.js
│   │   ├── heatmapScan.job.js  # later
│   │   ├── seoScore.job.js
│   │   └── cleanup.job.js
│
│   ├── integrations            # external API integrations
│   │   ├── google.js           # Google Business Profile API wrapper
│   │   ├── ghl.js              # GHL API wrapper
│   │   ├── stripe.js           # Stripe SDK wrapper
│   │   └── clerk.js            # Clerk SDK wrapper
│
│   ├── constants               # central reference values
│   │   ├── planTypes.js
│   │   ├── roles.js
│   │   └── messages.js
│
│   └── tests                   # Jest/ Mocha tests
│       ├── user.test.js
│       └── auth.test.js
