Skip to content

A digital wallet backend built with NestJS and TypeScript. Features event-sourcing integration with EventStoreDB, offering two primary REST endpoints for transaction management and balance checking.

Notifications You must be signed in to change notification settings

eduardogomesf/my-wallet

Repository files navigation

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

About

A digital wallet backend built with NestJS and TypeScript. Features event-sourcing integration with EventStoreDB, offering two primary REST endpoints for transaction management and balance checking.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published