Bellum Gens is a monorepo project containing two Angular applications:
- Bellum Gens - The main Bellum Gens web application, hosting information about Bellum Gens and Bellum Gens Elite.
- EB-League - An Esports Business League management platform for organizing and running esports tournaments and competitions.
Both applications share a common library (bellum-gens-common) with shared services, models, and utilities, and are built with Angular 21, Infragistics Ignite UI, and RxJS.
projects/
├── bellumgens/ # Main Bellum Gens application
│ └── src/
│ ├── app/
│ ├── assets/
│ ├── locale/ # i18n translation files
│ ├── main.ts # Client entry point
│ └── main.server.ts # SSR entry point
├── ebleague/ # Esports Business League application
│ └── src/
│ ├── app/
│ ├── assets/
│ ├── locale/ # i18n translation files
│ ├── main.ts # Client entry point
│ └── main.server.ts # SSR entry point
└── common/ # Shared library (published to npm)
└── src/
├── environments/
├── guards/
├── lib/
├── models/
└── services/
- Node.js (v18 or higher)
- npm (v9 or higher)
- bellum-gens-api-core running locally (required for API integration)
# Clone the repository
git clone https://github.com/BellumGens/bellum-gens.git
cd bellum-gens
# Install dependencies
npm install
# Clone and run the API server (in a separate terminal)
git clone https://github.com/BellumGens/bellum-gens-api-core.git
cd bellum-gens-api-core
# Follow the API setup instructionsStart both applications concurrently:
npm startThis will launch:
- Bellum Gens at
http://localhost:4200 - EB-League at
http://localhost:4201
To run individual applications:
npm run start-bellumgens # Bellum Gens only (port 4200)
npm run start-ebleague # EB-League only (port 4201)Build all applications:
npm run buildThis will:
- Build the common library (
npm run build:common) - Build both applications (
npm run build:bellumgensandnpm run build:ebleague)
Output is generated in the dist/ directory.
Build with SSR:
npm run build:ssr:bellumgens
npm run build:ssr:ebleagueServe SSR applications:
npm run serve:ssr:bellumgens
npm run serve:ssr:ebleagueOr run concurrently:
npm run dev:ssr:bellumgens
npm run dev:ssr:ebleagueRun unit tests for all projects:
npm run testRun with code coverage and no watch mode:
npm run test:prodRun e2e tests with Cypress:
npm run cypress:open # Open Cypress in interactive mode
npm run cypress:run # Run Cypress in headless modeCheck code style with ESLint:
npm run lintThe project follows the Conventional Commits specification for commit messages.
Extract translation strings:
npm run i18n # Extract for all applications
npm run i18n:bellumgens # Extract for Bellum Gens only
npm run i18n:ebleague # Extract for EB-League onlyTranslation files are located in projects/*/src/locale/ and follow XLIFF format.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
Key guidelines:
- Follow Conventional Commits
- Follow ESLint rules - run
npm run lintto check - Write tests for new code - run
npm run test:prodto verify - Use the Pull Request Template
- Angular 21 - Frontend framework
- Infragistics Ignite UI - Enterprise UI components
- RxJS - Reactive programming library
- TypeScript 5.9 - Language
- Sass - CSS preprocessing
- Cypress - E2E testing
- Karma/Jasmine - Unit testing
- ESLint - Code linting
- Express.js - SSR server runtime
This project is licensed under the MIT License - see the LICENSE file for details.
- Code of Conduct: See CODE_OF_CONDUCT.md
- Issues: Report bugs or request features on GitHub Issues
- Pull Requests: See CONTRIBUTING.md for guidelines