You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
2.1 KiB

4 years ago
## forum-moderation
### Objectives
You must follow the same [principles](../README.md) as the first subject.
4 years ago
The `forum moderation` will be based on a moderation system. It must present a moderator that, depending on the access level of a user or the forum set-up, approves posted messages before they become publicly visible.
4 years ago
4 years ago
- The filtering can be done depending on the categories of the post being sorted by irrelevant, obscene, illegal or insulting.
4 years ago
4 years ago
For this optional you should take into account all types of users that can exist in a forum and their levels.
4 years ago
You should implement at least 4 types of users :
4 years ago
#### Guests
4 years ago
4 years ago
- These are unregistered-users that can neither post, comment, like or dislike a post. They only have the permission to **see** those posts, comments, likes or dislikes.
4 years ago
#### Users
- These are the users that will be able to create, comment, like or dislike posts.
#### Moderators
4 years ago
- Moderators, as explained above, are users that have a granted access to special functions :
- They should be able to monitor the content in the forum by deleting or reporting post to the admin
4 years ago
- To create a moderator the user should request an admin for that role
4 years ago
#### Administrators
4 years ago
- Users that manage the technical details required for running the forum. This user must be able to :
4 years ago
- Promote or demote a normal user to, or from a moderator user.
4 years ago
- Receive reports from moderators. If the admin receives a report from a moderator, he can respond to that report
- Delete posts and comments
- Manage the categories, by being able to create and delete them.
4 years ago
### Instructions
- You must handle website errors, HTTPS status.
- You must handle all sort of technical errors.
- The code must respect the [**good practices**](../../good-practices/README.md).
- It is recommended to have **test files** for [unit testing](https://go.dev/doc/tutorial/add-a-test).
### Allowed packages
- All [standard go](https://golang.org/pkg/) packages are allowed.
- github.com/mattn/go-sqlite3
- golang.org/x/crypto/bcrypt
- github.com/satori/go.uuid
This project will help you learn about:
- Moderation System
- User access levels