A full-stack application that provides detailed player information, leveraging technologies like Spring Boot, React, PostgreSQL, and AWS. Supports CRUD operations, dynamic filtering, and a responsive frontend for seamless user interactions.
✔️ Scrape and store player data using Selenium and BeautifulSoup.
✔️ RESTful APIs for filtering by name, team, and position.
✔️ Dockerized deployment for cross-platform compatibility.
✔️ Hosted on AWS EC2, with the frontend served via an S3 Bucket.
Category | Technologies |
---|---|
Backend | Spring Boot, PostgreSQL, Docker |
Frontend | React, AWS S3 |
Scraping | Selenium, BeautifulSoup, Pandas |
Hosting | AWS EC2, RDS |
git clone https://github.com/karimaljundi/NBAMatchPredictor.git
./mvnw spring-boot:run
npm install
npm start
GET /api/v1/player
Parameter | Type | Description |
---|---|---|
team |
string |
Optional.Filter players by player's team |
name |
string |
Optional.Filter players by player name |
pos |
string |
Optional.Filter players by player's position |
- Returns a list of all players.
- If query parameters team, name, or pos are provided, filters the results accordingly.
- If both team and pos are given, filters players by team and position.
POST /api/v1/player
Parameter | Type | Description |
---|---|---|
player |
json |
Required. Player Object to add |
Example:
{
"name": "John Doe",
"team": "Lakers",
"position": "Forward",
"age": 25
}
- 201 Created: Returns the created player object.
PUT /api/v1/player
Parameter | Type | Description |
---|---|---|
player |
json |
Required. Updated player data |
- Updates an existing player's details in the database.
- 200 OK: Returns the updated player object.
- 404 Not Found: If the player doesn't exist.
DELETE /api/v1/player/{playerName}
Parameter | Type | Description |
---|---|---|
playername |
string |
Required. Name of the player |
- Deletes the player with the given name from the database.
- 200 OK: Returns a success message.