A full-stack application designed to help developers log, track, and visualize their daily development activities. The system provides an interactive timeline interface for viewing tasks, built-in diagramming tools for system design documentation, and comprehensive effort tracking metrics.
The application follows an event-driven microservices architecture using:
- Frontend: React with TypeScript, Shadcn/UI, TanStack Router, TanStack Query
- Backend: Node.js/Express microservices
- Databases: MongoDB (tasks, diagrams, analytics), MySQL (users)
- Message Queue: Apache Kafka
- Cache: Redis
- Containerization: Docker & Kubernetes
developer-portfolio-tracker/
├── packages/
│ ├── shared-types/ # Shared TypeScript types and validation schemas
│ ├── frontend/ # React frontend application
│ ├── api-gateway/ # API Gateway service
│ ├── user-service/ # User management and authentication
│ ├── task-service/ # Task CRUD and timeline operations
│ ├── analytics-service/ # Analytics and reporting
│ └── diagram-service/ # Diagram creation and rendering
├── package.json # Root package.json with workspace configuration
├── tsconfig.json # Shared TypeScript configuration
└── README.md
- Node.js >= 18.0.0
- npm >= 9.0.0
- Docker and Docker Compose (for local development)
-
Clone the repository
-
Install dependencies:
npm install
-
Copy environment configuration:
cp .env.example .env
-
Build shared types:
npm run build --workspace=@portfolio/shared-types
Start all services in development mode:
npm run devThis will start:
- Frontend on http://localhost:3005
- API Gateway on http://localhost:3000
- User Service on http://localhost:3001
- Task Service on http://localhost:3002
- Analytics Service on http://localhost:3003
- Diagram Service on http://localhost:3004
npm run dev- Start all services in development modenpm run build- Build all packagesnpm run test- Run tests for all packagesnpm run lint- Lint all packagesnpm run format- Format code with Prettiernpm run clean- Clean all build artifacts
Each package has its own scripts that can be run with:
npm run <script> --workspace=@portfolio/<package-name>For example:
npm run test --workspace=@portfolio/frontend
npm run dev --workspace=@portfolio/user-service- Task Management: Create, edit, and organize development tasks
- Interactive Timeline: Chronological view of development activities
- Diagram Tools: Built-in Mermaid and React Flow editors
- Analytics Dashboard: Time tracking and productivity metrics
- User Authentication: Secure JWT-based authentication
- Real-time Updates: Event-driven architecture with Kafka
- Follow the existing code style and conventions
- Write tests for new features
- Update documentation as needed
- Ensure all linting and formatting checks pass
This project is licensed under the MIT License.