DevPulse is a cloud‑hosted engineering productivity platform built on .NET 8, Azure, and event‑driven microservices. It demonstrates real‑world distributed systems design, secure authentication, containerized deployments, and production‑grade CI/CD automation.
DevPulse is continuously scanned using SonarCloud to ensure high standards of reliability, maintainability, and security across all microservices.
| Metric | Status |
|---|---|
| Bugs | |
| Code Smells | |
| Vulnerabilities | |
| Maintainability | |
| Reliability | |
| Security | |
| Technical Debt |
🔗 View full analysis:
https://sonarcloud.io/summary/new_code?id=buddhika85_DevPulse
DevPulse follows a distributed microservices architecture with strict service boundaries, database‑per‑service design, and asynchronous communication via Azure Service Bus. Each service is independently deployable, containerized, and versioned.
- User API — identity, roles, user lifecycle
- Task API — task creation, updates, assignments
- Mood API — mood entries, soft deletes
- Journal API — journal entries, feedback visibility
- Journal Link API — task ↔ journal linking (Cosmos DB)
- Orchestrator API — workflow coordination and cross‑service operations
- CQRS with MediatR
- Repository + Unit of Work
- Event‑Driven Messaging (Azure Service Bus)
- API Gateway via Azure API Management
- Zero‑trust authentication with Microsoft Entra External ID
- Distributed tracing with Serilog + Application Insights
DevPulse uses OAuth 2.0 Authorization Code Flow with PKCE via Microsoft Entra External ID.
- MSAL.js for login, token caching, and silent refresh
- Angular interceptors for secure API calls
- Validates Entra tokens
- Exchanges frontend token for backend‑issued JWT with role claims
- Enforces authorization via policy‑based checks
Each microservice owns its own database.
| Service | Storage Type |
|---|---|
| User API | Azure SQL |
| Task API | Azure SQL |
| Mood API | Azure SQL |
| Journal API | Azure SQL |
| Journal Link API | Azure Cosmos DB |
| Orchestrator | Stateless |
Cosmos DB is used for high‑volume, flexible linking between journals and tasks.
Azure Service Bus enables asynchronous, reliable communication.
Examples:
- Task updates → notify Journal Link service
- Journal creation → trigger Orchestrator workflows
- Daily summary → Azure Functions (Timer Trigger)
Messages follow a contract‑first schema with versioning.
Azure DevOps pipelines implement full automation.
- Restore, build, and test (.NET 8)
- Run xUnit tests with Moq + FluentAssertions
- Publish test results
- Docker build per microservice
- Push images to Azure Container Registry
- Deploy to Azure App Service / Azure Container Apps
- Multi‑stage YAML pipelines
Angular 20 SPA with:
- MSAL.js authentication
- Angular Material UI
- Role‑based navigation
- Secure API calls with PKCE tokens
Hosted on Azure Static Web Apps.
- .NET 8 SDK
- Node 20+
- Docker Desktop
- Azure CLI
docker-compose up --build
### Running Frontend
cd frontend
npm install
ng serve
---
## 8. Live Demo & Repository
Live Demo (Overview Page):
https://nice-river-045c3a100.3.azurestaticapps.net/overview
Demo Video:
https://www.youtube.com/watch?v=KQ2l7VS5r64