A console-based application for managing employees and projects in a software department. Track team members, assign them to projects, and generate reports - all from the command line.
- Add, update, and remove employees
- Track employee roles, skills, and contact information
- View employee details and current assignments
- Create and manage software projects
- Track project status, technologies, and timelines
- View project teams and member assignments
- Assign employees to projects
- Unassign employees and track availability
- View complete project team compositions
- Department overview with key metrics
- Employees grouped by role
- Projects grouped by status
- List of unassigned employees
-
Clone or download this repository
-
Ensure Python 3.10+ is installed
python --version -
Install dependencies (optional - this project uses only Python standard library)
pip install -r requirements.txt
Run the application from the project directory:
python main.py-
Main Menu: Navigate through the main menu by entering numbers 1-5
- Employee Management
- Project Management
- Assignment Management
- Reports
- Exit
-
Adding Employees:
- Navigate to Employee Management > Add Employee
- Enter employee details (name, role, email, skills)
- Skills can be entered as comma-separated values
-
Creating Projects:
- Navigate to Project Management > Add Project
- Provide project name, description, and technologies
- Set project status (Planning, Active, Testing, Completed, On Hold)
-
Assigning Employees:
- Navigate to Assignment Management > Assign Employee to Project
- Enter the Employee ID and Project ID
- The system automatically handles previous assignments
-
Viewing Reports:
- Navigate to Reports to see various analytics
- Department overview shows key metrics
- View employees by role or projects by status
All data is automatically saved to department_data.json in the project directory. This file is created automatically on the first save and persists between application sessions.
git-demo/
├── main.py # Main application with CLI interface
├── department_manager.py # Core business logic
├── models/
│ ├── __init__.py
│ ├── employee.py # Employee data model
│ └── project.py # Project data model
├── department_data.json # Data storage (created automatically)
├── requirements.txt # Python dependencies
└── README.md # This file
- Add a few employees with different roles (Developer, QA, Manager)
- Create a software project (e.g., "Mobile App Redesign")
- Assign employees to the project
- Update project status as work progresses
- View reports to track department metrics
- ID (auto-generated)
- Name
- Role (e.g., Developer, QA, Manager)
- Skills (list)
- Hire Date
- Current Project Assignment
- ID (auto-generated)
- Name
- Description
- Status (Planning, Active, Testing, Completed, On Hold)
- Start Date
- End Date (optional)
- Team Members (list of employee IDs)
- Technologies (list)
- Python 3.10 or higher
- No external dependencies (uses Python standard library only)
This is a sample project for educational purposes.