Service Catalog#
| Service/Vendor | Category | Purpose | StudentHub Components Using It | Evidence (repo + file path + lines/config keys) | Secrets/Env Vars (names only) | Endpoints/Domains/Webhooks |
|---|---|---|---|---|---|---|
| AWS S3 | Storage | Hosts static frontend builds and stores backend exports | admin portal, backend | studenthub-admin/.circleci/config.yml, studenthub/README.md | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY | s3://studenthub-admin-dev/, s3://studenthub-admin-prod/, s3://studenthub-uploads-dev-server/ |
| AWS CloudFront | Hosting/CDN | CDN for serving static frontend assets | admin portal | studenthub-admin/.circleci/config.yml | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY | EWGE3N1OKYVZX (dev), E3PPAL159PAQIU (staging) |
| AWS ECR | Storage | Stores Docker images for backend deployment | backend | studenthub/README.md | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY | 438663597141.dkr.ecr.eu-west-2.amazonaws.com |
| CircleCI | Other | CI/CD pipeline for building and deploying frontend | admin portal | studenthub-admin/.circleci/config.yml | context: org-global | N/A |
| Railway | Hosting | Deploys and manages backend environments and MySQL databases | backend, cron/worker | studenthub/railway/railway.md, studenthub/environments/dev-server-railway/deployments/july_2025/3_july_2025_deployment.sh | RAILWAY_DOCKERFILE_PATH | mysql.railway.internal |
| Netlify | Hosting/CDN | Hosts static frontend portals (SPA routing) | staff portal, admin portal | studenthub-staff/src/_redirects, studenthub-staff/angular.json, studenthub-admin/src/netlify.toml | NODE_VERSION, NODE_OPTIONS | N/A |
| Algolia | Search | Provides search indexing for backend data | backend | studenthub/docs/setup.md | N/A | N/A |
| Mixpanel | Analytics | Tracks user events and analytics | backend, admin portal, frontend portals | studenthub/docs/analytics.md | MIXPANEL_KEY (configurable in admin) | N/A |
| Segment | Analytics | Aggregates analytics events and forwards to destinations | backend, admin portal, frontend portals | studenthub/docs/analytics.md | SEGMENT_KEY (configurable in admin) | N/A |
| Puppeteer | Other | Headless browser automation for backend tasks | backend | studenthub/docs/setup.md | N/A | N/A |
Hosting & Environments#
The admin portal is hosted on AWS S3 with CloudFront as the CDN. Deployments are managed via CircleCI, which builds the Ionic app using Docker, uploads the build to S3, and invalidates CloudFront caches. There are two environments: dev (triggered by the develop branch, deployed to studenthub-admin-dev S3 bucket, CloudFront distribution EWGE3N1OKYVZX) and staging (triggered by the master branch, deployed to studenthub-admin-prod S3 bucket, CloudFront distribution E3PPAL159PAQIU). Cache-control headers are set for index.html in staging to control caching behavior. Secrets and environment variables are managed via CircleCI contexts named org-global source.
The backend is hosted on Railway, with separate Dockerfiles for dev and prod environments (RAILWAY_DOCKERFILE_PATH). Railway manages MySQL databases, and deployment scripts reference internal Railway hostnames. Docker images are built and pushed to AWS ECR. Local development uses Docker Compose with different YAML files for dev, local, and prod, each running multiple API services on different ports. Production and dev environments use different Docker Compose project names. Local endpoints use localhost, while production/staging uses domains like staff.api.dev.studenthub.co source.
The staff portal is hosted on Netlify, as evidenced by the presence of a netlify.toml file and a _redirects file that routes all paths to index.html for SPA routing. The build process references environment variables such as NODE_VERSION and NODE_OPTIONS source.
No explicit deployment or hosting configuration was found for the candidate or company portals.
Gaps & Unknowns#
- No evidence was found for DNS/CDN/security services such as Cloudflare, Route53, or WAF. These may be configured outside of code, for example in AWS or Netlify dashboards. Check "AWS Route53 Hosted Zones" or "Netlify Site Settings → Domain Management" for DNS/CDN configuration.
- No explicit deployment or hosting configuration was found for the candidate or company portals. Check "Netlify Site Settings", "Vercel Project Settings", or "AWS S3 Buckets" for these portals.
- No evidence of authentication, email, SMS, payments, monitoring, maps, queue, media, or support services in code or configs. These may be configured in third-party dashboards or as environment variables not present in the repositories. Check "Environment Variable dashboards" in Netlify, Railway, or AWS, and review admin portal configuration screens for integrations.
- Some environment variables and secrets are referenced only by name (e.g., in CircleCI contexts or Netlify build configs) and their actual values or usage may be managed in CI/CD or hosting dashboards. Check "CircleCI Contexts → org-global", "Netlify Site Settings → Environment Variables", and "Railway Variables" for full lists and values.