Welcome to SpendSmart, the ultimate financial management API designed to help users track expenses, manage budgets, and control financial transactions efficiently. Built with .NET 10, it leverages modern CQRS architecture, MediatR for command handling, and PostgreSQL for secure data storage.
Why Use SpendSmart?
- π° Manage your expenses and budgets effectively
- π Optimized for high performance and scalability
- π Secure, authenticated, and cloud-ready
- π Built with the latest best practices in software architecture
β
Expense Tracking β Keep records of income, expenses, and savings.
β
Budgeting System β Create, update, and monitor monthly budgets.
β
Transaction Management β View detailed reports and transaction summaries.
β
Secure Authentication β JWT-based authentication for secure access.
β
Multi-Currency Support β Add and remove multiple currencies per user.
β
Timezone Customization β Personalize your experience with dynamic timezones.
β
RESTful API β Well-structured, versioned, and easy-to-integrate API.
β
Cloud-Ready Deployment β Supports Docker, Kubernetes, and cloud hosting.
π CQRS (Command Query Responsibility Segregation) β Separates read & write models.
π MediatR (Mediator Pattern) β Decouples business logic from controllers.
π Repository Pattern β Encapsulates data access logic.
π Dependency Injection (DI) β Ensures modular and testable code.
π Layered Architecture β Divided into:
- Application Layer β Business logic, commands, queries, and handlers.
- Domain Layer β Core business models and rules.
- Persistence Layer β Handles data storage with PostgreSQL.
- Infrastructure Layer β Logging, authentication, notifications.
- API Layer β RESTful endpoints for frontend & integrations.
π src/SpendSmart.Api β Main API layer, exposing endpoints.
π src/Application β Business logic, MediatR commands & queries.
π src/Domain β Core financial models and validation rules.
π src/Infrastructure β Authentication, logging, and notifications.
π src/Persistence β Database access and PostgreSQL integration.
π tests/SpendSmart.Tests β Unit and integration tests.
β
.NET 10 SDK
β
Docker
β
PostgreSQL
git clone https://github.com/yourusername/SpendSmart.git
cd SpendSmart
dotnet restore
dotnet run
Method | Endpoint | Description |
---|---|---|
POST | /api/users/setup |
Sets up a new user |
POST | /api/users/change-timezone |
Changes the userβs timezone |
POST | /api/users/change-password |
Updates user password |
Method | Endpoint | Description |
---|---|---|
POST | /api/transactions/create |
Creates a new transaction |
GET | /api/transactions/current-month-summary |
Fetches monthly summary |
GET | /api/transactions/{id} |
Retrieves a transaction by ID |
Method | Endpoint | Description |
---|---|---|
POST | /api/budgets/create |
Creates a new budget |
GET | /api/budgets/active |
Lists active budgets |
GET | /api/budgets/{id} |
Retrieves budget details |
Method | Endpoint | Description |
---|---|---|
POST | /api/auth/register |
Registers a new user |
POST | /api/auth/login |
Authenticates user |
POST | /api/auth/refresh-token |
Refreshes authentication token |
docker-compose up --build
πΉ Swagger UI β http://localhost:5000/swagger
π The API is fully Dockerized, making deployment simple and scalable.
dotnet test
π Use Postman or Swagger UI to:
β
Create transactions β /api/transactions/create
β
Fetch budgets β /api/budgets/active
β
Authenticate user β /api/auth/login
β
Full-Fledged Expense Tracking & Budgeting System
β
Optimized for Performance & Scalability
β
Secure & Reliable with Authentication
β
Built on Modern Development Best Practices
β
Cloud-Ready with Docker & PostgreSQL
This project is licensed under the MIT License. See LICENSE for details.
For feedback, contributions, or inquiries:
π§ Email: mreshboboyev@gmail.com
π» GitHub: MrEshboboyev
π Take control of your finances with SpendSmart! Clone the repo & get started now!