Skip to content
Permalink
Browse files
split part 1 1-7
  • Loading branch information
aa7401 committed Sep 5, 2020
1 parent 40df0eb commit bdabfece8298fc3f1b193de0799e03b6a3f2418b
Show file tree
Hide file tree
Showing 7 changed files with 327 additions and 101 deletions.
@@ -3,34 +3,69 @@

An auction site where users can upload details of items they no longer want and bid for things they want. All the items for sale need to be stored in a database.

---

## Testing

The system should include the data for at least 5 items for sale for each registered `seller`. These items should include realistic details including photos. 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`:

1. `seller1`
2. `seller2`

---

## Stage 1

The core functionality consists of three screens:

1. The home page should display all the items that other users want to sell. Each should have:
1. The name of the item
2. A thumbnail image
3. A status (for sale, under offer, sold)
4. The name and phone number of the seller
2. There should be a link on this page to the user's selling page which should list all the items the logged-in user has for sale. This should include:
1. The name of the item
2. A thumbnail image
3. The status (see above) with the option for the user to change the status.
4. The option to delete items.
3. There should be a link or button on this page to add new items to the list. This page should ask for:
1. The item name
2. A photo
3. A detailed, multi-line, formatted description.
The core functionality consists of three screens

### Part 1

The home page, which should be visible without logging in, should display all the items that other `sellers` want to sell. If a `seller` is logged in it should **not** display their own items. Each item displayed should include:

1. The name of the item.
2. A thumbnail image.
3. A status, one of the following:
1. for sale.
2. under offer.
3. sold.
4. The name and phone number of the seller.

### Part 2

When a `seller` is logged in there should be a link on the **home page** to their **selling page** which should list all the items they have for sale. This page must not be accessible if the user is not logged in and they must not be able to see the selling page of other users! The selling page should include:

1. The name of the item
2. A thumbnail image
3. The status (see above) with the option for the user to change the status.
4. The option to delete items.

### Part 3

The **selling page** should have a link or button to allow the `seller` to add new items to their list. This page should ask for:

1. The item name
2. A photo
3. A detailed, multi-line, formatted description.

---

## Stage 2

1. When a user views the product details screen they can see multiple photos of the item in the auction.
2. There should be a Contact the Seller link or button. Clicking on this takes the user to a form where they can ask a question about the item for sale.
1. The home page should now only display the _name_ and _photo_ and _status_ for each item.
2. Clicking on either of these should open a **Product Details** screen which should include:
1. The name of the item.
2. Multiple photos of the item (no maximum number).
3. A formatted multi-line description of the item.
3. If a user is logged in and viewing the **product details** they should also be able to see a **Contact the Seller** link or button. Clicking on this takes them to a form where they can ask a question about the item for sale.
1. All questions get displayed on the product details page.
2. The seller should receive an email containing the question and a link to the product details page where all the questions are shown.
3. Any unanswered questions should have a multiline answer box where the seller can leave a detailed answer to the question.
4. All answers should be displayed next to the appropriate question.

---

## Stage 3

The advanced tasks require you to make changes to the functionality by implementing an online auction process.
@@ -3,17 +3,50 @@

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.

---

## Testing

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`:

1. `customer1`
2. `customer2`
3. `technician1`
4. `technician2`

---

## Stage 1

The core functionality consists of three screens:

1. 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 and resolved.
2. There should be a link or button to take them to a screen to report a new issue, this should include:
1. The type of appliance (from a fixed list).
2. The age of the appliance in years (max age 10).
3. The appliance manufacturer (from a fixed list).
4. A multi-line description of the fault.
3. When a customer has added a fault they should be shown a screen listing all the trades people who have knowledge of dealing with that type of appliance together with their address and phone number.
### Part 1

1. When a `customer` logs in they should see a list of all the issues they have reported and their status.
2. The `customer` should be able to change the status of a job between:
1. unassigned
2. in progress
3. resolved.

### Part 2

There should be a link or button to take them to a screen to report a new issue, this should include:

1. The type of appliance (from a fixed list).
2. The age of the appliance in years (max age 10).
3. The appliance manufacturer (from a fixed list).
4. A multi-line description of the fault.

### Part 3

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:

1. Full address.
2. phone number.

---

## Stage 2

@@ -28,6 +61,8 @@ The intermediate tasks require you to make changes to the functionality. You wil
1. To the user when a technical assigns themselves the job, this should include a summary plus link to the job details page
2. 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

---

## Stage 3

1. 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.
@@ -1,39 +1,72 @@

# Book Shop

Build a website for an online company selling books:
Build a website for an online company selling books.

---

## Testing

The system should include the data for at least 10 real books 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`:

1. `customer1`
2. `customer2`
3. `admin` (only required for stage 3 functionality).

---

## Stage 1

The core functionality consists of three screens:

1. A home page that displays the books that are for sale. This should display:
1. The name of the book
2. The name of the author
3. A thumbnail image
4. A price
2. Clicking on either the thumbnail or name should load a product details page that shows:
1. The name of the book
2. A full resolution image
3. The price
4. A detailed, multi-line, formatted description taken from the endleaf.
5. The EAN (barcode) number.
6. A button or link to add the item to a shopping cart
3. This should be accessed by clicking on a button or link on both the home and product details page. This should list all the items added to the cart plus a total and a checkout link or button. There should be a remove link or button next to each item which should remove the item from the cart and recalculate the total.
The core functionality consists of three screens.

### Part 1

A home page that should be visible without logging in. This should display all the books that are for sale. For each book the following should be shown:

1. The name of the book
2. The name of the author
3. A thumbnail image
4. A price

### Part 2

Clicking on either the thumbnail or name should load a product details page that shows:

1. The name of the book
2. A full resolution image
3. The price
4. A detailed, multi-line, formatted description taken from the endleaf.
5. The EAN (barcode) number.

If the `customer` is logged in they should also see a link or button to add the item to their shopping cart.

### Part 3

If the `customer` is logged in they should see a link or button taking them to their **shopping cart**.

This should list all the items added to the cart plus a total and a checkout link or button.

There should be a remove link or button next to each item which should remove the item from the cart and recalculate the total.

---

## Stage 2

The intermediate tasks require you to make changes to the functionality:

1. The product details page should allow the user to refine their choice by choosing from hardback/paperback and new/used.
1. The product details page should allow the `customer` to refine their choice by choosing from hardback/paperback and new/used.
1. The options available will vary with availability.
2. As they switch between these options the price should automatically change.
3. When the customised item is added to the cart this should list the options selected.
2. There should be a Make Payment link or button in the shopping cart which takes the user to a (fake) payment screen. This should include:
2. There should be a Make Payment link or button in the shopping cart which takes the `customer` to a (fake) payment screen. This should include:
1. Overall weight.
2. Shipping cost (based on weight).
3. Overall cost including base, vat and total.
3. Once the order is complete (the fake payment has been approved), the user should receive a nicely formatted email with their order details.
3. Once the order is complete (the fake payment has been approved), the `customer` should receive a nicely formatted email with their order details.

---

## Stage 3

@@ -3,27 +3,62 @@

Build an online e-learning tool to teach someone about git. All the teaching materials should be stored in the database alongside all of the quiz questions. You will need to populate this database with at least 5 pages of valid learning content and five sensible multiple-choice quiz questions.

---

## Testing

The system should include valid content and quiz questions.

You are required to create the following accounts to allow the system to be tested. All accounts should have the password `p455w0rd`:

1. `student1`
2. `student2`
3. `teacher` (only required for stage 2 functionality).

---

## Stage 1

The core functionality consists of three screens:
The core functionality requires you to develop a set of teaching materials to help someone learn how to use the `git` commands. This includes 10 screens of content plus 10 multiple-choice questions.

### Part 1

The home screen should display a link to the _unit_ of teaching content. Clicking this displays the first page of content which consists of a block of formatted text and an optional image. At the bottom of each page there are two buttons:

1. The one on the left takes the `student` back to the previous page of content.
2. The one on the right takes the `student` to the next page of content.

1. The home screen should display a link to the teaching content and a second one to the quiz. if the quiz has been attempted it should also display the user's latest score.
2. The content screen should display a detailed, multi-line, formatted chunk of learning content including a block of formatted text and an illustration.
1. There should be a next button that takes the user to the next page of content using the same page template.
2. Additionally there should be a home button to take the user back to the home page.
3. The quiz screen should display the first multiple-choice qestion. There should be a button to take the user to the next question which should use the same page template. At the end of the quiz there should be a button to take the user back to the home page where the latest quiz score should be displayed.
The right-hand button on the last page of content takes the user back to the home screen.

### Part 2

Instead of taking the `student` back to the home page, the right-hand button on the lat page of teaching content takes the student to the first page of the multiple-choice quiz.

As soon as the `student` chooses an answer they should see a link or button at the bottom of the page to take them to the next question. The button on the last question page should take the `student` to a **grade** screen that displays their score as a percentage.

This **grade** screen should have a link or button to take the user back to the **home screen**.

### Part 3

The `student` must achieve a grade of at least **40%** to pass the unit. If they achieve less than this the **results** screen must explain what happened and the link or button should take the `student` back to the start of the learning content where they can have another attempt.

The home screen should display the student's highest score for the unit as well as the number of attempts. The `student` can view the learning content and attempt the quiz as many times as they want but their official grade is the first score of 40%+.

---

## Stage 2

The intermediate tasks require you to make changes to the functionality by allowing the admin user to edit the resources and add new ones.

1. There should be one account flagged up as admin. They log in using the same login page but will see additional functionality:
1. There should be one account flagged up as `teacher`. They log in using the same login page but will see additional functionality:
1. They should see a link or button on each learning content page that takes them to a screen to edit the detailed, multi-line, formatted chunk of learning content and update the image if needed
2. There should also be a link or button to insert a new page of content immediately after the current one
3. They should be able to add new multi-choice questions to the quiz and edit the existing ones
2. When a user has completed a quiz multiple times, the home page should display both the highest and the average score. Any person with a high score of less than 40% should be clearly flagged as having failed.
3. At the end of each quiz attempt the user should receive an email with their high and average scores and clearly indicating whether they have passed or failed. There should be a link to the home screen.

---

## Stage 3

1. Rather then only allowing multiple choice questions, the admin should be able to add:
@@ -3,24 +3,50 @@

A website to help users share large files. The files must not be stored in the public directory on the server. All details about the file upload must be stored in a database.

---

## Testing

The system should include the data for at least 10 real books 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`:

1. `user1`
2. `user2`

---

## Stage 1

The core functionality consists of three screens:

1. The home screen is a list of the files the logged-in user is sharing. This should include:
1. The name of the upload (not the filename)
2. The type of file (based on the mimetype calculated by the server)
2. Clicking on an item in this page should take you to a details page whch displays:
1. The name of the upload
2. A detailed, formatted, multi-line description of the uploaded file
3. The filetype (automatically generated by the system)
4. The file size in MB (automatically generated by the system)
5. A link to download the file (the link should reference the file by a hash so the filename should not appear in the URL)
6. A link to delete the file
3. There should also be a button on the home page to allow the user to upload files to the server. They should provide the following information:
1. The file (obviously)
2. The name they want to give to the upload
3. The detailed, formatted, multi-line description
The core functionality consists of three screens.

### Part 1

The home screen should only be viewable if the `user` is logged in. It should show the files the logged-in `user` is sharing. This should include:

1. The name of the upload (not the filename)
2. The type of file (based on the mimetype calculated by the server)

### Part 2

There should be a link or button on the home page which takes the logged-in `user` to an **upload file** page where they can upload individual files to the server. They should provide only the following information:

1. The file (the user should be able to browse their computer to choose this).
2. The name they want to give to the upload.
3. The detailed, formatted, multi-line description.

### Part 3

If the logged-in `user` clicks on an item on the **home screen** they should be taken to a **details page** whch displays:

1. The name of the upload
2. A detailed, formatted, multi-line description of the uploaded file
3. The filetype (automatically generated by the system)
4. The file size in MB (automatically generated by the system)
5. A link to download the file (the link should reference the file by a hash so the filename should not appear in the URL).
6. A link or button to delete the file.

---

## Stage 2

@@ -36,6 +62,8 @@ The intermediate tasks require you to make changes to the functionality:
2. If the user tries to upload a file that will cause this storage limit to be exceeded the file upload will be rejected with a message explaining why
3. The list of uploaded files should be displayed with the most recent at the top and each should display the filetype and the file size

---

## Stage 3

1. Only registered users can upload or download files.

0 comments on commit bdabfec

Please sign in to comment.