Application to explore, filter, and browse One Piece TCG cards with database persistence.
- Card loading from a remote JSON source into the backend.
- Card persistence in PostgreSQL.
- Global search and combinable filters (set, name, type, color, cost, trait, and counter).
- Card detail view in a modal.
- REST API to handle data reload and cleanup.
The project runs with Docker Compose and is composed of three services:
-
Database (
postgresql_database)- Image:
postgres:16 - Port:
5432 - Stores cards and related data.
- Image:
-
Backend (
onepiece-backend)- Spring Boot + JPA
- Port:
8080 - Exposes the API (
/api) and loads cards into the database. - CardDataLoaderService.java downloads .json file containing all the cards.
-
Frontend (
onepiece-frontend)- Vite + JavaScript
- Port:
3000 - Consumes the backend API and renders the search/filter interface.
- Frontend: Vite, JavaScript, CSS.
- Backend: Java 21, Spring Boot, Spring Data JPA.
- Database: PostgreSQL 16.
- Infrastructure: Docker, Docker Compose.
onepiece-card-manager/
βββ backend/optcg/ # API Spring Boot
βββ frontend/optcg/ # Web application (Vite)
βββ scripts/ # Docker Compose and helper scripts
βββ README.md # Documentation
From the project root:
cd scripts
sudo docker compose up -d --buildAvailable services:
- Frontend: http://localhost:3000
- Backend: http://localhost:8080/api
- Database:
localhost:5432
Useful endpoints:
- Reload cards:
POST http://localhost:8080/api/cards/reload-data - Clear cards:
DELETE http://localhost:8080/api/cards/clear-all - Fetch cards:
GET http://localhost:8080/api/cards
Project licensed under MIT. See LICENSE.md.
Developed by David Granados PΓ©rez (2026).