A.2.1 Main page (ID: view_main)
• The entry should take place via the main page with the ID view_main (see Figure 1). All open and closed projects should be displayed separately on the main page. For each project listed, the icon, title, user name of the creator and the current donation amount (current) should be displayed. The icon is the icon of the corresponding category. In addition, the main page contains two buttons: “My profile” and “Create project”.
• If you click on the “My Profile” button, you will be redirected to your own profile (page view_profile A.2.6).
• If you click on the “Create project” button, you will be redirected to the new_project (A.2.2) page.
• If you click on the title of a project, the corresponding detail page (view_project A.2.3) should be called up
• If you click on the user name (creator of a project), the corresponding profile page (view_profile A.2.6) should be called up.
A.2.2 Create project (ID: new_project)
• A new project should be created on the new_project page (see Figure 2). – The title and funding limit should each be specified in a text field.
– We use radio buttons for our four categories “Health & Wellness”, “Art & Creative Works”, “Education” and “Tech & Innovation”.
– For the previous project, a project can be selected from the list of projects already created by (and only) the current user. The selection is made via radio buttons. There is also the option “No predecessor” (default selection) if the user does not want to link the project to be created.
Example: If the user has already created the “Ubuntu Touch” and “Ubuntu Touch Pro” projects, these two projects are made available for selecting the previous project of the “Ubuntu Touch Light” project to be created
• If the user clicks the “Create” button, the project is entered in the database. A sequential number (ID) can be used for the identifier. If errors occur when creating a project, a corresponding error message should be displayed and the project should not be created. The following errors must be caught:
– If the length of the entered title exceeds 30 or is empty.
– If no numerical value or a value less than 100 was entered for the funding limit.
– If no category has been selected.
– If no option was selected for predecessors. – General errors with the database
A.2.3 Details page of a project (ID: view_project)
Figure 3 illustrates the detail page of a project. This comprises 4 sections:
information
• Based on the identification of a project, the following information should be read from the database and then displayed: Icon of the category, title, user name of the project creator, description (if available), funding limit, the current donation amount and status.
• If the user clicks on the user name of the creator, the profile page of the creator (A.2.6) should be called up.
• A link to the predecessor project should also be given (A.2.3) if a predecessor relationship should exist. If this is not the case, then a simple text with the content “No predecessor exists” should appear.
Action bar
The user can perform various actions on the detail page of a project. The actions “Donate”, “Edit” and “Delete” in the form of buttons / links are supported.
• If the user clicks on the button / link “Donate”, you will be redirected to the page new_project_fund (A.2.5) with the corresponding parameter (identifier). • If the user clicks on the button / link “Edit project”, you will be redirected to the page edit_project (A.2.4) with the corresponding parameter (identifier).
• If the user clicks on the “Delete project” button, the following actions should be carried out, but only if the current user is the creator. Otherwise an error message is displayed.
- The comments belonging to the project should be deleted.
– The donations belonging to the project should be deleted.
– The users who supported this project will get their donation back. This means that the donations are credited to the accounts of the respective users.
– The project should be deleted from the database.
– The current user is then forwarded to the main page (A.2.1). If an error occurs during the process, the entire process should be canceled and a corresponding error message should be displayed.
List of donors
• In the middle area of the website the donors belonging to the project should be loaded from the database and displayed. The respective donation amount should be displayed next to the names of the donors.
• The list of donors should be sorted in descending order according to the donation amount (largest first).
• If a user has donated anonymously, the name “Anonymous” should be shown in this list and not their actual user name.
Comments
• In the lower area of the website, the comments related to the project should be loaded from the database and displayed. In addition to the comment, the author’s username (or the name “Anonymous” if the comment is not public) should be displayed. • The comments should be sorted in descending order (newer first) based on the creation date.
• If you click on the “Comment” button / link, you will be redirected to the new_comment (A.2.7) page.
A.2.4 Edit project (ID: edit_project)
The page for editing a project has the same structure as the page for creating a project (see A.2.2). First, the data for the selected project are loaded from the database and then displayed (see Figure 4). The following conditions must be observed as soon as the “Update” button is clicked:
• A project may only be edited by the creator and only if the status is “open”.
• The title must have a length between 1 and 30 characters.
• The funding limit must be a number. In addition, you can only increase the limit: The new limit must be greater (or equal) than the previous funding limit.
• A category must be selected.
• An option for the predecessor project (or the option “No predecessor”) must be selected.
• Generally errors with the database.
If you click on “Update” and the requirements are met, the database is to be updated and the user is to be forwarded to the project details page (A.2.3). Otherwise an error message is issued; the details will not be updated.
A.2.5 Project donation (ID: new_project_fund)
On this page (see Figure 5) the user can support a selected project financially with a donation. First the title of the project is displayed. The user can enter a numerical amount via a text field to support the project. In addition, he can use a checkbox to indicate whether the donation should be anonymized. The user confirms the entry by clicking the “Donate” button. The following must be observed:
• First, it is checked whether the status of the project is also open. Only open projects can be supported.
• The value entered for the donation must be a numerical value and greater than 0.
• It should be checked whether the donation amount does not exceed the user’s credit.
• You can only make a donation to a project if you have not previously supported it. Multiple donations for a project are not possible.
If one of the conditions mentioned is not met, a corresponding error message should appear and the process should be terminated.
If all requirements are met, the following actions should be carried out:
• The donor is entered in the database with the corresponding donation amount.
• If the user donates anonymously, this should also be noted in the database.
• The balance in the user’s account is reduced by the corresponding amount of donation.
• In the end, it should be ensured that the status is updated from “open” to “closed”, provided that the funding limit was reached through the current donation.
• The user should then be forwarded to the project details page (A.2.3).
A.2.6 User profile (ID: view_profile)
The user profile is divided into three sections (see Figure 6): Header area In the header area, the information of the corresponding user should be read from the database and displayed. The email address should be used to determine the correct data. The following information is to be displayed: E-mail address, user name, and the number of projects created and supported (regardless of whether anonymous or public)
Created projects
This section should show all projects created by the selected user. For each project, the icon of the category, title, the current donation amount and the status (“open” or “closed”) should be displayed.
If you click on the title of a project, you will be forwarded to the corresponding detail page (A.2.3)
.
Supported projects
This section shows all projects that have been publicly supported by the selected user. Anonymous donations should therefore not be considered. The icon of the category, title, funding limit, status and, last but not least, the amount donated by the user are displayed.
If you click on the title of a project, you will be forwarded to the corresponding detail page (A.2.3).
A.2.7 Add comments (ID: new_comment)
On this page (see Figure 7) the user can create a comment on the selected project. The title of the project is displayed as information. The comment is entered via a text area. A checkbox can also be used to indicate whether the comment is saved anonymously.
As soon as the user clicks on the “Add comment” button, the corresponding comment should be added to the database. Please note the following:
• The comment cannot be empty. In this case, an error message should be issued and the process should be terminated.
• If a comment is successfully created, you should be forwarded to the project details page (A.2.3).