Jira-Inspired Collaborative Work Management Platform
Portfolio Flagship Project | Code With Jamshed
A production-inspired Project Management SaaS built with Angular 20, Standalone Components, Angular Signals, RxJS, Reactive Forms, Angular CDK Drag & Drop, SCSS, Font Awesome, and a real JSON Server REST API.
The application is designed for software and product teams and combines workspace management, project planning, issue tracking, Scrum/Kanban boards, backlog prioritization, sprint execution, collaboration, time tracking, team workload, roadmap planning, and reporting in one coherent enterprise SaaS experience.
Email: admin@project.dev
Password: password
##Reports Analytics
Angular Enterprise Project Management SaaS is a Jira-inspired collaborative work management application designed to demonstrate Angular architecture beyond standard CRUD dashboards.
The project models connected relationships such as:
Workspace
↓
Project
↓
Board
↓
Sprint
↓
Issue
It demonstrates:
- Complex nested business entities
- Synchronized board/backlog/sprint state
- Drag-and-drop workflow transitions
- Sprint planning and execution
- Issue comments and activity history
- Time tracking
- Team workload
- Project analytics
- Role-aware experiences
- JSON Server API integration
- Backend-ready frontend architecture
| Technology | Purpose |
|---|---|
| Angular 20 | Frontend framework |
| TypeScript | Strongly typed application code |
| Standalone Components | Primary Angular architecture |
| Angular Signals | Feature/local state and derived data |
| RxJS | Async API workflows |
| Angular Router | Lazy-loaded navigation |
| Reactive Forms | Project, sprint, issue and settings forms |
| Angular CDK DragDrop | Board and backlog interactions |
| Angular CDK Overlay | Menus/dialog patterns |
| SCSS | Styling |
| CSS Variables | Design tokens and themes |
| Bootstrap 5.3 | Responsive utilities |
| Font Awesome | Icons |
| ApexCharts / Charts | Analytics visualization |
| JSON Server | REST API and persistent demo data |
The project uses a modern collaborative SaaS visual language.
Primary #16324F Navy
Secondary #1B998B Teal
Accent #E76F51 Coral
Surface #F6F1E9 Warm Sand
Canvas #F7FAFC
Dark Canvas #0F172A
UI characteristics:
- Compact workspace sidebar
- Project switcher
- Productivity-style command/search bar
- Rounded cards
- Thin borders
- Restrained shadows
- Colored issue-type icons
- Status pills
- Priority badges
- Light / Dark / System themes
- Responsive desktop/tablet/mobile layouts
| Role | Capabilities |
|---|---|
| Workspace Admin | Workspaces, users, roles, projects and global configuration |
| Project Admin | Project settings, members, workflows and boards |
| Project Manager / Scrum Master | Backlog, sprints, issues, planning and reports |
| Developer / Contributor | Assigned work, comments, issue updates and time tracking |
| Viewer / Stakeholder | Read-only project, board and report visibility |
My Work
Workspaces
Projects
Board
Backlog
Sprints
Issues
Roadmap
Calendar
Team & Workload
Reports
Notifications
Administration
Settings
The dashboard provides a focused personal productivity view.
Features include:
- Assigned to Me
- Open Issues
- Due Soon
- Overdue Issues
- Active Sprint
- Completed Work
- Recent Activity
- Upcoming Sprint Dates
- Milestones
- Quick Create Issue
- Quick Project Switcher
- Work Status Summary
- Workspace List
- Create Workspace
- Edit Workspace
- Workspace Overview
- Workspace Avatar
- Workspace Members
- Invite Member UI
- Member Role Assignment
- Workspace Project Summary
- Workspace Activity
- Workspace Settings
- Project List
- Grid/List View
- Create Project
- Edit Project
- Project Overview
- Unique Project Key
- Scrum Project
- Kanban Project
- Project Lead
- Project Members
- Project Status
- Start Date
- Target Date
- Project Description
- Project Statistics
- Project Settings
- Archive Project Workflow
Example project keys:
ENG
WEB
PORT
MOB
The board uses Angular CDK Drag & Drop.
Default workflow:
To Do
↓
In Progress
↓
In Review
↓
Done
Features include:
- Drag issue between statuses
- Reorder issues inside a column
- Persist workflow changes to JSON Server
- Quick Issue Creation
- Board Search
- Assignee Filter
- Priority Filter
- Issue Type Filter
- Label Filter
- Epic Filter
- Clear Filters
- Issue Detail Drawer / Modal
Issue cards display:
- Issue Key
- Summary
- Issue Type
- Priority
- Assignee
- Story Points
- Labels
- Prioritized Backlog
- Drag-and-Drop Ordering
- Unscheduled Issues
- Sprint Sections
- Create Sprint
- Rename Sprint
- Sprint Goal
- Move Issues Into Sprint
- Move Issues Back to Backlog
- Bulk Selection
- Story Point Estimation
- Assignee Display
- Priority Display
- Issue Type Display
- Start Sprint
- Search
- Filters
- Sprint List
- Sprint Details
- Active Sprint
- Create Sprint
- Edit Sprint
- Sprint Goal
- Start Date
- End Date
- Planned Story Points
- Completed Story Points
- Planned / Active / Completed Status
- Start Sprint
- Complete Sprint
- Handle Incomplete Issues
- Sprint Progress Summary
- Only one sprint can be active per Scrum project in the MVP.
- Sprint cannot start without dates.
- End date must be after start date.
- Completed sprints cannot remain active.
- Incomplete issues must be handled before sprint completion.
Supported issue types:
Epic
Story
Task
Bug
Sub-task
Supported priorities:
Highest
High
Medium
Low
Lowest
Issue features:
- Generated Issue Key
- Summary
- Description
- Status
- Priority
- Assignee
- Reporter
- Sprint
- Epic
- Story Points
- Labels
- Due Date
- Created / Updated Dates
- Attachments Placeholder
- Comments
- Activity History
- Time Tracking
- Sub-tasks
- Linked Issues Placeholder
- Watchers Placeholder
- Create
- Edit
- Delete
- Archive
Example issue key:
ENG-101
The issue details screen is divided into:
- Title
- Description
- Sub-tasks
- Comments
- Activity
- Work Log
- Status
- Assignee
- Priority
- Sprint
- Epic
- Story Points
- Labels
- Dates
Top actions include:
Edit
Change Status
More Actions
- Issue Comments
- Add Comment
- Edit Own Comment
- Delete Own Comment
- Mentions Placeholder
- Activity Timeline
- Issue Change History
- Notification Center
- Unread Count
- Mark Read
- Mark All Read
- Attachment UI Placeholder
- Original Estimate
- Time Spent
- Remaining Estimate
- Log Work
- Work Log History
- Member Time Summary
- Sprint Time Summary
- Non-negative Time Validation
- Epic List
- Create Epic
- Edit Epic
- Epic Owner
- Epic Status
- Epic Progress
- Roadmap Timeline
- Project Dates
- Epic Dates
- Milestones
- Project Filter
- Status Filter
- Owner Filter
- Monthly Project Calendar
- Issue Due Dates
- Sprint Start Dates
- Sprint End Dates
- Milestones
- Project Filter
- Assignee Filter
- Today Navigation
- Click Event to Open Related Item
- Project Member List
- Avatar
- Role
- Active Workload
- Open Issues
- Assigned Story Points
- Completed Issues
- Overdue Items
- Workload Visualization
- Capacity Indicator
- Member Detail Summary
- Project Filter
- Sprint Filter
Reports include:
- Project Overview
- Sprint Burndown
- Velocity
- Cumulative Flow
- Issues by Status
- Issues by Priority
- Issues by Type
- Issues by Assignee
- Created vs Resolved
- Sprint Completion Rate
- Team Workload
- Overdue Issues
Filters include:
Date
Project
Sprint
Member
- User Management
- Role Management
- Permission Matrix
- Project Membership
- Workspace Membership
- Audit Log
- Global Issue Type Placeholder
- Global Priority Placeholder
- System Notifications
- Profile
- Avatar Placeholder
- Light Theme
- Dark Theme
- System Theme
- Notification Preferences
- Security
- Change Password
- Default Workspace
- Default Project
- Board Preferences
- Date / Time Preferences
This project uses JSON Server instead of direct hard-coded business arrays.
http://localhost:3000
db.json
Main collections:
users
workspaces
projects
sprints
issues
epics
comments
activities
workLogs
notifications
milestones
auditLogs
GET /workspaces
POST /workspaces
PATCH /workspaces/:id
DELETE /workspaces/:idGET /projects
GET /projects?workspaceId=1
POST /projects
PATCH /projects/:idGET /issues
GET /issues?projectId=1
GET /issues/:id
POST /issues
PATCH /issues/:id
DELETE /issues/:idGET /sprints
GET /sprints?projectId=1
POST /sprints
PATCH /sprints/:idGET /comments?issueId=1
POST /comments
PATCH /comments/:id
DELETE /comments/:idGET /activities?issueId=1
POST /activitiesGET /workLogs?issueId=1
POST /workLogsAngular Component
↓
Feature Service
↓
ApiService
↓
Angular HttpClient
↓
JSON Server
↓
db.json
Pages never directly import application datasets.
When an issue moves:
PORT-102
To Do
↓
In Progress
Angular sends:
PATCH /issues/102Example payload:
{
"status": "In Progress"
}The application can also create activity history:
POST /activitiesExample:
{
"issueId": 102,
"message": "Moved PORT-102 from To Do to In Progress"
}This keeps board state and activity history synchronized.
- Every project belongs to one workspace.
- Project key must be unique within a workspace.
- Every issue belongs to one project.
- Issue keys use
ProjectKey + Sequence. - Only valid workflow transitions are allowed.
- Board drag/drop updates issue status.
- Completed sprints cannot remain active.
- Only one active sprint per Scrum project.
- Sprint start/end dates are mandatory.
- Sprint end date must be after start date.
- Story points cannot be negative.
- Time logged cannot be negative.
- Sub-task must belong to a parent in the same project.
- Archived projects are read-only.
- Important changes create activity entries.
- Users can only be assigned to projects where they are members.
src/
├── app/
│ ├── core/
│ │ ├── guards/
│ │ ├── interceptors/
│ │ ├── services/
│ │ ├── models/
│ │ ├── constants/
│ │ ├── enums/
│ │ └── utils/
│ │
│ ├── shared/
│ │ ├── components/
│ │ ├── ui/
│ │ ├── directives/
│ │ ├── pipes/
│ │ └── validators/
│ │
│ ├── layout/
│ │ ├── auth-layout/
│ │ └── workspace-layout/
│ │
│ ├── features/
│ │ ├── auth/
│ │ ├── home/
│ │ ├── workspaces/
│ │ ├── projects/
│ │ ├── board/
│ │ ├── backlog/
│ │ ├── sprints/
│ │ ├── issues/
│ │ ├── roadmap/
│ │ ├── calendar/
│ │ ├── team/
│ │ ├── reports/
│ │ ├── notifications/
│ │ ├── administration/
│ │ └── settings/
│ │
│ ├── app.component.ts
│ ├── app.config.ts
│ └── app.routes.ts
│
├── environments/
└── styles/
The application uses Angular Signals for local and feature-level UI state.
readonly selectedProjectId = signal<number | null>(null);
readonly boardFilter = signal('');
readonly selectedSprintId = signal<number | null>(null);Computed Signals are used for derived state.
readonly activeSprint = computed(() =>
this.sprints().find(
sprint => sprint.status === 'Active'
)
);RxJS is used for real HTTP API calls.
Major feature routes are lazy loaded.
{
path: 'issues',
loadChildren: () =>
import('./features/issues/issue.routes')
.then(routes => routes.ISSUE_ROUTES)
}Business forms use Angular Reactive Forms.
readonly issueForm = this.fb.nonNullable.group({
summary: ['', Validators.required],
type: ['Task', Validators.required],
status: ['To Do', Validators.required],
priority: ['Medium', Validators.required],
storyPoints: [0, Validators.min(0)]
});Validation includes:
- Required fields
- Unique project keys
- Sprint date ranges
- Non-negative story points
- Non-negative time values
- Assignee project membership
- Save/cancel states
- Confirmation dialogs
Install:
Node.js 20+
npm
Angular CLI 20
Check versions:
node -v
npm -v
ng versiongit clone https://github.com/Jamshed7664/angular-enterprise-project-management.gitNavigate:
cd angular-enterprise-project-managementnpm installPowerShell alternative:
npm.cmd installnpm startThis runs:
Angular App:
http://localhost:4200
JSON Server:
http://localhost:3000
PowerShell:
npm.cmd startnpm run webnpm run apinpm run buildThe project uses Font Awesome icons.
Install if required:
npm install @fortawesome/fontawesome-freeImport in src/styles.scss:
@import '@fortawesome/fontawesome-free/css/all.min.css';The repository includes:
.editorconfig
.prettierrc.json
Format source files:
npm run formator:
npx prettier --write "src/**/*.{ts,html,scss}"Designed for:
- Desktop
- Laptop
- Tablet
- Mobile
Responsive features include:
- Compact workspace sidebar
- Collapsible navigation
- Responsive board
- Scrollable board columns
- Mobile-friendly filters
- Responsive backlog
- Responsive issue details
- Adaptive reports
- Responsive notification/profile dropdowns
Supported themes:
Light
Dark
System
Theme preference is persisted for a consistent user experience.
Use approximately:
1440 × 900
Recommended files:
my-work.png
project-overview.png
kanban-board.png
board-filters.png
backlog.png
sprint-planning.png
active-sprint.png
issue-details.png
comments-activity.png
roadmap.png
calendar.png
team-workload.png
reports.png
dark-theme.png
mobile-view.png
- Login
- Open My Work
- Switch Workspace
- Switch Project
- Create an Issue
- Open Backlog
- Prioritize Issue
- Move Issue into Sprint
- Start Sprint
- Open Board
- Drag To Do → In Progress
- Drag In Progress → In Review
- Open Issue Details
- Add Comment
- Log Work
- Move Issue to Done
- Complete Sprint
- Review Sprint Progress
- Review Team Workload
- Open Reports
- Show Burndown
- Show Velocity
- Open Roadmap
- Open Calendar
- Toggle Dark Theme
- Demonstrate Mobile View
This connected flow demonstrates substantially more engineering depth than opening unrelated CRUD pages.
- Angular 20
- Standalone Components
- Angular Signals
- RxJS
- JSON Server
- HttpClient API integration
- Authentication UI
- Workspace Layout
- Workspace Management
- Project Management
- My Work Dashboard
- Issue CRUD
- Issue Details
- Kanban Board
- Angular CDK Drag & Drop
- Backlog
- Sprint Management
- Comments
- Activity History
- Time Tracking
- Epics
- Roadmap
- Calendar
- Team Workload
- Reports
- Notifications
- Administration
- Settings
- Light/Dark/System Theme
- Responsive UI
- Spring Boot Backend
- MySQL
- JWT Authentication
- Refresh Tokens
- Server-Side Pagination
- Real File Attachments
- Rich Text Editor
- Advanced Charts
- CSV/PDF Export
- WebSocket Collaboration
- Custom Workflow Designer
- Automation Rules
- Advanced Gantt
- Dependencies / Critical Path
- GitHub Integration
- GitLab Integration
- Slack Integration
- Microsoft Teams Integration
- Advanced Search / JQL-like Syntax
- Multi-Tenant SaaS
- Billing / Subscription
- Internationalization
Important areas to test:
- Issue key generation
- Project key uniqueness
- Workflow transitions
- Board drag/drop
- Backlog ordering
- Sprint movement
- Sprint date validation
- Sprint start rules
- Sprint completion rules
- Story point validation
- Time tracking validation
- Assignee membership rules
- Report calculations
- Route guards
- Permission helpers
- Dark theme
- Responsive board usability
Do not commit:
- Real company project data
- Real employee/customer information
- Production credentials
- API secrets
- Access tokens
- Private environment configuration
JSON Server authentication and frontend RBAC are demo-only.
Production systems must enforce authentication and authorization on the backend.
This project demonstrates:
- Enterprise Angular architecture
- Nested domain modeling
- Project management workflows
- Scrum and Kanban concepts
- Angular CDK drag-and-drop
- Complex synchronized state
- Real REST API calls
- HttpClient
- JSON Server
- Signals
- RxJS
- Reactive Forms
- Lazy loading
- Business-rule validation
- Collaboration UI
- Analytics
- Responsive SaaS design
- Backend-ready frontend architecture
angular-enterprise-project-management
v1.0.0
angular
angular20
typescript
project-management
jira-clone
kanban
scrum
angular-signals
rxjs
reactive-forms
angular-cdk
json-server
rest-api
httpclient
issue-tracker
sprint-planning
project-management-system
enterprise-application
frontend
portfolio-project
Jamshed Ahmad
Software Engineer | Frontend Developer
Code With Jamshed
Update with your profile links:
GitHub: https://github.com/jamshed7764
LinkedIn: www.linkedin.com/in/jamshed-ahmad7664
YouTube: https://youtube.com/@CodeWithJamshed
Contributions and suggestions are welcome.
Example:
git checkout -b feature/your-feature
git add .
git commit -m "feat: add project management feature"
git push origin feature/your-featureThen create a Pull Request.
If this project helps you:
- Star the repository
- Fork the project
- Share it with developers
- Follow Code With Jamshed
- Subscribe for more Angular and full-stack projects
This project is intended for learning, portfolio presentation, demonstrations and personal development.
You can add the MIT License if you want the project to be publicly reusable.
Built with Angular 20 ❤️ by Code With Jamshed
Project Management • Scrum • Kanban • JSON Server • Angular Signals