You have been asked to develop a website for a company that specialises in the repair of domestic white goods such as washing machines and cookers.
The system should include the data for at least 10 real issues and include the correct details for each. The customer details should also be valid.
You are required to create the following accounts to allow the system to be tested. All accounts should have the password p455w0rd
:
customer1
customer2
technician1
technician2
The core functionality consists of three screens:
- When a
customer
logs in they should see a list of all the issues they have reported and their status. - The
customer
should be able to change the status of a job between:- unassigned
- in progress
- resolved.
There should be a link or button to take them to a screen to report a new issue, this should include:
- The type of appliance (from a fixed list).
- The age of the appliance in years (max age 10).
- The appliance manufacturer (from a fixed list).
- A multi-line description of the fault.
When a customer
has added a fault they should be shown a screen listing all the technicians
who have knowledge of dealing with that type of appliance. It should display their:
- Full address.
- phone number.
The intermediate tasks require you to make changes to the functionality. You will be implementing a feature to allow the technicians to log in and manage their own workload.
- There should be some accounts flagged as technician accounts. They will log in using the same screen but will see a different set of screens:
- The home screen will display a list of unassigned jobs
- Each job links to a details screen which has a link or button to allow the technician to pick that job
- They can have one job per morning or afternoon so they will need to assign any new job to a free slot
- Once this is done, when the customer logs in they will see that the status is changed to assigned and the details screen will include the date of visit, whether am or pm and the name of the technician
- The system should send a nicely-formatted html email:
- To the user when a technical assigns themselves the job, this should include a summary plus link to the job details page
- To the technician at a specified time each day with a list of the jobs they have for the following day and a list of any unallocated work, this should include links to the appropriate web pages
- A technician should be able to see a list of all the new jobs added by users over the last 3 days and multiple technicans should be able to submit blind quotes for the work including a comment.
- At the end of the 3 days the user should be able to see a list of the quotes provided and choose the one they want to go with.
- The chosen technician should then be able to schedule the work at a date and time convenient to the customer.
- Once the jobs has been marked as completed by the technican the customer should receive an email that takes them to the payment page.
In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.
In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:
- When a user adds a job to the system it should capture their location.
- When a user adds one or more photos to their job they should be given the option to take this with the built-in camera if available.
- When a technician views a list of jobs they should be able see the address of each and roughly how far away the job is from their current location.
- The list of qualified technicans should include their location and be placed in order with the nearest tradesman at the top of the list.
- The list of qualified technicans should be available as either a list or a map. Clicking on a map pin should show more information and take the user to the technican details page.
In the requirements listed above you need to provide the user with the ability to upload photos. For the extra media marks you will need to expand this by:
- Providing the user with the choice of uploading photos, video clips or audio clips.
- Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.
There are lots of online RESTful APIs you can make use of when developing this system. You should consider: