The official backend API for the Evolution Yu-Gi-Oh! platform.
Evolution API is a high-performance backend built with Bun and ElysiaJS, serving as the core infrastructure for the Evolution competitive Yu-Gi-Oh! platform. It manages tournaments, player rankings, ban lists, and detailed match statistics to provide a seamless experience for players and organizers.
- 🏆 Tournament Management: Create, manage, and track competitive tournaments with automated bracket generation.
- 📊 Real-time Leaderboards: Dynamic ranking systems based on match performance.
- 🚫 Ban List Management: Maintain and enforce custom card ban lists for different formats.
- 📈 Comprehensive Scatistics: Detailed player stats, match history, and performance analytics.
- 🎁 Season Wrapped: Generate personalized season summaries for players.
- 🔒 Secure Authentication: Robust JWT-based authentication for user accounts.
- Runtime: Bun - Fast all-in-one JavaScript runtime.
- Framework: ElysiaJS - Ergonomic web framework for Bun.
- Database: PostgreSQL - Powerful open-source relational database.
- ORM: TypeORM - Data mapping for TypeScript.
- Validation: TypeBox (integrated with Elysia).
This project follows Hexagonal Architecture (Ports and Adapters) and Domain-Driven Design (DDD) principles to ensure scalability, maintainability, and testability.
- Domain Layer: Contains the core business logic, entities, and value objects.
- Application Layer: Orchestrates use cases and application flow.
- Infrastructure Layer: Handles external concerns like database access, API routes, and third-party services.
Note
For a detailed breakdown of our architectural patterns and available development skills, please refer to AGENTS.md.
-
Clone the repository:
git clone https://github.com/diangogav/evolution-api.git cd evolution-api -
Install dependencies:
bun install
-
Environment Setup: Copy the example environment file and configure it:
cp .env.example .env
Update the
.envfile with your database credentials and other configuration settings.
Development Mode:
bun run devProduction Build:
bun run build
bun startThe API documentation is automatically generated using Swagger.
- Start the server (
bun run dev). - Navigate to
http://localhost:3000/swaggerin your browser.
We welcome contributions! Please check our AGENTS.md for coding standards and architectural guidelines before submitting a Pull Request.
This project is licensed under the MIT License.