NBADraft (fullstack project) Spring boot 3, Angular 19, Angular Material, MySQL, Swagger (2025) (Backend + Frontend)
- Spring boot backend: A robust REST API providing structured NBA player statistics, team data, and contract information.
- Angular frontend: A modern, responsive interface built with Angular to manage and visualize the NBA Expansion Draft process.
- Data Upsert Engine: Automated synchronization from JSON sources that updates existing records and inserts new ones based on unique business keys.
- Optimized DTOs: Uses Java Records for memory-efficient, immutable data transfer between layers. Live API Documentation: Integrated Swagger UI for instant endpoint testing and schema exploration.
- Java 21 (LTS version)
- Spring Boot 3.4.5 (Web, Data JPA)
- MySQL (Relational storage)
- Lombok (Code simplification)
- Springdoc OpenAPI (Interactive Swagger documentation)
- Interactive Dashboard: Comprehensive visualization of player statistics and active contracts.
- Expansion Draft Management: Core team selection logic featuring real-time Salary Cap calculations.
- Scalable Architecture: Built strictly following the "Core/Shared/Features" pattern for high maintainability.
- Optimized Performance: Leverages Angular Signals for granular, highly reactive change detection.
- Angular 19+ (Signals, Standalone Components, Control Flow)
- Angular Material (UI Components & Design System)
- TypeScript (Strict typing and Path Aliases)
- RxJS (Asynchronous data stream management)
- Dual-Source Scraping: Merges HTML table parsing (Jsoup) with hidden JSON API consumption.
- Resilience & Anti-Ban System: Built-in mechanisms to respect server rate limits, including random request delays (Jitter) and Exponential Backoff for retries.
- Smart Resume: Automatically tracks scraping progress. If interrupted, the script resumes exactly where it left off without duplicating data.
- Modern Java Architecture: Utilizes Java Records for immutable data models and follows clean code principles (separation of concerns, robust exception handling).
- Automated Data Merging (Read-Merge-Write): Dynamically updates JSON output files without overwriting previously scraped teams.
- Java 14+ (Uses
Recordsfor data modeling) - Maven (Dependency management)
- Jsoup (HTML parsing and API HTTP requests)
- Jackson (FasterXML) (JSON serialization/deserialization)
Use ReadMe for the various sections.