Modern Angular application built with best practices and a comprehensive testing setup.
- Application: https://jdanifh.github.io/coomiix/
- Coverage Report: https://jdanifh.github.io/coomiix/coverage/lcov-report/index.html
- Built with Angular 19
- Material Design components
- Internationalization (i18n) support
- Moment.js date handling
- Unit testing with Jest
- Continuous Integration with GitHub Actions
- Code coverage reporting
- Angular 19.2.0
- Angular Material 19.2.2
- NGX-Translate 16.0.4
- RxJS 7.8.0
- Jest 29.7.0
- Jest Preset Angular 14.5.3
- TypeScript 5.7.2
coomiix/
├── src/
│ ├── app/
│ │ ├── core/ # Core functionality
│ │ │ ├── api/ # API services
│ │ │ ├── guards/ # Route guards
│ │ │ ├── interceptors/ # App interceptors
│ │ │ ├── models/ # Data models
│ │ │ ├── providers/ # App providers
│ │ │ └── services/ # Core services
│ │ │
│ │ ├── shared/ # Shared modules
│ │ │ ├── components/ # Shared components
│ │ │ ├── directives/ # Shared directives
│ │ │ └── pipes/ # Shared pipes
│ │ │
│ │ └── views/ # Application views
│ │
│ └── environments/ # Environment config files
│
├── public/ # Public assets
│ └── i18n/ # Translation files
│
└── coverage/ # Test coverage reports
- Clone the repository
git clone https://github.com/jdanifh/coomiix
cd coomiix- Install dependencies
npm install- Start development server
npm startRun tests with:
npm testFor coverage report:
npm test -- --coverageCoverage configuration in jest.config.ts:
- Reports generated in
coverage/directory - Formats: lcov and text summary
- Excludes:
- Main entry file
- Environment files
- Module files
GitHub Actions workflow runs on:
- Push to main branch
- Pull requests to main branch
The CI pipeline:
- Sets up Node.js environment
- Installs dependencies
- Runs tests with coverage
- Builds the project
- Deploys to GitHub Pages:
- Application:
/ - Coverage Report:
/coverage/lcov-report/
- Application:
The project is automatically deployed to GitHub Pages on successful CI runs:
- Production build uses
--base-href=/coomiix/for correct path resolution - Both the application and coverage report are deployed
- Concurrent deployments are queued to prevent conflicts
- Only deploys from the main branch
Supports multiple languages through @ngx-translate:
- Default language: en-US
- Translation files in
public/i18n/ - Date formats adapted per locale