# befkdau-dev/campus-events-api architecture

> Architecture diagram of the GitHub repository befkdau-dev/campus-events-api, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/befkdau-dev/campus-events-api
- Repository: https://github.com/befkdau-dev/campus-events-api

## Overview

This is a small NestJS campus-events API. HTTP clients reach event endpoints for listing (optionally date-filtered), fetching by ID, and creating events; the controller delegates to a service that reads or writes an in-memory repository. A separate root endpoint returns a greeting. Bootstrap applies global validation and mounts the application. The README is generic NestJS starter material and documents no additional product capabilities; relationships below are limited to the supplied source excerpts.

Main entry points: [`src/events/events.module.ts`](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.module.ts) (Events module), [`src/events/events.service.ts`](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.service.ts) (Event operations), [`src/app.module.ts`](https://github.com/befkdau-dev/campus-events-api/blob/main/src/app.module.ts) (Root module), [`src/events/events.controller.ts`](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.controller.ts) (Events endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Application runtime"]
  node_bootstrap["HTTP bootstrap<br/>[main.ts]"]
  node_root_module["Root module<br/>[app.module.ts]"]
  node_root_controller["Greeting endpoint<br/>[app.controller.ts]"]
  node_root_service["Greeting service<br/>[app.service.ts]"]
end

subgraph group_events["Event API"]
  node_events_module["Events module<br/>[events.module.ts]"]
  node_events_controller["Events endpoints"]
  node_events_service["Event operations<br/>[events.service.ts]"]
  node_create_dto["Create validation"]
end

subgraph group_storage["Event state"]
  node_event_types["Event model and seed<br/>[events.type.ts]"]
  node_event_repository[("In-memory repository")]
  node_repository_token["Repository token<br/>[events.token.ts]"]
end

node_client(("HTTP client"))

node_client -->|"sends requests"| node_bootstrap
node_bootstrap -->|"starts"| node_root_module
node_root_module -->|"registers"| node_root_controller
node_root_module -->|"provides"| node_root_service
node_root_module -->|"imports"| node_events_module
node_root_controller -->|"calls"| node_root_service
node_client -->|"calls endpoints"| node_events_controller
node_events_module -->|"registers"| node_events_controller
node_events_module -->|"provides"| node_events_service
node_events_module -->|"binds provider"| node_event_repository
node_events_module -->|"uses token"| node_repository_token
node_events_controller -->|"delegates"| node_events_service
node_events_service -->|"reads and saves"| node_event_repository
node_events_service -->|"uses model"| node_event_types
node_events_service -->|"injects token"| node_repository_token
node_events_controller -->|"accepts payload"| node_create_dto
node_create_dto -->|"uses categories"| node_event_types
node_event_repository -->|"seeds and stores"| node_event_types

click node_bootstrap "https://github.com/befkdau-dev/campus-events-api/blob/main/src/main.ts"
click node_root_module "https://github.com/befkdau-dev/campus-events-api/blob/main/src/app.module.ts"
click node_root_controller "https://github.com/befkdau-dev/campus-events-api/blob/main/src/app.controller.ts"
click node_root_service "https://github.com/befkdau-dev/campus-events-api/blob/main/src/app.service.ts"
click node_events_module "https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.module.ts"
click node_events_controller "https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.controller.ts"
click node_events_service "https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.service.ts"
click node_create_dto "https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/dto/events.create-event-dto.ts"
click node_event_types "https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.type.ts"
click node_event_repository "https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.repository.ts"
click node_repository_token "https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.token.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_bootstrap,node_root_module,node_root_controller,node_root_service,node_client toneBlue
class node_events_module,node_events_controller,node_events_service,node_create_dto toneAmber
class node_event_types,node_event_repository,node_repository_token toneMint
```

## Components

### Application runtime

- [HTTP bootstrap](https://github.com/befkdau-dev/campus-events-api/blob/main/src/main.ts): `src/main.ts`
- [Root module](https://github.com/befkdau-dev/campus-events-api/blob/main/src/app.module.ts): `src/app.module.ts`
- [Greeting endpoint](https://github.com/befkdau-dev/campus-events-api/blob/main/src/app.controller.ts): `src/app.controller.ts`
- [Greeting service](https://github.com/befkdau-dev/campus-events-api/blob/main/src/app.service.ts): `src/app.service.ts`

### Event API

- [Events module](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.module.ts): `src/events/events.module.ts`
- [Events endpoints](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.controller.ts): `src/events/events.controller.ts`
- [Event operations](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.service.ts): `src/events/events.service.ts`
- [Create validation](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/dto/events.create-event-dto.ts): `src/events/dto/events.create-event-dto.ts`

### Event state

- [Event model and seed](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.type.ts): `src/events/events.type.ts`
- [In-memory repository](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.repository.ts): `src/events/events.repository.ts`
- [Repository token](https://github.com/befkdau-dev/campus-events-api/blob/main/src/events/events.token.ts): `src/events/events.token.ts`

### Other components

- **HTTP client**

## Connections

- HTTP client → HTTP bootstrap: sends requests (evidence: `src/main.ts`)
- HTTP bootstrap → Root module: starts (evidence: `src/main.ts`)
- Root module → Greeting endpoint: registers (evidence: `src/app.module.ts`)
- Root module → Greeting service: provides (evidence: `src/app.module.ts`)
- Root module → Events module: imports (evidence: `src/app.module.ts`)
- Greeting endpoint → Greeting service: calls (evidence: `src/app.controller.ts`)
- HTTP client → Events endpoints: calls endpoints (evidence: `src/events/events.controller.ts`)
- Events module → Events endpoints: registers (evidence: `src/events/events.module.ts`)
- Events module → Event operations: provides (evidence: `src/events/events.module.ts`)
- Events module → In-memory repository: binds provider (evidence: `src/events/events.module.ts`)
- Events module → Repository token: uses token (evidence: `src/events/events.module.ts`)
- Events endpoints → Event operations: delegates (evidence: `src/events/events.controller.ts`)
- Event operations → In-memory repository: reads and saves (evidence: `src/events/events.service.ts`)
- Event operations → Event model and seed: uses model (evidence: `src/events/events.service.ts`)
- Event operations → Repository token: injects token (evidence: `src/events/events.service.ts`)
- Events endpoints → Create validation: accepts payload (evidence: `src/events/events.controller.ts`)
- Create validation → Event model and seed: uses categories (evidence: `src/events/dto/events.create-event-dto.ts`)
- In-memory repository → Event model and seed: seeds and stores (evidence: `src/events/events.repository.ts`)
