Skip to content

EdMaxwell/decouvert-archi-hexa

Repository files navigation

Project Name

Description

This project is a TypeScript-based Express.js application that follows the Hexagonal Architecture, Domain-Driven Design (DDD), and Test-Driven Development (TDD) principles. The goal of this project was to explore and implement clean architectural patterns while ensuring maintainability and scalability. It was developed during a one-week course as part of an evaluation to assess various competencies.

Technologies utilisées

TypeScript Node.js Express.js MongoDB Mongoose Jest Docker

Project Structure

├── src/
│   ├── conferences/      # Conference-related domain logic
│   ├── core/            # Core application logic
│   ├── infrastructure/  # Database, External APIs, Configurations
│   │   ├── express_api/ # Express API implementation
│   ├── tests/           # Unit and Integration tests
│   ├── user/            # User-related domain logic
│
├── .gitignore           # Git ignore file
├── docker-compose.yml   # Docker configuration for MongoDB
├── jest.config.e2e.ts   # Jest config for end-to-end tests
├── jest.config.int.ts   # Jest config for integration tests
├── jest.config.ts       # Jest main configuration file
├── package-lock.json    # Lock file for package dependencies
├── package.json         # Project dependencies and scripts
├── request.http         # Sample HTTP request file
├── tests.md             # Documentation on testing strategies
├── tsconfig.json        # TypeScript compiler settings
├── README.md            # Documentation

Features Implemented

✅ Hexagonal Architecture with clear separation of concerns ✅ Domain-Driven Design principles applied ✅ Full coverage with Test-Driven Development (TDD) ✅ MongoDB database integration with Mongoose ✅ REST API implementation following best practices ✅ Dependency Injection for better testability ✅ Docker integration for managing the database

Setup and Installation

Prerequisites

  • Node.js (LTS version recommended)
  • MongoDB installed and running locally or via Docker
  • Yarn or npm installed

Installation Steps

# Clone the repository
git clone https://github.com/your-username/project-name.git
cd project-name

# Install dependencies
yarn install # or npm install

Running the Application

# Start the development server
yarn dev # or npm run dev

Running Tests

# Run unit tests
yarn test # or npm run test

Running with Docker

# Start the MongoDB container
docker-compose up -d

# Run the application
yarn dev

Contribution

🚫 No contributions are accepted, as this is a school project meant to serve as a reference.

License

This project is licensed under the MIT License – feel free to use, modify, and distribute it.


Made with ❤️ by Pierre 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published