A robust, backend-focused game download platform (for low end pc's) built with Spring Boot. This project powers a modern frontend and demonstrates best practices in REST API design, database modeling, and scalable backend architecture.
flowchart TD
A["Client"] -->|"REST API Calls"| B["Potato Gaming Spring Boot Backend"]
B --> C["Game Management"]
B --> D["Genre Management"]
C --> E["Create Game (POST /api/create)"]
C --> F["Bulk Create Games (POST /api/bulk/create)"]
C --> G["Get All Games (GET /api/all/{page})"]
C --> H["Get Game by ID (GET /api/{id})"]
C --> I["Search Games (GET /api/search?query=)"]
D --> J["Get All Genres (GET /api/genre/list)"]
B --> K["MySQL Database"]
C --> K
D --> K
- Game Management: Add, search, and retrieve games with rich metadata, screenshots, and download links.
- Genre Management: Organize games by genre, supporting dynamic creation and listing.
- Advanced Search: Search games by title, publisher, or genre.
- Bulk Operations: Efficiently add multiple games at once.
- Pagination: Scalable listing of games for large datasets.
- Robust Data Modeling: Uses JPA, Lombok, and MySQL for clean, maintainable code.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/all/{page} |
Get paginated list of games |
| GET | /api/{id} |
Get game details by ID |
| GET | /api/genre/list |
List all genres |
| GET | /api/search?query= |
Search games by title/publisher/genre |
| POST | /api/create |
Create a new game |
| POST | /api/bulk/create |
Bulk create games |
- Spring Boot 3
- Spring Data JPA
- MySQL
- Lombok
- Maven
- Game: title, description, features, publisher, cover image, screenshots, trailer, download links, file size, system requirements, genre, release date.
- Genre: name, list of games.
-
Clone the repo
git clone https://github.com/yourusername/Potato-Gaming.git cd Potato-Gaming -
Configure Database
- Set your MySQL credentials in
src/main/resources/application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/your_db spring.datasource.username=your_user spring.datasource.password=your_pass
- Set your MySQL credentials in
-
Build & Run
./mvnw spring-boot:run
-
Test the APIs
- Use Postman, Swagger UI, or
curlto interact with the endpoints.
- Use Postman, Swagger UI, or
Contributions are welcome! Please open issues or pull requests for improvements.
MIT
Let me know if you want to add more sections, tweak the style, or include more technical details!




