Professional tournament management system for Valorant esports with comprehensive REST API, interactive documentation, and Discord integration
LAVAVA 2025 is a sophisticated tournament management platform built with Java 21 and Spring Boot 3.4.5. It provides a complete ecosystem for Valorant tournament organization, featuring advanced player statistics, dynamic ranking systems, team management, and real-time match tracking with interactive API documentation.
- Comprehensive Registration: Secure user authentication with role-based access control
- Advanced Profiles: Detailed player statistics with performance tracking
- Dynamic Rankings: Real-time ranking calculations based on match performance
- Player Performance Analytics: Individual statistics and historical data
- Team Formation: Create and manage competitive teams
- Member Management: Invite system with approval workflows
- Team Statistics: Collective performance metrics and history
- Administrative Controls: Full CRUD operations for team management
- Comprehensive Match System: Full match lifecycle management
- Official Map Pool: All current Valorant competitive maps
- Real-time Results: Live score tracking and result recording
- Match History: Complete historical data with detailed statistics
- Dynamic Leaderboards: Real-time ranking updates with pagination
- Performance Metrics: Advanced statistical analysis
- Seasonal Rankings: Support for multiple tournament seasons
- Custom Queries: Flexible ranking filters and search capabilities
- Interactive API Documentation: Complete Swagger UI integration
- Professional Documentation: Comprehensive Javadoc throughout codebase
- Multi-Environment Support: Development, testing, and production configurations
- Security Integration: Spring Security with authentication and authorization
- Database Flexibility: H2 for development/testing, PostgreSQL for production
- Java 21 or higher
- Maven 3.9+
- PostgreSQL 15+ (for production)
- Git for version control
git clone https://github.com/codeNilson/lavava2025.git
cd lavava2025# Create PostgreSQL database
createdb lavava2025
# Update application-prod.yaml with your database credentials# Build the project
mvn clean compile
# Run with development profile
mvn spring-boot:run -Dspring-boot.run.profiles=dev# Build the project
mvn clean package -DskipTests
# Run with production profile
mvn spring-boot:run -Dspring-boot.run.profiles=prod# Run all tests
mvn test
# Run tests with coverage
mvn test jacoco:reportThe application provides comprehensive interactive API documentation through Swagger UI:
- Swagger UI: http://localhost:8080/swagger-ui.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
- Base API Path:
/v1
GET /leaderboard- Global player leaderboard with paginationGET /player/{playerId}- Individual player ranking detailsGET /season/{seasonId}- Seasonal rankingsPOST /update- Update player rankings (Admin only)DELETE /{rankingId}- Remove ranking entry (Admin only)
GET /- List all players with pagination and searchGET /{id}- Get player detailsPOST /- Create new playerPUT /{id}- Update player informationDELETE /{id}- Remove player (Admin only)
GET /- List all teams with paginationGET /{id}- Get team detailsPOST /- Create new teamPUT /{id}- Update team informationDELETE /{id}- Remove team (Admin only)
GET /- List matches with filtersGET /{id}- Get match detailsPOST /- Create new matchPUT /{id}- Update match informationDELETE /{id}- Remove match (Admin only)
src/
├── main/
│ ├── java/io/github/codenilson/lavava2025/
│ │ ├── controllers/ # REST API endpoints
│ │ │ ├── MatchController.java
│ │ │ ├── PlayerController.java
│ │ │ ├── PlayerRankingController.java
│ │ │ └── TeamController.java
│ │ ├── services/ # Business logic layer
│ │ │ ├── MatchService.java
│ │ │ ├── PlayerService.java
│ │ │ ├── PlayerRankingService.java
│ │ │ └── TeamService.java
│ │ ├── repositories/ # Data access layer
│ │ ├── entities/ # JPA entities and DTOs
│ │ ├── config/ # Configuration classes
│ │ ├── authentication/ # Security implementation
│ │ └── errors/ # Exception handling
│ └── resources/
│ ├── application.yaml # Main configuration
│ ├── application-dev.yaml # Development settings
│ ├── application-prod.yaml # Production settings
│ └── application-test.yaml # Testing configuration
└── test/ # Comprehensive test suite
├── controllers/ # Controller integration tests
├── services/ # Service unit tests
└── repositories/ # Repository tests
- Database: H2 in-memory database
- Port: 8080
- Base Path:
/api/v1 - Auto-seeding: Enabled for sample data
- Database: PostgreSQL
- Security: Enhanced configuration
- Logging: Structured logging
- Performance: Optimized settings
- Database: H2 in-memory (isolated)
- Security: Disabled for testing
- Data: Clean state for each test
The project includes comprehensive testing coverage:
# Run all tests
mvn test
# Run specific test class
mvn test -Dtest=PlayerRankingControllerTest
# Run tests with specific profile
mvn test -Dspring.profiles.active=test- Unit Tests: Service layer business logic
- Integration Tests: Controller endpoints with real database
- Repository Tests: Data layer validation
- Security Tests: Authentication and authorization
Future integration will include:
- Tournament Notifications: Automated match reminders
- Ranking Updates: Real-time leaderboard notifications
- Interactive Commands: Player statistics and team management
- Match Results: Automated result broadcasting
For production deployment, configure the following environment variables:
# Database Configuration
SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/lavava2025
SPRING_DATASOURCE_USERNAME=your_username
SPRING_DATASOURCE_PASSWORD=your_password
# Application Configuration
SPRING_PROFILES_ACTIVE=prod
SERVER_PORT=8080
# Security Configuration
JWT_SECRET=your_jwt_secret_key_here- Health Checks: Spring Boot Actuator endpoints
- Metrics: Application performance monitoring
- Logging: Structured logging with configurable levels
- Database Connection Pooling: HikariCP for optimal performance
- 👤 Cadastro de usuários
- 🏆 Criação e gerenciamento de times
- 🎮 Cadastro e controle de partidas
- 🔎 Consultas e buscas de jogadores, times e partidas
- 📊 Ranking dos jogadores
Este projeto utiliza Spring Boot.
Para rodar localmente:
-
Clone o repositório:
git clone https://github.com/codeNilson/lavava2025.git cd lavava2025 -
Configure as variáveis de ambiente:
- Utilize o arquivo de exemplo de variáveis de ambiente (
.env.example) para criar seu arquivo.envou configure diretamente no ambiente. - Defina as variáveis necessárias para conexão com o banco de dados e outros serviços.
- Utilize o arquivo de exemplo de variáveis de ambiente (
-
Execute o projeto:
- Com Java e Maven instalados, rode:
mvn spring-boot:run
- Ou, se preferir, gere o JAR e execute:
mvn package java -jar target/lavava2025-0.0.1-SNAPSHOT.jar
- Com Java e Maven instalados, rode:
This project is licensed under the MIT License - see the LICENSE file for details.
Denilson Silva | | 📧 [email protected]
Eric Nascimento | | 📧 [email protected]
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Feel free to submit issues and enhancement requests via GitHub Issues.
For support and questions, contact the development team through the provided email addresses.
- Discord Bot Integration: Complete bot development with interactive commands
- Real-time Notifications: WebSocket integration for live updates
- Advanced Analytics: Enhanced statistical analysis and reporting
- Mobile API: Dedicated endpoints for mobile applications
- Tournament Brackets: Automated bracket generation and management
- Streaming Integration: OBS and streaming platform connectivity
⭐ If you find this project useful, please consider giving it a star! ⭐
🏆 LAVAVA 2025 - Professional Valorant Tournament Management System
Documentation created with AI assistance