{"repo":"aekoky/ExpenseTracker","free":true,"listed":false,"github":"https://github.com/aekoky/ExpenseTracker","clone":"git clone https://github.com/aekoky/ExpenseTracker.git","description":"ExpenseTracker is a modular, event-sourced .NET Core application designed to manage personal finances. It uses Clean Architecture, Domain-Driven Design (DDD), and Event Sourcing to deliver a scalable and maintainable system.","language":"C#","stars":54,"topics":["event-sourcing","kong","martendb","net","docker","docker-compose","postgres","redis","event-driven","swagger"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"ExpenseTracker A microservices-based, event-driven and event sourcing application for tracking financial transactions. ExpenseTracker is built with modularity, scalability, and observability in mind. It enables users to create accounts, track income/expenses, and audit every transaction using Event Sourcing and Event-Driven Architecture. --- Table of Contents - Features - Technologies Used - Installation - Usage - API Reference - Tests - Deployment - Contributing - License - Contact and Acknowledgments --- Features - 🧾 Account creation and lifecycle management - 💸 Deposit and withdrawal tracking - 📜 Event-sourced audit logs - 🧠 Projections using Marten for read models - 🚀 Asynchronous communication with RabbitMQ and Wolverine - 🔒 Health checks and diagnostics endpoints - 📦 Containerized using Docker Compose - 🛡️ API Gateway via Kong --- Technologies Used - Backend : .NET 8, C# - Messaging : RabbitMQ, Wolverine - Event Store & Projections : Marten (PostgreSQL) - API Gateway : Kong - Cache : Redis - Infrastructure : Docker, Docker Compose - Tests : xUnit, Testcontainers --- Installation Prerequisites - Docker + Docker Compose - .NET 8 SDK - Git Steps --- Usage - Kong Gateway Proxy : http://localhost:8000 - AuditService Swagger : http://localhost:8000/audit/api/docs - ExpenseService Swagger : http://localhost:8000/expense/api/docs Health endpoints: Run services manually if needed: API Reference ExpenseService - POST /expense/api/accounts - PUT /expense/api/accounts/{id}/","default_branch":null,"files":null,"tree":[],"storefront":"/r/aekoky","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/aekoky/ExpenseTracker/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}