Modern web dashboard built with Angular 21, designed to monitor and manage Continuous Integration and Continuous Deployment (CI/CD) pipelines. It offers real-time insights into build statuses, deployment progress, and other critical metrics to help development teams streamline their workflows.
This is the frontend of a larger system designed to enhance the CI/CD experience. To make it fully functional, it needs to be integrated with a backend service that collects and processes CI/CD data. The backend API is under development and available here
- Real-time Pipeline Monitoring: Automatic refresh every 15 seconds to track pipeline progress
- Global View Dashboard: Overview of all projects, versions, and their CI/CD status
- Detailed Project View: In-depth information about specific pipelines and jobs
- Visual Status Indicators: Color-coded status representation for quick assessment
- Job Details Tooltips: Hover to see execution duration, test results, and code quality metrics
- Pagination Support: Efficient navigation through large project lists
- Responsive Design: Built with Angular Material for a modern, adaptive interface
- GitLab Integration: Designed to work with GitLab CI/CD (other tools coming soon)
- Theme Support: Light and dark theme switching capabilities
- GlobalViewComponent: Main dashboard displaying all projects with pagination
- ProjectDetailComponent: Detailed view of a specific project's pipelines and jobs
- LayoutComponent: Application layout wrapper with navigation
- SettingsComponent: Configuration and preferences management
- ApiService: HTTP client for backend REST API communication
- ThemingService: Theme management and status styling utilities
- Project: Project information with repository details
- ProjectVersion: Specific versions of a project (branches, tags)
- Pipeline: CI/CD pipelines with their status and execution data
- Job: Individual pipeline jobs with details, test results, and code quality metrics
- Angular 21.0.0: Modern web framework
- Angular Material 21.0.2: UI component library
- RxJS 7.8.0: Reactive programming library
- TypeScript 5.9.2: Type-safe JavaScript
- Vitest 4.0.8: Fast unit testing framework
- SCSS: Styling with CSS preprocessor
- Node.js: Version 18 or higher
- npm: Version 9 or higher (comes with Node.js)
- Angular CLI: Version 21.0.2
- Backend API: Running instance of cicd-dashboard-api
git clone <repository-url>
cd cicd-dashboardnpm installThe proxy.conf.json file contains the API proxy configuration:
{
"/api": {
"target": "http://localhost:8080",
"secure": false,
"changeOrigin": true
}
}Update the target URL to point to your backend API instance.
npm start
# or
ng serveThe application will be accessible at http://localhost:4200/ and will automatically reload when you modify source files.
ng buildng build --configuration productionBuild artifacts will be stored in the dist/ directory, optimized for performance and speed.
Run unit tests with Vitest:
npm test
# or
ng testGenerate coverage report:
ng test --coverage/: Global dashboard view with all projects/projects/:projectId/version/:versionId: Detailed project version view/projects/:projectId/version/:versionId/job/:jobId: Specific job details/settings: Application settings and preferences
The application supports custom theming using Angular Material. Theme files are located in:
src/theme.scss: Main theme configurationsrc/app/core/layout/_layout-component.theme.scss: Layout component themesrc/app/global-view/_global-view.theme.scss: Global view themesrc/app/project-detail/_project-detail.theme.scss: Project detail theme
Generate new components:
ng generate component component-nameFor a complete list of available schematics:
ng generate --helpThis project uses Prettier for code formatting:
npx prettier --write .# Build the Angular app
ng build --configuration production
# Create Dockerfile (example with nginx)
docker build -t cicd-dashboard:latest .version: '3.8'
services:
frontend:
image: cicd-dashboard:latest
ports:
- "80:80"
environment:
- API_URL=http://backend:8080- Configure proper CORS settings in the backend API
- Use HTTPS for all communications
- Implement authentication and authorization
- Validate and sanitize all user inputs
- Keep dependencies up to date
The built application can be deployed to any static hosting service:
- Netlify: Drag and drop the
dist/folder - Vercel: Connect your Git repository
- GitHub Pages: Use
angular-cli-ghpages - AWS S3: Upload to S3 bucket with CloudFront
For proper routing, configure your server to redirect all requests to index.html:
Nginx example:
location / {
try_files $uri $uri/ /index.html;
}Contributions are welcome! Feel free to open an issue or pull request.
- Follow Angular style guide
- Use conventional commits for commit messages
- Update documentation as needed
This project is under MIT license.
Ian Deveseleer


