- TypeScript 80.1%
- Java 18.8%
- HTML 0.6%
- Vue 0.5%
| .quarkus/cli/plugins | ||
| backend | ||
| frontend | ||
| node_modules/.cache/prettier/.prettier-caches | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
Chess Position Library
Chess Position Library is a web application for collecting, organizing, and displaying chess positions.
The project is intended primarily as a personal tool for chess coaching. Positions can originate from games, training material, manually collected examples, or original analysis. Over time, the application will support categorization, tagging, searching, and browser-based visualization of positions.
Current status
The project is in an early MVP stage.
The backend currently provides CRUD operations for chess positions:
- Create a position
- Retrieve all positions
- Retrieve a position by ID
- Update a position
- Delete a position
The frontend has been initialized and will consume a generated TypeScript client based on the backend's OpenAPI specification.
Technology stack
Backend
- Java 25
- Quarkus
- Quarkus REST
- Hibernate ORM with Panache
- PostgreSQL
- Jakarta Validation
- SmallRye OpenAPI
- Maven
The backend follows a code-first OpenAPI approach. The Java REST API is the source of truth, and SmallRye OpenAPI generates the OpenAPI specification.
Frontend
- Vue 3
- TypeScript
- Vite
- Vue Router
- OpenAPI Generator
- npm
The frontend API client is generated from the OpenAPI specification produced by the backend.
Infrastructure
Planned production infrastructure:
- Docker
- Forgejo
- Forgejo Actions
- Forgejo Container Registry
- Caddy
- PostgreSQL
chess.alparslanyalcin.de
Repository structure
chess-position-library/
├── backend/
│ ├── src/
│ ├── pom.xml
│ ├── mvnw
│ └── mvnw.cmd
│
├── frontend/
│ ├── openapi/
│ │ └── openapi.yaml
│ ├── src/
│ │ ├── api/
│ │ │ └── generated/
│ │ ├── features/
│ │ │ └── positions/
│ │ │ ├── components/
│ │ │ ├── composables/
│ │ │ └── views/
│ │ ├── router/
│ │ └── shared/
│ └── package.json
│
└── README.md