Skip to content

Latest commit

 

History

History
61 lines (48 loc) · 2.35 KB

README.md

File metadata and controls

61 lines (48 loc) · 2.35 KB

Project Overview

My Wallet: Digital Wallet with Event Sourcing Integration

"My Wallet" is a digital wallet backend application developed using NestJS and TypeScript. Designed with simplicity in mind, it offers two core REST endpoints: one for saving a transaction and another to check the balance. This application integrates with EventStoreDB to implement the event-sourcing approach.

Key Technologies & Concepts:

NestJS
TypeScript
Event Sourcing
Event Store DB
Redis
Decorator Pattern
Jest
Docker
Docker Compose

Project Purpose:

"My Wallet" serves as a practical illustration of event sourcing within a digital wallet scenario. By integrating with EventStoreDB, it is aimed to demonstrate the strengths and potential of the event sourcing paradigm in financial domain applications, emphasizing its utility even in simpler systems like "My Wallet".

System Design

Alt text

Running the Application with Docker

1. Install Docker: If you don't have Docker installed, download it from Docker official website and follow the installation instructions.

2. Clone the Repository:

git clone https://github.com/eduardogomesf/my-wallet.git
cd my-wallet

3. Setup envs: Create a .env file in the root of the project and copy the variables from the .env.example file

4. Build and Start the Docker Containers:

npm run up # This will build the Docker image and start the containers in detached mode using the docker-compose configuration.

5. Accessing the API Documentation: You can access the API documentation with Swagger UI. Copy the url bellow and paste in the browser

http://localhost:8080/docs

6. Visualizing data: You can access the EventStoreDB UI in the URL bellow:

http://localhost:2113

x. Stopping the Docker Containers: If you want to stop the Docker containers:

npm run down

🛠️ Created by eduardogomesf