Skip to content

Repository files navigation

Bellum Gens: Looking for Group & Esports Business League (EB-League)

Node.js CI Deployment Status Coverage Status

Overview

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.

Project Structure

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 of components, pipes, services, models, and utilities used by both applications
    └── src/
        ├── environments/
        ├── guards/
        ├── lib/
        ├── models/
        └── services/

Prerequisites

  • Node.js (v18 or higher)
  • npm (v9 or higher)
  • bellum-gens-api-core running locally (required for API integration)

Getting Started

1. Installation

# 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 instructions

2. Development Server

Start both applications concurrently:

npm start

This 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

Build for Production

Build all applications:

npm run build

This will:

  1. Build the common library (npm run build:common)
  2. Build both applications (npm run build:bellumgens and npm run build:ebleague)

Output is generated in the dist/ directory.

Server-Side Rendering (SSR)

Build with SSR:

npm run build:ssr:bellumgens
npm run build:ssr:ebleague

Serve SSR applications:

npm run serve:ssr:bellumgens
npm run serve:ssr:ebleague

Or run concurrently:

npm run dev:ssr:bellumgens
npm run dev:ssr:ebleague

Testing

Unit Tests

Run unit tests for all projects:

npm run test

Run with code coverage and no watch mode:

npm run test:prod

End-to-End Tests

Run e2e tests with Cypress:

npm run cypress:open       # Open Cypress in interactive mode
npm run cypress:run        # Run Cypress in headless mode

Code Quality

Linting

Check code style with ESLint:

npm run lint

The project follows the Conventional Commits specification for commit messages.

Internationalization (i18n)

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 only

Translation files are located in projects/*/src/locale/ and follow XLIFF format.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

Key guidelines:

Technologies

  • 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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Community

Additional Resources

About

Bellum Gens is a gaming and esports event organizer and consultant focused on the development and popularization of esports in Bulgaria. We want to make esports a recognizable topic for the business and thus to help the development of all esports project in Bulgaria and on the Balkans.

Resources

Code of conduct

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages