Build a website where users (students) can share their CV with employers. All CV data should be stored in a database.
You are required to create the following accounts to allow the system to be tested. All accounts should have the password p455w0rd
:
student1
student2
student3
student4
All the student should have a valid CV on the system.
The homepage can be viewed without logging in. Logged-in users should see a My CV link or button that allows them to add or update their own CV which should include the following data:
- Their full name
- A profile picture
- A multiline summary paragraph for displaying on the home page, this should support the use of markdown formatting and be no more that 100 characters long.
- A detailed, multi-line description of their qualifications, this should support the use of markdown formatting.
- A detailed, multi-line description of their skills, this should support the use of markdown formatting.
In addition to the data from these fields, the database should also store the following without prompting the user to enter the information:
- The username of the logged-in user.
- The date and time of the last edit.
If the user clicks on the My CV link in future the data currently stored in the database should be inserted into each form field.
To demonstrate this feature and to prove that the form works correctly you will need to show that the data is being persisted correctly, either by running a database query or an API call depending on the platform and technology you are using.
The home screen should display summaries of all the CVs in the system. For each it should display:
- The person's name.
- A thumbnail photo.
- The short summary.
- The date the CV was last edited (but not the time).
Clicking on one of the summaries should load the full CV including:
- The person's name
- The profile picture
- The multiline summary paragraph with any markdown formatting replaced with html.
- The description of their qualifications with any markdown formatting replaced with html.
- The description of their skills with any markdown formatting replaced with html..
- The date the CV was last edited (but not the time).
This feature requires you to make changes to the functionality:
- The user profile should now include a full name, phone number and email address.
- If a logged-in user views someone else's CV they should see a button Contact person.
- This takes them to a Send Message screen where they type in a message which will be sent to the CV owner.
- The Homepage should include a section which lists all the messages they have been sent plus the name, phone number and email address of the sender.
You will now implements features to help potential employers locate suitable candidates:
- Each CV should include their location address and this should display on a map when the CV is viewed.
- There should be the option for the user to include the highest qualification level by selecting from a dropdown list.
- There should be an advanced search screen where the person searching can enter the following:
- The location of the job.
- The minimum qualification level required.
- Any skills required.
- The results from the advanced search should be listed in order of relevance with the most relevent at the top. There should be the option to see the details screen showing the full CV.
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 photo is requested, the user should have access to the device camera (if available).
- When a user edits their profile page and CV there should be a set home button that captures the current geo-location and stores in in their profile.
- When browsing CVs they should appear in the list with the nearest at the top.
- The user should be able to see matching CVs on a map:
- Clicking a pin show the student name and photo in a callout.
- Clicking this bubble should take the person to the CV 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: