A secure and extensible ASP.NET Core Web API for managing personal finances — track income, expenses, budgets, and get intelligent dashboard summaries. Built with Clean Architecture, powered by ASP.NET Identity, JWT, and Serilog for production-grade logging.
- 🔐 User Authentication (JWT + ASP.NET Identity)
- 📂 Clean Architecture (Domain, Application, Infrastructure, Presentation)
- 🧾 Track Income & Expenses
- 📊 Dashboard Insights
- Income vs Expense
- Category Breakdown
- Savings Rate
- 🧮 Monthly Budgets
- 🔍 Filtering and Pagination
- 📌 Logging with Serilog
- ⏳ Background Services Support
- 🔄 AutoMapper & FluentValidation
- ASP.NET Core Web API 8
- Entity Framework Core
- ASP.NET Identity
- JWT Bearer Authentication
- Serilog
- AutoMapper
- FluentValidation
- SQL Server
├── Domain │ └── Entities, Enums, Interfaces ├── Application │ └── DTOs, Interfaces, Services, Validators ├── Infrastructure │ └── Repositories, DbContext, Identity Config ├── Presentation │ └── Controllers, Middleware, Program.cs
- Register:
POST /api/auth/register
- Login:
POST /api/auth/login
- Refresh Token:
POST /api/auth/refresh
- Change Password:
POST /api/auth/change-password
- Logout:
POST /api/auth/logout
- Get current user info:
GET /api/auth/me
-
GET /api/dashboard/summary
Total income, expenses, and balance. -
GET /api/dashboard/income-vs-expense
Monthly trends comparing income to expenses. -
GET /api/dashboard/category-breakdown
Breakdown of spending per category. -
GET /api/dashboard/savings-rate
Savings as a percentage of income.
GET /api/transactions
GET /api/transactions/{id}
POST /api/transactions
PUT /api/transactions/{id}
DELETE /api/transactions/{id}
- ✅ Supports filtering and pagination
GET /api/budgets
POST /api/budgets
PUT /api/budgets/{id}
DELETE /api/budgets/{id}
GET /api/reports/monthly?month=&year=
Get monthly report data.GET /api/reports/annual?year=
Get annual report data.GET /api/reports/export?format=&month=&year=
Export report (PDF/Excel).
- Swagger UI:
https://localhost:{port}/swagger
- Unit tested: Services and Repositories
-
Clone the repository
git clone https://github.com/PeterImade/FiscalPoint.git cd FiscalPoint
-
Update appsettings.json JWT Secret Connection string
-
Apply Migrations
dotnet ef database update
-
Run the Application
dotnet run
📦 Tools Used Identity EF Core Hangfire Serilog FluentValidation JWT.io
🤝 Contribution Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.