Skip to content

Latest commit

 

History

History
112 lines (89 loc) · 4.17 KB

File metadata and controls

112 lines (89 loc) · 4.17 KB

MyPortfolios GEI API

Template for a Spring Boot project including Spring REST, HATEOAS, JPA, etc. Additional details: HELP.md

Open Issues CI/CD Deployment status

Vision

For ... who want to ... the project ... is an ... that allows ... Unlike other ...

Features per Stakeholder

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

Entities Model

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
Loading