Template for a Spring Boot project including Spring REST, HATEOAS, JPA, etc. Additional details: HELP.md
For ... who want to ... the project ... is an ... that allows ... Unlike other ...
| CREATOR | ADMIN | ANONYMOUS |
|---|---|---|
| Register | Add Admin | View public creator profiles |
| Login | Login | List public portfolios |
| Logout | Logout | List portfolio projects |
| Edit profile | Suspend Creator | List project content |
| Create portfolio | List flagged content | Search public content |
| Edit portfolio | Remove content | Report public content |
| Create project | ||
| Edit project | ||
| Add content | ||
| Edit content | ||
| Create tag | ||
| Tag content | ||
| Set public / private / restricted | ||
| Share restricted with user | ||
| List public and shared portfolios | ||
| List public and shared portfolio projects | ||
| List public and shared project content | ||
| Search public and shared content | ||
| Report content |
classDiagram
class User {
username : String
password : String
email : String
role : Enum
}
class UserDetails {
<<interface>>
}
User ..|> UserDetails
class Profile
User "1" --> "1" Profile : owns
class Portfolio {
id : String
name : String
description : String
visibility : Enum
}
class Project {
id : String
name : String
description : String
flagged : Bool
visibility : Enum
}
class Assets {
id : String
name : String
description : String
}
class Tag {
name : String
}
class Status {
# Provisional
}
class Collaborator {
actions : Edit, View, Remove
}
User "1" --> "*" Portfolio : creates
Portfolio "1" --> "1..*" Project : has
Project "1" --> "1..*" Assets : has
User "1" --> "*" Project : creates
User "1" --> "*" Assets : uploads / edits / deletes
%% Admin Moderation
User "1" --> "*" Project : moderates (Admin/Superadmin)
User "1" --> "*" Assets : moderates (Admin/Superadmin)
%% Tagging
Project "*" --> "*" Tag : tagged with
%% Collaborator Flow
User "1" --> "*" Collaborator : acts as
Collaborator "*" --> "1" Project : assigned to
Project --> Status : has