Codetalk

screenshot of Codetalk

Codetalk is an example application that implements Domain-Driven Design (DDD) and Hexagonal Architecture. It provides the ability to create talks, events, and speakers, and enables speakers to propose talks that can be reviewed by event organizers and approved or rejected.

Overview

Codetalk is an example application that implements Domain-Driven Design (DDD) and Hexagonal Architecture. It allows users to create talks, events, and speakers, and enables speakers to propose talks that can be reviewed and approved or rejected by event organizers.

Features

  • Creation of talks, events, and speakers
  • Review and approval/rejection of proposed talks by event organizers
  • Implementation of Domain-Driven Design (DDD)
  • Implementation of Hexagonal Architecture

Prerequisites

  • Node.js
  • TypeScript
  • Yarn
  • Docker

Setup Process

  1. Clone the Codetalk repository from GitHub.
  2. Install the project dependencies by running yarn install.
  3. Start the Docker containers for the API and MongoDB by running docker-compose up -d.
  4. Compile the Codetalk project by running yarn build.
  5. Initialize the local database by running yarn initialize:db.
  6. Start the server in development mode by running yarn start:dev.
  7. Access the Codetalk API at http://localhost:3000.

Summary

Codetalk is an example application that demonstrates the implementation of Domain-Driven Design (DDD) and Hexagonal Architecture. It provides features for creating talks, events, and speakers, with a workflow that allows event organizers to review and approve or reject proposed talks. The project is written in TypeScript and uses technologies such as Node.js, NestJS, and Docker. The code is organized according to the principles of Hexagonal Architecture, with clear separation between the domain, use cases (application), and infrastructure components.