Skip to content
Permalink
f264d8c92b
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
103 lines (65 sloc) 5.13 KB
# Forum
Build a message board to allow users to post information and reply to other people's posts. All the forums and posts should be stored in a database.
---
## Testing
The system should include the data for at least 5 valid forum topics and each forum must contain at least 3 posts containing sensible comments posted from from valid user accounts (see below).
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`
3. `user3`
---
## Feature 1
The homepage can be viewed without needing to log in however if a user is logged in they can see a **New forum** button or link. This takes them to a page where they can add a new forum topic. This should include:
1. The name of the forum.
2. A short, multiline summary of the forum of 100 characters or less.
3. A detailed, formatted, multiline description of the purpose of the forum which supports the use of _markdown_ formatting.
4. An avatar image uploaded from the `user`'s computer.
In addition the following data should be stored in the database without this being entered by the user:
1. The username of the person adding the forum.
2. The date and time when the forum was created.
> 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.
## Feature 2
The person viewing the homepage can see a list of the forums that have been added to the site. This should display the following information on each:
1. The name of the forum.
2. A thumbnail of the icon that represents the forum.
3. The short, multiline summary.
4. The date (but not the time) of the last post in the forum or, if there are no posts, the date but not the time when the forum was first added.
## Feature 3
There should be a **Show forum** link or button next to each forum listed on the homepage. When clicked this takes the user to the **Forum** page which displays the following information for the selected forum:
1. The name of the forum.
2. The short, multiline summary of the forum of 100 characters or less.
3. The detailed, formatted, multiline description of the purpose of the forum with any _markdown_ formatting converted into HTML.
4. The avatar image uploaded from the `user`'s computer.
5. The username of the person who initially created it.
6. The date (but not the time) when the forum was created.
## Feature 4
Now we will implement the functionality for users to post message to the forums.
1. The **Forum** page should display a multiline input area underneath the forum information and any existing posts. This should support the use of _markdown_ formatting. There should be an **Add comment** link or button under the box.
2. If a user enters a post (comment) (including markdown) and clicks the button, the post should be stored in the database. The following extra information should also be stored without the user having to enter it:
1. The id of the forum the message was posted to.
2. The username of the person posting the message.
3. The date and time the message was posted.
3. The posts made to the forum should be displayed, correctly formatted, underneath the forum details. Each post should include:
1. The formatted message.
2. The username of the person posting.
3. The date the message was posted (but not the time).
## Feature 5
1. `users` can add forum categories and add forums into these. Any user can create a forum in any category (even one added by a different user).
2. The forum category should indicate how many unread forum posts there are in each forum category.
3. Within the forum category each forum should also indicate how many unread posts it contains.
4. When a `user` views a forum this unread post count for that specific forum should be reset to zero.
----
## Extras
In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.
### Sensors
In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:
1. When selecting an avatar image, the user should be given the option of using the device camera (if available).
2. Each forum post should be flagged with the location of the person posting (country and region only).
3. In each forum there should be a map showing the locations where users have posted. Clicking a pin should show their name, avatar and the first part of the message. Selecting this should display the entire message.
### Media
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:
1. Providing the user with the choice of uploading photos, video clips or audio clips.
2. Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.
### Data
There are lots of online RESTful APIs you can make use of when developing this system. You should consider:
1. [LocationIQ](https://locationiq.com)