IT360 Spring 2011 Project Department Financial Tracker

advertisement
IT360 Spring 2011 Project
Department Financial Tracker
Entire Project Due: May 2, 2011
Partial Deadlines: see Deliverables
This is a Programming Project. For this project, midshipmen will work in groups of three or four. The
individual grade for the project will be based on the team grade and the individual performance on completing
the project. You may not discuss the project with anyone outside of your group. You may seek clarifications
pertaining to system requirements from Dr. Crainiceanu.
Submission requirements (each team will have one submission):
 Electronic submission: The team leader should upload the files created for each part of the
project to Final Project on Blackboard
 Hard copy: Hard copy of the project report which includes the answers to all intermediate parts
of the project.
Project Description
In this project you will create a department financial tracker for material and travel
budgeting. This application could be used by the Computer Science Department at USNA. The
point of contact for your final client, the CS Department, is Capt. Sean Forester, USMC, the
financial officer of the department. Dr. Crainiceanu can also answer questions regarding the
requirements for the project.
Each department at USNA, including the Computer Science Department, has a budget for the
expenses incurred by the department. These expenses include travel (faculty travel regularly to
conferences, and expenses are paid by the department) and materials (books, computers, printers,
supplies, etc.). The financial officer is in change of keeping track of all expenses, and making sure
the department is not overspending.
In this project you will create an online system to replace the current paper and Excel spreadsheets,
and make finance handling easier for the department financial officer, faculty, and everyone else
involved in handling the finances of the department. The system should have a web interface,
created with XHTML, CSS, JavaScript, and PHP, and a backend MySQL database.
Project Steps:
Part 0: Project Leader (2 points)
For this part of the project your team is to:
1. Choose a project leader. The project leader will be the instructor’s point of contact with your
team. The project leader is also responsible for ensuring that work is distributed in a fair
manner to each team member and that the work is getting done.
2. Choose a team name.
TURN IN: Submit on Blackboard, Project-Part 0 a document containing the team members, project
leader name, and the team name. This section of the project is due Friday, February 25, 2011,
before class.
Part 1: Project Requirements and Entity-Relationship Model (15 points)
Create an Entity-Relationship model that incorporates the specifications described below and some
extra requirements you have to specify. You must give the entities, their attributes and identifiers,
the relationships between entities with an appropriate verb phrase, and the appropriate minimum and
maximum cardinalities for all relationships. Use the crow’s foot notation in the diagram. In your
design, make and state reasonable assumptions about the data, if not clearly specified in the
assignment. If there is some information you cannot capture in the ER diagram, specify so.
You can use ERWin to create the diagram or use pen-and-paper.
Partial Design Specifications
Your database will have a web interface and members of the Computer Science department will be
able to login into the website. Only members with valid login/password information can access the
website. There are 4 classes of users, each with different permissions level: requestor, financial
officer, department chair and secretary. For reporting purposes, the status (civilian or military) and
rank is recorded for each member.
As presented by Capt Forester during class, the members of Computer Science department can
submit a Purchase Request (PR) in order to purchase materials or to obtain funds for travel.
All requests have the following minimum information: requestor (person making the request),
date, merchant or conference name, amount needed, and description of the item to be purchased (for
material requests) or purpose for the trip (for travel). The financial officer will then assign a fiscal
quarter (the budget is divided by fiscal quarters, and in each quarter there is a certain amount of
money available), category of the purchase “CAT” (see the Excel spreadsheet for possible values),
and job order number description - “JON Description” (see the Excel spreadsheet for possible
values).
For travel, more detailed information is needed. The form used for travel requests is attached as
Enclosure (1) to this document.
Once the purchase request is submitted, the financial officer assigns the financial quarter, category
and JON. The financial officer recommends approval or denial the request, based on availability of
funds and importance of request.
The department chair has the final authority on approving or denying a request, based on financial
officer’s recommendation.
For approved requests, the department secretary assigns an official request number (see the Excel
spreadsheet) and does the actual purchase. The amount needed for the purchase might be different
than the estimated amount, so the department secretary might update the amount for a request.
The attached Excel spreadsheet is what Capt. Forester is currently using to manage the expenses. He
would like you to create a department financial tracker for material and travel budgeting. The DB
system would be based on the attached documents (Excel spreadsheet, Travel Request, reports) with
four user groups:
User group
Actions
-Requestor
-department secretary
-finance officer
login/logout, create/modify/view own requests
login/logout, create/modify/view any request
login/logout, create/modify/view any request, view reports,
create/update budget
login/logout, create/modify/view any request, view reports,
create/delete/modify/view users
-department chair
TURN IN (hard-copy required, Blackboard submission optional): The ER diagram that captures the
requirements in Part 1. This section of the project is due Friday March 11, 2011, before class.
Part 2: Relational model (10 points)
Transform the ER model developed in Part 1 into a relational model. Follow the steps described in
“ER to Relational” lecture, or Chapter 6 of the Kroenke textbook.
Write the SQL statements (use MySQL data types, not SQL Server data types, as the backend for
your application will be MySQL) to create the tables, with their columns, data types and whether
null values are allowed for the column or not, default values (if any), primary keys for each table,
alternate keys and foreign keys if appropriate.
Note that if a table R has a foreign key attribute referencing another table S, you must first create S
and then create R. If a table R has a foreign key attribute referencing a table S, and S has a foreign
key attribute referencing R, you have to create both R and S, without the foreign key constraints, and
then use ALTER TABLE statements to add the foreign key constraints to each table.
If there is some semantics in the ER diagram that you cannot capture in the relational tables,
explicitly state so.
TURN IN (both on Blackboard and hard-copy): A file named teamX_RelationalModel.sql, where X
is your team number, containing all your SQL statements for this section. This section of the project,
and the next two, are due Friday, March 25, 2011, before class.
Part 3: Normalization (10 points)
For each table identified in part 2:
1) Ensure the table is in 1st Normal Form. If the table is not in 1St Normal Form, re-design the table,
so the resulting tables are in 1st Normal Form.
2) Determine all the functional dependencies in each of the tables. If a table is not in Boyce-Codd
Normal Form, decompose the table such that the result tables are in Boyce-Codd Normal Form.
TURN IN (both on Blackboard and hard-copy): A file named teamX_Normalization.doc, where X is
your team number, containing all the functional dependencies for each table in part 2 (remember that
each table has at least one functional dependency), and, for the tables not in 1NF or not in BCNF, the
decomposition in BCNF tables. This section of the project is due Friday, March 25, 2011, before
class.
Part 4: Create tables in MySQL (8 points)
Write the SQL statements to create all the tables you designed in Part 4 (you should already have
most/all of the statements for Part 3).
Create a file that contains all the SQL statements to create the tables in the correct order. Executing
this file in MySQL should create all the tables for your database.
TURN IN (both on Blackboard and hard-copy): A file named teamX_CreateTables.sql, where X is
your team number, containing all the SQL statements to create the entire database. This section of
the project is due Friday, March 25, 2011, before class.
Part 5: Design and Implement the Web Interface to the Database (45 points)
You need to implement a web interface to allow the following actions:
User group
Actions
-Requestor
-department secretary
-finance officer
login/logout, create/modify/view own requests
login/logout, create/modify/view any request
login/logout, create/modify/view any request, view reports,
create/update budget
-department chair
login/logout, create/modify/view any request, view reports,
create/delete/modify/view users
Reports: 1) For each financial quarter, show the amount of money spent for material requests and
the amount of money spent for travel
2) For each financial quarter, show the number of travel requests (category code 1) for civilians, and
the number of travel request for military.
3) For each financial quarter, show the amount of money spent for travel for civilians, and the
amount of money spent for travel for military.
Part 6: Project Report and User Manual (10 points)
Report: Write a project report, explaining your work in this project. Include any extra credit, and any
requirements that you did not meet. For testing purposes, include the user name and password for
a regular user (requestor), financial officer, chair, and secretary. The project report should be
clear and well organized: have an introduction, main content, and conclusions. Include the up-to-date
ER model and the SQL statements to create your tables in the report.
Write a user manual on explain how to use the application you wrote. Include screen shots and stepby-step instructions on how to execute different tasks.
EXTRA CREDIT:
1) (max 10 points) Create a poster that showcases the project and the course, and can be used as
advertisement for the IT major. If multiple posters are created, we will vote on the best poster, and
the winning team will receive an extra-extra credit. More information about how you can create a
poster is available here: http://www.usna.edu/Users/cs/needham/ProjectPosters/ProjectPosters.htm
2) (max 7 points) For at least one of the financial reports generated for this project, create a plot, barchart, or another graphical representation of the report. Popular options available for creating graphs
with PHP are JpGraph or PHPLOT. Contact the instructor if you need more information about
available options for creating graphs using PHP.
3) Add some additional functionality to your project.
DELIVERABLES:
Part 0 (teams): February 25, 2011
Part 1 (ER Model): March 11, 2011 before class
Part 2, 3, 4 (Relational Model, Normalization, MySQL tables): March 25, 2011 before class
Login/logout: April 11, before lab
Request insert/view: April 18, before lab
Project due: May 2, 2011 during lab
Presentation: Your team should be prepared to present your system in class. You will have 710 minutes to do so.
Feedback and Peer Evaluation: You will fill out an on-line survey to provide feedback on the
project and evaluate your team members. Peer evaluations will be kept confidential.
Electronic submission: the team leader needs to upload all files related to the project to
Project assignment on Blackboard. Your submission should include: ER model, SQL script to create
the database tables, the project report, the user manual, and the code for your project.
Paper submission: Hard-copy of the project report should be submitted before lab on the due
date.
Download