FergosiaTask
Context
Ferguson Australia wanted to organize their company's internal work so each person knows what they're working on, what to do next and avoid working on things that aren't needed yet, and can prioritize urgent tasks. They needed project tracking by phases, task assignment with dependencies, and performance metrics.
Solution
I designed and implemented a project management system following Clean Architecture. The system allows creating projects with phases, assigning tasks with dependencies between them, and viewing progress metrics in a centralized dashboard. It includes integrations with Google Drive and Gmail to centralize documents and notifications.
Features
- User management with roles and permissions
- Projects organized in sequential phases
- Tasks with dependencies (cannot start a task until prerequisites are complete)
- Project metrics: progress, performance, completed tasks
- Dashboard with real-time statistics
- Google Drive integration for documents
- Gmail integration for notifications
- JWT authentication with refresh tokens
- Soft delete with full audit trail
Technical Challenges
I implemented Clean Architecture with strict separation between layers (Domain, Application, Infrastructure, API). I used the Unit of Work pattern for transactions and retry logic with exponential backoff for operations that may temporarily fail. I chose SQL Server as the database to expand my knowledge and compare with PostgreSQL, which I use in other projects.
Tech Stack
Result
System in active development. Architecture designed for scalability and long-term maintainability.