A comprehensive web application for managing software development teams, built with modern technologies and fully containerized with Docker.
If you like this software, feel free to buy me a coffee.
- Weekly capacity planning for 20 developers
- Individual allocation tracking across 6 categories:
- Backend Development
- Frontend Development
- Code Review
- Release Management
- UX Design
- Technical Analysis
- Configurable team pace factor (default: 80%)
- Multi-week timeline view with easy navigation
- Real-time capacity calculations in hours and percentages
- User-friendly time-off request system
- Support for multiple request types (Vacation, Sick Leave, Personal, Conference, Other)
- Manager approval workflow
- Conflict detection for overlapping requests
- Holiday and absence tracking
- Email notifications for status updates
- Role-based access control (Admin, Manager, Developer)
- User profile management
- Team member directory
- Secure authentication with JWT tokens
- Team capacity dashboard with visual charts
- Utilization trends and forecasting
- Category-wise allocation breakdowns
- Pending request notifications
- Export capabilities for planning
- Node.js with Express.js
- TypeScript for type safety
- PostgreSQL database
- Prisma ORM for database management
- JWT authentication
- bcrypt for password hashing
- express-rate-limit for API protection
- React 18 with TypeScript
- Tailwind CSS for styling
- React Router for navigation
- Recharts for data visualization
- Hero Icons for UI icons
- React Hot Toast for notifications
- Axios for API communication
- Docker & Docker Compose for containerization
- Nginx for frontend serving and reverse proxy
- PostgreSQL containerized database
- Docker and Docker Compose installed
- Git for cloning the repository
- Clone the repository:
git clone <repository-url>
cd management-app- Start the application:
docker-compose up --build- Access the application:
- Frontend: http://localhost:3500
- Backend API: http://localhost:3501
- Admin: admin@company.com / password123
- Developers: [firstname.lastname]@company.com / password123
- Backend Setup:
cd backend
npm install
npm run db:generate
npm run db:migrate
npm run db:seed
npm run dev- Frontend Setup:
cd frontend
npm install
npm start# Generate Prisma client
npm run db:generate
# Create and apply migrations
npm run db:migrate
# Seed database with sample data
npm run db:seedPOST /api/auth/login- User loginPOST /api/auth/register- User registration
GET /api/users- Get all usersGET /api/users/me- Get current userPOST /api/users- Create user (Admin/Manager)PUT /api/users/:id- Update user (Admin/Manager)DELETE /api/users/:id- Delete user (Admin)
GET /api/capacity/allocations- Get allocationsGET /api/capacity/team-overview- Get team capacity overviewPUT /api/capacity/allocations/:userId/:weekStart- Update allocation
GET /api/time-off- Get time-off requestsPOST /api/time-off- Create time-off requestPUT /api/time-off/:id- Approve/reject request (Manager/Admin)DELETE /api/time-off/:id- Delete request
Backend (.env):
DATABASE_URL=postgresql://postgres:password@localhost:5432/team_management
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
PORT=3501
NODE_ENV=development
PACE_FACTOR=0.8
Frontend:
REACT_APP_API_URL=http://localhost:3501/api
- Pace Factor: Adjust the
PACE_FACTORenvironment variable (0.8 = 80% of 40h work week) - Working Hours: Modify
WORKING_HOURS_PER_DAYandWORKING_DAYS_PER_WEEKin settings - Allocation Categories: Update the schema and add new categories as needed
- JWT-based authentication
- Password hashing with bcrypt
- Role-based access control
- Rate limiting on authentication endpoints
- Input validation and sanitization
- CORS configuration
- Helmet.js security headers
- Update environment variables for production
- Build and run with Docker Compose:
docker-compose -f docker-compose.yml up --build -d- Build the frontend:
cd frontend && npm run build- Build the backend:
cd backend && npm run build- Deploy to your preferred hosting platform
- users: User accounts with roles and authentication
- allocations: Weekly capacity allocations by category
- time_off_requests: Time-off requests with approval workflow
- settings: Application configuration
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For issues and questions:
- Check the documentation
- Search existing issues
- Create a new issue with detailed information
The application includes several enhancements beyond the basic requirements:
- Responsive Design: Works on desktop, tablet, and mobile
- Real-time Updates: Live data synchronization
- Advanced Filtering: Filter by status, user, date range
- Data Export: Export capacity and time-off data
- Audit Trail: Track changes and approvals
- Notification System: Toast notifications for user actions
- Search Functionality: Search users and requests
- Bulk Operations: Manage multiple items at once
- Calendar Integration: Visual calendar view for time-off
- Team Analytics: Detailed team performance metrics
- Email notification system
- Slack/Teams integration
- Mobile app with React Native
- Advanced reporting and analytics
- Resource forecasting and planning
- Integration with JIRA/GitHub
- Time tracking integration
- Holiday calendar synchronization