This is an NX workspace containing two Angular applications:
- hcmp-host (Main application)
- hcmp-cost-management (Micro Frontend running on port 4215)
- Angular 20
- Server-Side Rendering (SSR)
- Client-Side Hydration
- HTTP Client with Fetch API
- Signals for State Management
- Micro Frontend Architecture
- Node.js (v18 or later)
- npm (v9 or later)
- Clone the repository:
git clone <repository-url>
cd hcmp-workspace- Install dependencies:
npm install- Start the applications:
For Cost Management App (Port 4215):
npm run start:costFor Host App (Port 4200):
npm run start:hostTo run both applications simultaneously:
npm run start:allnpm run start:host- Start the host applicationnpm run start:cost- Start the cost management applicationnpm run start:all- Start both applications in parallel
npm run build:host- Build the host applicationnpm run build:cost- Build the cost management applicationnpm run build:all- Build both applications in parallel
npm run test:host- Run tests for the host applicationnpm run test:cost- Run tests for the cost management applicationnpm run test:all- Run tests for both applications
npm run lint:host- Run linting for the host applicationnpm run lint:cost- Run linting for the cost management applicationnpm run lint:all- Run linting for both applications
hcmp-workspace/
├── apps/
│ ├── hcmp-host/ # Main host application
│ └── hcmp-cost-management/ # Cost management micro frontend
├── package.json
├── tsconfig.base.json
└── nx.json
- Framework: Angular 20
- Build Tool: NX
- State Management: Angular Signals
- Styling: SCSS
- Server-Side Rendering: Angular Universal
- HTTP Client: Angular HttpClient with Fetch API
-
Component Structure
- Use standalone components
- Implement lazy loading for routes
- Follow Angular's style guide
-
State Management
- Use signals for local state
- Implement proper state isolation between micro frontends
-
Styling
- Use SCSS for styling
- Follow BEM methodology
- Maintain consistent theming
-
Testing
- Write unit tests for components
- Implement E2E tests using Playwright
- Maintain good test coverage
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
MIT
For support, please contact the development team or raise an issue in the repository.