Progressive Web App for the Berlin Skylarks Baseball & Softball Club https://app.berlinskylarks.de/
Find a file
2026-03-02 18:48:38 +00: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
bsm fix!: make favorite team data fetching functional again 2026-02-27 17:39:43 +01:00
craft refactor: improve subscription fetching for teams and clubs 2026-01-24 10:56:24 +01:00
docs docs: update docs 2025-09-14 18:25:30 +02:00
dp feat: use display name field in frontend 2026-03-01 23:37:46 +01:00
helpers fix: make mailpit script executable 2025-04-21 17:05:47 +02:00
internal/tib refactor: update code to Go 1.26 2026-03-01 18:28:43 +01:00
migrations feat: add display name field to users collection 2026-03-01 23:09:24 +01: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 fix: tweak user auth rule again 2026-02-08 10:50:55 +01:00
ui i18n: make date formats reactive 2026-03-02 18:06:23 +01:00
.dockerignore chore: reshuffle project structure 2026-01-18 16:45:49 +01:00
.editorconfig dev: add .editorconfig file 2025-11-21 12:54:20 +01:00
.env.dist chore: reshuffle project structure 2026-01-18 16:45:49 +01:00
.gitignore chore: reshuffle project structure 2026-01-18 16:45:49 +01:00
build_production.sh build: adjust Dockerfile for new paths 2026-01-25 17:23:00 +01:00
build_staging.sh build: adjust Dockerfile for new paths 2026-01-25 17:23:00 +01:00
community_service_rules_test.go chore: move DP back to this repo 2026-01-18 17:09:54 +01:00
create_hardlinks.sh chore: pull in FE changes for real 2026-01-16 10:42:43 +01:00
CREDIT.md feat: use Skeleton toasts for login notifications 2024-07-31 22:28:11 +02:00
docker-compose-common.yml build: enable local builds, pass VAPID variables to container 2026-01-18 12:52:47 +01:00
docker-compose-staging.yml ci: adjust labels 2025-11-23 12:09:24 +01:00
docker-compose.yml ci: adjust labels 2025-11-23 12:09:24 +01:00
Dockerfile build: use Go 1.26 2026-03-01 18:33:01 +01:00
favorite_team_test.go test: fix favorite team test 2026-02-28 08:59:38 +01:00
games_count_test.go test: fix game count test with new path 2026-02-08 09:27:17 +01:00
go.mod chore: update Go deps 2026-03-01 18:28:22 +01:00
go.sum chore: update Go deps 2026-03-01 18:28:22 +01:00
join_team_test.go test: add integration tests for JoinTeam route 2026-02-07 18:17:43 +01:00
league_leaders_test.go chore: reshuffle project structure 2026-01-18 16:45:49 +01:00
LICENSE Create LICENSE 2024-03-13 22:48:32 +01:00
main.go chore: move DP back to this repo 2026-01-18 17:09:54 +01:00
main_test.go chore: reshuffle project structure 2026-01-18 16:45:49 +01:00
pb_schema.json feat: add display name field to users collection 2026-03-01 23:09:24 +01:00
player_webhook_test.go test: fix webhook test cases for request method 2026-01-25 16:44:18 +01:00
README.md ci: fix pipeline 2026-01-25 17:43:38 +01:00
run_with_test_data.sh chore: reshuffle project structure 2026-01-18 16:45:49 +01:00
security_test.go chore: move DP back to this repo 2026-01-18 17:09:54 +01:00
test_utils.go chore: move DP back to this repo 2026-01-18 17:09:54 +01: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.25 or higher
  • Node.js v24 or higher
  • access to Berlin Skylarks environment secrets and API keys

Local Development

  1. Clone the repository
git clone git@github.com:tib-baseball-softball/skylarks-next.git
git submodule update --init
cd skylarks-next
  1. Set up environment
cp .env.dist .env
  • BSM API key (from BSM user account with at the club admin scope for Berlin Skylarks)
  • 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

  • changed FIXME

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.