A shared API library for the Radball Digital platform, providing data models and API client libraries for managing cycle-ball (Radball) leagues, teams, and competitions.
Radball Digital is a comprehensive platform for managing cycle-ball associations, clubs, teams, players, and competitions. This API library serves as the shared interface between the backend services and frontend applications.
- Association Management: Manage associations and their seasons
- Club & Team Management: Handle clubs and their associated teams
- Competition Structure: Organize leagues and league groups
- Personnel Management: Track players and other personnel
- Event Scheduling: Manage match days and games
- Venue Management: Handle gym and venue information
- Language: TypeScript
- API Types: GraphQL and REST
- Code Generation: AWS CDK Serverless tooling
- Build System: projen for project management
npm install @taimos/radball-digital-api
The library provides TypeScript interfaces for all data models:
import { Association, Club, Team, Player, Game } from '@taimos/radball-digital-api';
The GraphQL schema is available at schema.graphql
and provides comprehensive type definitions for all queries, mutations, and subscriptions.
The REST API specification is defined in rest.yaml
following the OpenAPI 3.0 specification.
- Node.js (v20+)
- npm or yarn
# Clone the repository
git clone https://github.com/taimos/radball-digital-api.git
cd radball-digital-api
# Install dependencies
npm install
# Build the project
npm run build
npm run build
- Build the TypeScript projectnpm run test
- Run unit testsnpm run lint
- Run lintingnpm run generate:graphql
- Generate GraphQL client codenpm run generate:rest
- Generate REST client codenpx projen
- Regenerate project configuration
radball-digital-api/
├── src/
│ ├── generated/ # Generated client code
│ ├── index.ts # Main entry point
│ └── validation.ts # Validation utilities
├── test/ # Test files
├── schema.graphql # GraphQL schema definition
├── rest.yaml # REST API specification
└── package.json
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Run tests (
npm test
) - Commit your changes (
git commit -m 'feat: add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow TypeScript best practices
- Write comprehensive tests for new features
- Update type definitions when modifying the API
- Use conventional commits for commit messages
- Ensure all generated code is up to date
Proprietary - All rights reserved
Project maintained by Taimos GmbH