Ask Java Expert


Home >> Java

Problem Specification

You have been approached by a local university for designing and implementing a room access control system on the university campus. Access to each room on each floor of each campus building is controlled via a swipe card system. All staff and students are permanently issued swipe cards appropriate to their role at the university while visitors are issued with a visitor card upon arrival at reception. Each room can be configured to admit a user based on the roles assigned to their swipe card and the type of room the user is trying to access. In addition certain roles may only allow access to a room at certain times. A user can only access one room at a time.

In addition to the swipe card systems normal operations, and to support health and safety requirements, it should be possible to place a room, building or the entire campus into an "emergency mode". Each campus building has a supply of ‘emergency responder' cards that can be accessed by fire, police and medical personnel. In "normal mode" these cards cannot be used to access any room. When in "emergency mode" these cards should allow access to ANY room.

The swipe card system should log into a text file the following information every time a card holder attempts to access a room:

1. The date and time that the user made the attempt to access a room.

2. The users name and swipe card ID number.

3. A code identifying the building in which the room is located (i.e. Babbage = BGB)

4. The room's floor and room number (i.e. room 7 on floor 2 of the Babbage building might be logged as BGB 207).

5. The mode in which that room is operating (i.e. "Normal" or "Emergency").

6. Whether access was granted or refused.

Whenever a room, building or the entire campus enters "emergency mode" the log file should record the date and time as well as the reason for the change (room X entered emergency mode, building Y entered emergency mode or the whole campus went into emergency mode). A folder should be created named EM_. A copy of the following items should be placed into this folder:

1. The current log file and

2. A copy of the current state of the swipe card data model. (You may save the data model's current state using either object serialization, an XML file OR a database). It should be possible to load the saved data model using your GUI and view the campus data model as it appeared after emergency mode was entered.

Each room has 3 states: Busy, Available and Free. In Busy state, a room is being used for a lecture, practical session or a formal meeting. In Available state, a room is being used for informal meeting of university staff members or students. In Free state, a room is empty and is available to any authorised user. A room changes its state from Free to Available state once an authorised user enters the room.

Each room has a seating capacity. In "normal mode", the access to a room is blocked when it reaches its full capacity. When a room is in Busy or Available state and the number of people in the room are at least 75% of the total room capacity then all the room lights are automatically turned on. When the room is in Busy or Available state and the number of people in the room are at least 50% of the total room capacity, 50% of the room lights are automatically turned on. When the room is in Busy or Available state and the number of people in the room are at least 25% of the total room capacity, 33% of the room lights are automatically turned on. When the room is in Busy or Available state and the number of people in the room are up to 25% of the total room capacity, 25% of the room lights are automatically turned on. When the room is in Free state, all the lights are turned off.

The system should be able to maintain an hourly record of room states for improving the workspace utilisation as well as the energy consumption pattern. A log file should be separately stored in the system carrying hourly entries about the room, its state, utilisation statistics and energy consumption statistics.

Requirements

You are required to produce a Java desktop application OR a Java web application that meets the universities requirement specification given in the problem statement of this assignment. This application should follow the Model-View-Controller (MVC) pattern.

Using additional software design patterns in your data model design from the following list will earn you:

- Strategy Pattern

- State Pattern

- Observer Pattern

- Command Pattern

- Decorator Pattern

- Factory Pattern

- Singleton Pattern

You are required to use test driven development (TDD) to create your solution to the scenario. Your solution should be implemented in the Java programing language using the NetBeans IDE.

The implementation should contain two NetBeans projects as follows:

1. A Java Class Library containing the implementation of your data model as per your UML Class diagram. This project should also include the set of JUnit tests used to create your data model. The data model should have a full set of documentation generated for it using the Javadoc tool. It is not sufficient to simply mark-up your classes you MUST GENERATE the Javadoc web site. A 5% marking penalty will be applied if this is not done.

2. A Java NetBeans project which provides a Java application OR a Java web application. This project MUST make use of the classes in your Java Class Library (see 1 above). The application should provide the following functionalities by allowing a user to:

a. Add or remove a room and modify its capacity

b. See and change the current operating mode for every room and building on the university campus.

c. Add, remove, modify or view the lightning bulbs installed in a room

d. View an alphabetical list of campus users.

e. Add or remove people from the list of campus users

f. Add or remove roles from people on the list of campus users

g. "Simulate" a person on the list of campus users "swiping into a room on campus". This should generate the appropriate log entry.

h. View the current log file of users for accessing the rooms.

i. Save / load the campus data model and log file.

j. View the hourly record of room states

In addition to the software you are also required to write a short reflection on the design and implementation of your solution.

There is no minimum word count for this section. You are not expected to write more than 1000 words. The reflection should cover the following:

- How your design meets good design criteria?

- How your design has evolved during implementation?

Java, Programming

  • Category:- Java
  • Reference No.:- M92060203

Have any Question?


Related Questions in Java

Chatbotscreate a small networked chat application that is

Chatbots Create a small, networked chat application that is populated by bots. Introduction On an old server park, filled with applications from the early days of the internet, a few servers still run one of the earliest ...

Assignment taskwrite a java console application that allows

Assignment task Write a java console application that allows the user to read, validate, store, display, sort and search data such as flight departure city (String), flight number (integer), flight distance (integer), fl ...

Assignment game prototypeoverviewfor this assessment task

Assignment: Game Prototype Overview For this assessment task you are expected to construct a prototype level/area as a "proof of concept" for the game that you have designed in Assignment 1. The prototype should function ...

Assignment taskwrite a java console application that allows

Assignment task Write a java console application that allows the user to read, validate, store, display, sort and search data such as flight departure city (String), flight number (integer), flight distance (integer), fl ...

In relation to javaa what is constructor the purpose of

(In relation to Java) A. What is constructor? the purpose of default constructor? B. How do you get a copy of the object but not the reference of the object? C. What are static variables and instance variables? D. Compar ...

Project descriptionwrite a java program to traverse a

Project Description: Write a java program to traverse a directory structure (DirWalker.java) of csv files that contain csv files with customer info. A simple sample in provided in with the sample code but you MUST will r ...

Fundamentals of operating systems and java

Fundamentals of Operating Systems and Java Programming Purpose of the assessment (with ULO Mapping) This assignment assesses the following Unit Learning Outcomes; students should be able to demonstrate their achievements ...

Assessment -java program using array of Assessment -JAVA Program using array of objects

Assessment -JAVA Program using array of objects Objectives This assessment item relates to the course learning outcomes as stated in the Unit Profile. Details For this assignment, you are required to develop a Windowed G ...

Applied software engineering assignment 1 -learning

Applied Software Engineering Assignment 1 - Learning outcomes - 1. Understand the notion of software engineering and why it is important. 2. Analyse the risk factors associated with phases of the software development lif ...

Retail price calculatorwrite a java program that asks the

Retail Price Calculator Write a JAVA program that asks the user to enter an item's wholesale cost and its markup percentage. It should then display the item's retail price. For example: (If an item's wholesale cost is 5. ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As