Project Overview
You have been retained by Widget Sales Company (for more information, see Widget Sales Company Project Overview [DOCX]), an international company with offices in 25 countries, to develop a website that will allow its employees to enter travel expenses incurred on a business trip and store that data for reporting purposes. It is estimated that, initially, only 100 employees in the United States will use the system, but within two years, all 2,500 employees worldwide will be using it. The site should have functions that ask for input and calculate the following:
The total number of days spent on the trip.
The time of departure on the first day of the trip and the time of arrival back home on the last day of the trip.
The amount of any round-trip airfare.
The amount of any car rentals.
Miles driven, if a private vehicle was used. Vehicle allowance is $0.58 per mile.
Parking fees. (The company allows up to $12 per day. Anything in excess of this must be paid by the employee.)
Taxi fees. (The company allows up to $40 per day for each day a taxi was used. Anything in excess of this must be paid by the employee.)
Conference or seminar registration fees.
Hotel expenses. (The company allows up to $90 per night for lodging. Anything in excess of this amount must be paid by the employee.)
The cost of each meal eaten. On the first day of the trip, breakfast is allowed as an expense if the time of departure is before 7 a.m. Lunch is allowed if the time of departure is before noon. Dinner is allowed if the time of departure is before 6 p.m. On the last day of the trip, breakfast is allowed if the time of arrival is after 8 a.m. Lunch is allowed if the time of arrival is after 1 p.m. Dinner is allowed if the time of arrival is after 7 p.m. The program should ask only for the costs of allowable meals. (The company allows up to $18 for breakfast, $12 for lunch, and $20 for dinner. Anything in excess of this must be paid by the employee.)
The program should perform the necessary calculations to determine the total amount spent by the business traveler in each category (mileage charges, parking, hotel, meals, etc.) as well as the maximum amount allowed in each category. It should then create a nicely formatted expense report that includes the amount spent and the amount allowed in each category, as well as the total amount spent and the total amount allowed for the entire trip. This report should be written to a file.
Phase 2 Instructions
In this phase, you will provide the detail that each of the roles must perform in completing the website.
Project Manager
Provide a timeline for the various activities that need to be completed. You must include a start date and an end date. Each individual activity should have its own start and end date. Indicate which activities can be done in parallel and which activities must end before another activity can start. The following is an example of how to start this. Try to be realistic in the assignment of dates:
Project Duration
Start Date-1/1/2019
End Date – 12/31/2020
Dependencies –
Initial Meeting
Start Date – 1/2/2019
End Date – 1/31/2019
Dependencies – None
Web Design
Start Date – 4/1/2019
End Date – 10/31/2019
Dependencies – Database tables defined.
Database Analyst
Provide an overview of the data that will need to be captured. This can be in a table format, listing the variable name, the data type, and any restrictions on the data. The following is an example of the expectations for this part:
Employee
Variable – Emp Name
Data Type – String
Restriction – None
Employee
Variable – Expenses allowed
Data Type – Boolean
Restrictions – Only Yes or No values
Expenses
Variable – Hotel Arrive Date
Data Type – Date
Restrictions -Valid date
Expenses
Variable – Hotel Depart Date
Data Type – Date
Restrictions – Valid date, greater than arrival date
Developer
Provide the detail for the website. At a minimum, this should include the number of pages on the site and what data should be on each page. You must also include an overview of the Python functions needed to complete the functionality of the site. While no code will be required, you will need to provide the function signature, the parameters being passed in (if any), and a brief description of what the function will accomplish. Below is an example of this part:
def parking(days):
Calculates the maximum allowance for parking fees using MAX_DAILY_FEE * days
Gets the parking fees from the user.
Adds the parking fees to total expenses (a global variable used for keeping track of the total amount spent by the traveler).
Determines if the parking fees exceed the allowed amount.
Returns the allowable parking fees.