Core Components:

The project is structured as it follows:

app/
├── logs/                   # Winston log files (error.log, combined.log)
├── src/
│   ├── __mocks__/          # Mocks
│   ├── __tests__/          # Unit tests
│   ├── auth/               # OAuth strategies
│   ├── config/             # Swagger, Prometheus, environment
│   ├── controllers/        # Express route handlers
│   ├── db/                 # Gremlin client setup
│   ├── kafka/              # Kafka consumer setup
│   ├── logger/             # Winston logger (logger.ts)
│   ├── monitoring/         # Prometheus metrics endpoint
│   ├── routes/             # Express route definitions
│   ├── services/           # Business logic (ingestionService, vertex/edge logic)
│   ├── utils/              # Helpers (e.g., sanitize.ts)
│   └── app.ts              # Express entry point
├── Dockerfile              # Container image
├── docker-compose.yml      # Docker services including Kafka, Zookeeper
├── package.json
├── tsconfig.json
├── .env