i have java project, and i will send the details

profilead2006
CS300_final_exam1.pdf

CS 300 Final Project/Exam

You’ve been presented with a copy of BluePrints, the 2017-2018 CS480/481 project. This project

is a web site designed to allow easy editing of building, floor, and room data for the MonarchMaps

project (’16-’17). This project has a number of dependencies, and zero unit tests. It relies fairly heavily

on Spring and Spring MVC to manage *many* of those dependencies so you are in reasonably good

shape compared to other legacy projects. This represents a fairly realistic request in business and the

time frame (2 weeks) is likely a much larger timeframe than you would normally have OR the

application’s scope would be much larger.

I have updated this project to no longer depend on a remote Postgres SQL database, but instead

use Spring’s built-in, in-memory database H2. This means you do not have to connect to or worry about

conflicts with a database, however, nothing is actually persisted between sessions. When you run this

project (using Eclipse’s “Run on Server” feature), you’ll be able to point your browser at

http://localhost:8080/BluePrints to investigate the live app. I’ll be pushing a .sql file into your repository

within a few days to auto-seed the H2 database with some test data and will supply you a dummy

login/password at that point. In the meantime, you can still get familiar with the code!

Your task is to add the following feature/change, leveraging the techniques you’ve learned

throughout this course and make sure you are creating proper unit tests for the feature and any code

you must modify. Some areas of the code may not work properly, and you’ll need to investigate/fix

those areas using characterization tests to explore. I am not mandating a specific number of tests, but

you should adequately ensure you are testing what you’re changing.

We no longer want to “hard delete” any comment from the system. Comments are

attached to floors. Instead “soft delete” them by setting a deleted flag on the

comment. Soft-deleted comments should not normally be accessible under normal

operations but should still be stored in the table. We want to capture the date/time

the comment was deleted, and the user who did the deletion.

There are several things to consider, here. The project is using Jpa, which you can read more

about at https://spring.io/guides/gs/accessing-data-jpa/. Pay particular attention to how the

@Repository annotation works, especially in creating “find” methods… Here are a few suggestions to

get you started:

• Do some quick sketching/outlining to see how the classes interact

• Refactor the classes and interfaces in the edu.kings.cs480.BluePrints.Database

package to split the “Model” classes from the @Repository interfaces to simplify the scope of

what you’re working on

• Start by getting the field on each object to work, then look to override the delete behavior, and

finally the find behavior

• You may or may not have to create concrete implementations of the @Repository interfaces

depending on your approach

• Follow the existing application conventions for how “users” are stored my mimicking how the

“creator”/created_by fields work

• Be *cautious* when a floor is deleted – currently, a deleted floor hard-deletes all of its

comments; this behavior must also change

o Pay attention to the relationship between Floor and Comment; and note how a

Comment ignores if the comment creator cannot be found in the AppUsers data… <that

is a hint>

Your work is your own. Please do not share code as that will fall under the college’s academic

dishonesty and plagiarism guidelines.