CST 365/465 Michael Ruth Homework #1 Due: 6/17/24 (by midnight) For this assignment, you will need to create a Netbeans project (using Spring

CST 365/465
Michael Ruth
Homework #1
Due: 6/17/24 (by midnight)

For this assignment, you will need to create a Netbeans project (using Spring Initializer) which you will
need to name using your Last name followed by your first name followed by “-Homework1” to name it.
After completing the assignment, zip the project directory and turn in via blackboard by the due date.

Finally, you will need to perform this work using Spring Boot.

(15%) Part I: Initialization

1. (5%) Our spring system will be a video game catalog system that will allow us to work with a video
game database. We’ll need a basic video game object (name it Game) which has the following
fields with the following types:
a. EQUALS method: should exist and use GID to compare games for equality.
b. Should include the following fields:

i. GID (int), name (String), system (String), genre (String), price (double)
1. Note that system is the type of system the game runs on (Atari, Nintendo Swith, etc.)
2. Note that genre is a type of game, like RPG, Action, Racing, etc.

2. (10%) Your Controller should create 30 games at random using the initialization code similar to
what we developed in class (in week 1) and store them in an ArrayList designed to store games.

(50%) Part II: GET endpoints

1. (10%) Get all games
2. (10%) Get employee with given GID

a. GID must be given through the path
b. If the employee with the given GID exists, return it
c. Otherwise, return 404

3. (10%) Get all games for a given system
a. System must be given through the path
b. Return all games for a given system

4. (10%) Get all games for a given genre
a. Genre must be given through the path
b. Return all games for a given genre

5. (10%) Get all games priced between a given range (low, high values)
a. A high value and a low value must be given through the path
b. Return all games that are priced between the high and low given values

(10%) Part III: POST endpoints
1. (10%) Add a game

a. Game must be given through the body
b. No duplicates allowed
c. Only accept valid games (must use validation criteria from part V)
d. Report with game if OK, or report FOUND

(10%) Part IV: PUT endpoints
1. (10%) Update an game

a. Game must be given through the body
b. Game must already exist
c. Update the game using the given game values
d. Only accept valid games
e. Report with employee if OK, conflict otherwise

(5%) Part IV: DELETE endpoints

1. (5%) Delete game with the given GID
a. GID must be given through the path
b. Game must exist with the given GID
c. Report with game if OK, 404 otherwise

(10%) Part V: Validation (Employee)

1. (10%) Validate all fields of employee using the following constraints:
a. GID must be present and a 6 digit number
b. Name, genre, system must be present and not empty strings
c. Price must be positive number and greater than 0
d. Make sure to have exception handling as necessary (JUST COPY MY CODE FOR THIS PART

INTO YOUR PROJECT)

GRADUATE STUDENTS ONLY (UG may do for extra credit)

You will work on some additional GET endpoints:

1. (5%) Create a new object named Manufacturer with two fields: (int) MID, and (String) name.
2. (5%) In the constructor for your controller, generate 5 manufacturers and put them into a

separate list.
3. (10%) Create an additional int field for game named man (will refer to their manufacturer’s

MID) and initialize the field during creation of the games to one of the MIDs of the
manufacturers you created.

4. (15%) Create the endpoints necessary in the same controller to manage manufacturers (list,
delete, update, put)

5. (15%) Create an endpoint that gets all games for a given manufacturer name
a. Manufacturer name must be given through the path
b. Return all games for a given manufacturer name

Note:

• If the project or the zipped file is NOT named correctly, I will take 10 points off the total score.

• If the files within the project are named incorrectly, I will take 10 points off the total score.

• Do NOT use lamba expressions for this homework, if you do, you will receive a zero.

• If the project doesn’t contain sufficient comments, I will take 10 points off the total score.

• This is an individual assignment and what you turn in should represent only your work.

• Do NOT try to do this last minute!

Share This Post

Email
WhatsApp
Facebook
Twitter
LinkedIn
Pinterest
Reddit

Order a Similar Paper and get 15% Discount on your First Order

Related Questions

21:26 VPN BUSA 6170 Course Project Overall Guidelines.docx Phoenix Files X Students will utilize course learning objectives in creating a compediensive MS

21:26 VPN BUSA 6170 Course Project Overall Guidelines.docx Phoenix Files X Students will utilize course learning objectives in creating a compediensive MS Word document explaining concepts, derailing calculations, and discussing recommended decisions based on their analysis of the provided data set. Ne dint quotes are accept able. Mi submitted documents