🚀 Productivity Monitor is a work-in-progress microservices-based application designed to track and analyze productivity. It utilizes modern technologies such as .NET, Next.js, RabbitMQ, PostgreSQL, and MongoDB, all running in a Dockerized environment for easy development and deployment.
The application follows a microservices architecture for better scalability, modularity, and maintainability. Each service is developed independently and communicates via messaging queues for seamless integration.
- .NET Backend Services (C#) – Modular microservices handling business logic.
- Next.js Frontend – User-friendly web interface.
- RabbitMQ – Messaging broker for service communication.
- PostgreSQL – Structured data storage.
- MongoDB – Event and unstructured data storage.
- Auth.js – Authentication and session handling.
- Docker – Container orchestration for all services.
| Service | Description | Status |
|---|---|---|
| Identity Service | Manages authentication and user identity | 🔄 In Progress |
| Activity Service | Logs user activity data | ✅ Completed |
| Search Service | Provides search functionality across activities and users | 🔄 In Progress |
| Reporting Service | Aggregates and presents productivity insights | ⏳ Planned |
| Notification Service | Sends alerts and reminders | ⏳ Planned |
| Gateway Service | API Gateway for routing requests between services | 🔄 In Progress |
Requirements: Docker & Docker Compose
docker-compose up --buildFrontend: http://localhost:3000
Backend services run internally via Docker network
✅ Features (Planned)
- Secure user authentication
- Real-time activity tracking
- Analytics and reporting dashboards
- Role-based access control
- Email/notification system
- Clean and modern UI
⚙️ Tech Stack
- Frontend: Next.js, Tailwind CSS
- Backend: .NET 8.0, C#
- Databases: PostgreSQL, MongoDB
- Messaging: RabbitMQ
- Auth: Auth.js
- Containerization: Docker, Docker Compose
📍 Roadmap
- Docker infrastructure setup
- Activity microservice
- Search microservice (In Progress)
- Identity microservice
- API Gateway service (In Progress)
- Frontend dashboard development
- Reporting and analytics features
- CI/CD integration
npm install --save-dev commitizen standard-version
npx commitizen init cz-conventional-changelog --save-dev --save-exactThis will automatically update package.json with:
"scripts": {
"commit": "cz",
"release": "standard-version"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}npm run commitAn interactive prompt will appear — you select the type of change, provide a description, etc.
feat(api): add endpoint for user productivity stats
fix(auth): correct token validation logic
chore(deps): update package versions
docs(readme): add setup instructions
npm run release -- --first-releaseThis will create:
CHANGELOG.md,v1.0.0tag,- bump the version in
package.json.
npm run releaseThe version bump depends on the commit types:
feat:→ minorfix:→ patchBREAKING CHANGE:→ major
git add .
git commit -m "chore(release): x.x.x" ← if `standard-version` didn't do this automatically
git push
git push --tagsgit status → check what's changed
git log → commit history
npm run commit → commit following the convention
npm run release → create new version + changelog + tag🤝 Contributing This project is under active development. Contributions and ideas are very welcome! Feel free to fork, open issues, or submit pull requests.