Skip to content

Repository files navigation

Angular Enterprise Project Management SaaS

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.


Demo Credentials

Email: admin@project.dev
Password: password

Screenshots

login

login

My Work Dashboard

My Work Dashboard

Workspaces

Workspaces

Projects

Projects

Backlog

Backlog

Sprints

Sprints

Issues

Issues

Roadmap

Roadmap

Calender

Calender

Team and Workload

Team and Workload

##Reports Analytics

Reports Analytics

Notification

Notification

Administration

Administration

Settings

Settings

Project Board

Project Board

Project Overview

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 Stack

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

UI / Brand Direction

The project uses a modern collaborative SaaS visual language.

Color System

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

User Roles

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

Main Navigation

My Work
Workspaces
Projects
Board
Backlog
Sprints
Issues
Roadmap
Calendar
Team & Workload
Reports
Notifications
Administration
Settings

My Work Dashboard

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 Management

  • 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 Management

  • 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

Kanban / Scrum Board

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

Backlog Management

  • 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 Management

  • 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

Sprint Rules

  • 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.

Issue Tracking

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

Issue Details

The issue details screen is divided into:

Main Panel

  • Title
  • Description
  • Sub-tasks
  • Comments
  • Activity
  • Work Log

Properties Panel

  • Status
  • Assignee
  • Priority
  • Sprint
  • Epic
  • Story Points
  • Labels
  • Dates

Top actions include:

Edit
Change Status
More Actions

Comments & Collaboration

  • 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

Time Tracking

  • Original Estimate
  • Time Spent
  • Remaining Estimate
  • Log Work
  • Work Log History
  • Member Time Summary
  • Sprint Time Summary
  • Non-negative Time Validation

Epics & Roadmap

  • 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

Calendar

  • 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

Team & Workload

  • 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 & Analytics

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

Administration

  • User Management
  • Role Management
  • Permission Matrix
  • Project Membership
  • Workspace Membership
  • Audit Log
  • Global Issue Type Placeholder
  • Global Priority Placeholder
  • System Notifications

Settings

  • Profile
  • Avatar Placeholder
  • Light Theme
  • Dark Theme
  • System Theme
  • Notification Preferences
  • Security
  • Change Password
  • Default Workspace
  • Default Project
  • Board Preferences
  • Date / Time Preferences

JSON Server Integration

This project uses JSON Server instead of direct hard-coded business arrays.

API Base URL

http://localhost:3000

Database File

db.json

Main collections:

users
workspaces
projects
sprints
issues
epics
comments
activities
workLogs
notifications
milestones
auditLogs

REST API Examples

Workspaces

GET /workspaces
POST /workspaces
PATCH /workspaces/:id
DELETE /workspaces/:id

Projects

GET /projects
GET /projects?workspaceId=1
POST /projects
PATCH /projects/:id

Issues

GET /issues
GET /issues?projectId=1
GET /issues/:id
POST /issues
PATCH /issues/:id
DELETE /issues/:id

Sprints

GET /sprints
GET /sprints?projectId=1
POST /sprints
PATCH /sprints/:id

Comments

GET /comments?issueId=1
POST /comments
PATCH /comments/:id
DELETE /comments/:id

Activity

GET /activities?issueId=1
POST /activities

Work Logs

GET /workLogs?issueId=1
POST /workLogs

API Architecture

Angular Component
        ↓
Feature Service
        ↓
ApiService
        ↓
Angular HttpClient
        ↓
JSON Server
        ↓
db.json

Pages never directly import application datasets.


Board Workflow Persistence

When an issue moves:

PORT-102

To Do
   ↓
In Progress

Angular sends:

PATCH /issues/102

Example payload:

{
  "status": "In Progress"
}

The application can also create activity history:

POST /activities

Example:

{
  "issueId": 102,
  "message": "Moved PORT-102 from To Do to In Progress"
}

This keeps board state and activity history synchronized.


Core Business Rules

  • 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.

Folder Structure

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/

State Management

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.


Lazy Loading

Major feature routes are lazy loaded.

{
  path: 'issues',
  loadChildren: () =>
    import('./features/issues/issue.routes')
      .then(routes => routes.ISSUE_ROUTES)
}

Reactive Forms

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

Getting Started

Prerequisites

Install:

Node.js 20+
npm
Angular CLI 20

Check versions:

node -v
npm -v
ng version

Clone Repository

git clone https://github.com/Jamshed7664/angular-enterprise-project-management.git

Navigate:

cd angular-enterprise-project-management

Install Dependencies

npm install

PowerShell alternative:

npm.cmd install

Start Angular + JSON Server

npm start

This runs:

Angular App:
http://localhost:4200

JSON Server:
http://localhost:3000

PowerShell:

npm.cmd start

Run Frontend Only

npm run web

Run JSON Server Only

npm run api

Production Build

npm run build

Font Awesome

The project uses Font Awesome icons.

Install if required:

npm install @fortawesome/fontawesome-free

Import in src/styles.scss:

@import '@fortawesome/fontawesome-free/css/all.min.css';

Code Formatting

The repository includes:

.editorconfig
.prettierrc.json

Format source files:

npm run format

or:

npx prettier --write "src/**/*.{ts,html,scss}"

Responsive Design

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

Theme Support

Supported themes:

Light
Dark
System

Theme preference is persisted for a consistent user experience.


Recommended Screenshots

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

Suggested Portfolio / YouTube Demo

  1. Login
  2. Open My Work
  3. Switch Workspace
  4. Switch Project
  5. Create an Issue
  6. Open Backlog
  7. Prioritize Issue
  8. Move Issue into Sprint
  9. Start Sprint
  10. Open Board
  11. Drag To Do → In Progress
  12. Drag In Progress → In Review
  13. Open Issue Details
  14. Add Comment
  15. Log Work
  16. Move Issue to Done
  17. Complete Sprint
  18. Review Sprint Progress
  19. Review Team Workload
  20. Open Reports
  21. Show Burndown
  22. Show Velocity
  23. Open Roadmap
  24. Open Calendar
  25. Toggle Dark Theme
  26. Demonstrate Mobile View

This connected flow demonstrates substantially more engineering depth than opening unrelated CRUD pages.


Development Roadmap

v1.0.0

  • 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

v1.1

  • Spring Boot Backend
  • MySQL
  • JWT Authentication
  • Refresh Tokens
  • Server-Side Pagination
  • Real File Attachments
  • Rich Text Editor
  • Advanced Charts
  • CSV/PDF Export

v2.0

  • 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

Testing Recommendations

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

Security

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.


Portfolio Value

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

Repository

angular-enterprise-project-management

Version

v1.0.0

Suggested GitHub Topics

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

Author

Jamshed Ahmad
Software Engineer | Frontend Developer

Brand

Code With Jamshed


Connect

Update with your profile links:

GitHub:   https://github.com/jamshed7764
LinkedIn: www.linkedin.com/in/jamshed-ahmad7664
YouTube:  https://youtube.com/@CodeWithJamshed

Contributing

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-feature

Then create a Pull Request.


Support

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

License

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

About

Enterprise Project Management System built with Angular 20 featuring Kanban boards, sprints, backlog, issue tracking, analytics and Angular CDK drag-and-drop.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages