Progressive Web App for the Berlin Skylarks Baseball & Softball Club https://app.berlinskylarks.de/
  • Svelte 38.3%
  • Go 35.5%
  • CSS 14.4%
  • TypeScript 10.7%
  • JavaScript 0.5%
  • Other 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-11 12:26:17 +02:00
.github_bck/workflows ci: comment GitHub stuff 2026-01-18 13:09:31 +01:00
.run fix: perform RecordQuery with custom structs directly 2026-01-24 11:18:18 +01:00
.zed dev: add Zed debugger config 2026-06-27 08:57:25 +02:00
craft fix: correct and expand ical query 2026-08-05 20:31:52 +02:00
docs docs: update docs 2025-09-14 18:25:30 +02:00
dp feat: add ID to practice DTOs 2026-09-10 21:22:05 +02:00
helpers fix: make mailpit script executable 2025-04-21 17:05:47 +02:00
internal/tib chore: remove unused Go code 2026-05-08 15:38:47 +02:00
migrations fix: make user, event and state required fields on participations 2026-09-07 19:41:55 +02:00
templates/email feat: notify all superusers via email when new users are created 2026-02-06 18:24:14 +01:00
test_pb_data test: add integration test for practice export endpoint 2026-09-05 08:15:37 +02:00
ui chore: regenerate type files 2026-09-07 19:46:37 +02:00
.dockerignore build: copy .env during build 2026-03-27 13:00:24 +01:00
.editorconfig dev: add .editorconfig file 2025-11-21 12:54:20 +01:00
.env.dist refactor: use native dialog element for modals 2026-07-17 00:35:14 +02:00
.gitignore i18n: add keys for new features 2026-08-02 18:39:54 +02:00
build_production.sh polish: add shebang to bash scripts 2026-06-20 09:37:38 +02:00
build_staging.sh polish: add shebang to bash scripts 2026-06-20 09:37:38 +02:00
club_admin_test.go test: add integration test for practice export endpoint 2026-09-05 08:15:37 +02:00
community_service_rules_test.go chore: move DP back to this repo 2026-01-18 17:09:54 +01:00
CREDIT.md feat: use Skeleton toasts for login notifications 2024-07-31 22:28:11 +02:00
docker-compose-staging.yml ci: use env file for compose, build with explicit go patch version 2026-05-10 10:26:14 +02:00
docker-compose.yml ci: use env file for compose, build with explicit go patch version 2026-05-10 10:26:14 +02:00
Dockerfile chore: upgrade Go deps 2026-09-04 09:19:38 +02:00
games_count_test.go test: fix game count test with new path 2026-02-08 09:27:17 +01:00
go.mod fix(regression): revert to 0.40.2 for now 2026-09-11 12:26:17 +02:00
go.sum fix(regression): revert to 0.40.2 for now 2026-09-11 12:26:17 +02:00
go_tests.sh test: use correct endpoint for POST 2026-08-09 10:20:25 +02:00
join_team_test.go test: add integration tests for JoinTeam route 2026-02-07 18:17:43 +01:00
LICENSE Create LICENSE 2024-03-13 22:48:32 +01:00
main.go feat: setup Sentry SDK for Bugsink 2026-05-25 10:14:38 +02:00
main_test.go chore: reshuffle project structure 2026-01-18 16:45:49 +01:00
mise.toml chore: upgrade Go deps 2026-09-04 09:19:38 +02:00
pb_schema.json chore: regenerate type files 2026-09-07 19:46:37 +02:00
player_webhook_test.go test: fix webhook test cases for request method 2026-01-25 16:44:18 +01:00
README.md chore: upgrade Go deps 2026-09-04 09:19:38 +02:00
run_with_test_data.sh polish: add shebang to bash scripts 2026-06-20 09:37:38 +02:00
security_test.go test: make all tests pass with new data structure 2026-08-09 22:53:04 +02:00
test_utils.go chore: remove unused Go code 2026-05-08 15:38:47 +02:00
user_stats_test.go chore: move DP back to this repo 2026-01-18 17:09:54 +01:00

Skylarks Diamond Planner

Progressive Web App for the Berlin Skylarks Baseball & Softball Club. Built with Pocketbase and SvelteKit with the static adapter.

Concept / Background

Main rationale to create this project: At project start, different types of data were being processed in different web services:

  • The main administrative platform Baseball & Softball Manager / BSM of the German Baseball & Softball Federation (DBV).
    • Everything related to organised play is processed there (clubs, games, leagues, teams, player, stats)
    • Accessed via REST API
    • External: no club access to any internal logic
  • The current Skylarks website, served as a TYPO3 CMS website ( PHP-based).
    • Processes mostly typical CMS content (articles, info pages), but also additional team data that is distinct from BSM data: club teams, player profiles (with more data than what is available in BSM), training times, game reports
    • Mainly displayed in the TYPO3 frontend (server-side templating) directly, but is also partly accessible via REST API
    • Internal: custom-built, full club access

See also: Project History

Project goal

  • collect data from all relevant sources and displays it in a user-friendly way
  • Progressive Web App with mobile-first design
  • provide logic to carry out team organisation tasks (practice and game attendance, teams and members, stats)
  • → replace existing external tools for those tasks
  • become THE central hub for team activities

Design decisions

  • This tool will process administrative data for club and team events (events, announcements, comments, attendance data and statistics)
  • this data will be distinct from both CMS and BSM data:
    • BSM data relates to the club's organised play ⇒ main use case is external
    • CMS data is strictly presentational, the CMS does not care about administrative logic ⇒ main use case is external
    • ⇒ here, the main use case is internal

Project requirements

  • basic familiarity with the concepts of SvelteKit and Svelte there is an excellent official tutorial available
  • Go v1.27 or higher
  • Node.js v24 or higher
  • access to Berlin Skylarks environment secrets and API keys

Local Development

  1. Clone the repository

  2. Set up environment

cp .env.dist .env
  • PUBLIC_TYPO3_URL can either be set to a TYPO3 dev environment running locally or the production URL
  1. Get project dependencies

backend

go mod download
go run . serve

frontend

cd ui
pnpm install
# yarn/deno/bun could also work, untested
  1. Start the dev server (frontend watches for file changes automatically, backend needs to be restarted manually)

backend

go run . serve

frontend

cd ui
pnpm dev

URLs

Local/Development

Production

Deployment

  • as this project is hosted on a self-hosted Forgejo instance, there is no automatic CI/CD workflow implemented at the moment.
  • images are built on the local development machine with the provided bash scripts in the project root
  • there are scripts for staging and production environment with slightly different build arguments
  • the images are pulled on the target server according to the specification that is connected to this git repository.
  • environment variables are supplied directly to the containers

Backend-specific documentation

Pocketbase Schema

  • the file pb_schema.json is an export of the currently configured collections access rules.
  • it acts as a source of truth for the backend schema
  • in addition, pocketbase migrations are saved in the corresponding folder
  • for type-safe access to custom models, RecordProxy structs are used
  • TS types are generated on the frontend side

Bugs and Problems

  • Please open an issue in this repository.

Terms of use

Licensed under AGPL-3.


Explore other templates from The Good Docs Project. Use our feedback form to give feedback on this template.