@taimos/radball-digital-api
v0.0.52
Published
Radball Digital API
Readme
Radball Digital API
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.
About Radball Digital
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.
Features
- 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
Technology Stack
- Language: TypeScript
- API Types: GraphQL and REST
- Code Generation: AWS CDK Serverless tooling
- Build System: projen for project management
Installation
npm install @taimos/radball-digital-apiUsage
Data Models
The library provides TypeScript interfaces for all data models:
import { Association, Club, Team, Player, Game } from '@taimos/radball-digital-api';API Documentation
GraphQL Schema
The GraphQL schema is available at schema.graphql and provides comprehensive type definitions for all queries, mutations, and subscriptions.
REST API
The REST API specification is defined in rest.yaml following the OpenAPI 3.0 specification.
Development
Prerequisites
- Node.js (v20+)
- npm or yarn
Setup
# 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 buildAvailable Scripts
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
Project Structure
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.jsonTesting
# Run all tests
npm test
# Run tests in watch mode
npm run test:watchContributing
- 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
Coding Standards
- 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
License
Proprietary - All rights reserved
Contact
Project maintained by Taimos GmbH
