Skip to content

jpmamededs/BRASFI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

134 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

40f0d2_b7cb6ea18d494fbd9637bc43cdc0445a~mv2


Processo:

🔌 Funcionalidades Implementadas:
🖇️Links Úteis:
📦 Entregas:

Front-end:

HTML CSS TypeScript Angular

Back-end:

Java Spring Boot PostgreSQL


🧜 UML com o Mermaid:

classDiagram

class Postagem {
  <<Entity>>
  - id: Long
  - autor: String
  - tag: TipoPostagem
  - titulo: String
  - paragrafo: String
  - imagemOuVideo: String
  - link: String
  - fixado: boolean
  + LIMITE_PALAVRAS: int = 300
}

class Comentario {
  <<Entity>>
  - id: Long
  - titulo: String
  - conteudo: String
  - dataCriacao: LocalDateTime
  - autor: String
}

class PostagemService {
  <<Service>>
  + findAll(): List<Postagem>
  + listarPostagensPorTag(tag: TipoPostagem): List<Postagem>
  + listarPostagensFixadas(): List<Postagem>
  + buscarPorId(id: Long): Postagem
  + criarPostagem(postagem: Postagem): Postagem
  + editarPostagem(id: Long, novaPostagem: Postagem): void
  + deletarPostagem(id: Long): void
  - validarLimitePalavras(texto: String): void
  + fixarPostagem(id: Long): void
  + desfixarPostagem(id: Long): void
}

class PostagemRepository {
  <<Repository>>
  + findAllByTag(tag: TipoPostagem): List<Postagem>
  + findAllByFixadoTrue(): List<Postagem>
  + save(postagem: Postagem): Postagem
  + findById(id: Long): Optional<Postagem>
  + atualizarPostagem(id: Long, novaPostagem: Postagem): void
  + deleteById(id: Long): void
  + atualizarFixado(id: Long, fixado: boolean): void
}

class ComentarioRepository {
  <<Repository>>
  + findByPostagemIdOrderByDataCriacaoDesc(postagemId: Long): List<Comentario>
  + findById(id: Long): Optional<Comentario>
  + save(comentario: Comentario): Comentario
  + deleteById(id: Long): void
}

class ComentarioService {
  <<Service>>
  + listarPorPostagem(postagemId: Long): List<Comentario>
  + criarComentario(postagemId: Long, comentario: Comentario, autor: User): Comentario
  + editarComentario(id: Long, novoComentario: Comentario, user: User): Comentario
  + deletarComentario(id: Long, user: User): void
}

class PostagemController {
  <<RestController>>
  + listarTodasPostagens(): ResponseEntity<List<Postagem>>
  + listarPostagensPorTag(tag: TipoPostagem): ResponseEntity<List<Postagem>>
  + listarPostagensFixadas(): ResponseEntity<List<Postagem>>
  + criarPostagem(postagem: Postagem): ResponseEntity<Postagem>
  + buscarPorId(id: Long): ResponseEntity<Postagem>
  + editarPostagem(id: Long, novaPostagem: Postagem): ResponseEntity<Void>
  + deletarPostagem(id: Long): ResponseEntity<Void>
  + fixarPostagem(id: Long): ResponseEntity<Postagem>
  + desfixarPostagem(id: Long): ResponseEntity<Postagem>
}

class ComentarioController {
  <<RestController>>
  + listarComentarios(postagemId: Long): ResponseEntity<List<Comentario>>
  + criarComentario(postagemId: Long, comentario: Comentario, user: User): ResponseEntity<Comentario>
  + editarComentario(id: Long, novoComentario: Comentario, user: User): ResponseEntity<Comentario>
  + deletarComentario(id: Long, user: MyUser): ResponseEntity<Void>
}

class User {
  <<Entity>>
  - id: Long
  - email: String
  - password: String
  - userName: String
  - midleName: String
  - biografia: String
  - localizacao: String
  - idade: int
  - photo: String
  - LinkInstagram: String
  - LinkLinkedin: String
  - LinkLattes: String
  - LinkWhatsapp: String
  + LIMITE_BIO: int = 300
}

class UserRepository {
  <<Repository>>
  + findById(id: Long): Optional<User>
  + findByEmail(email: String): Optional<User>
  + save(user: User): User
  + delete(user: User): User
}

class UserService {
  <<Service>>
  + getUserById(id: Long): User
  + getUserByEmail(email: String): User
  + createUser(user: User): User
  + updateProfile(id: Long, updatedUser: User): User
  + deleteUser(id: Long): void
  + validateAndSetTemas(user: User, temas: List<TemaAtuacao>): void
}

class UserController {
  <<RestController>>
  + getProfile(id: Long): ResponseEntity<User>
  + createUser(user: User): ResponseEntity<User>
  + updateProfile(id: Long, updatedUser: User): ResponseEntity<User>
  + deleteUser(id: Long): ResponseEntity<Void>
  + updateTemas(id: Long, temas: List<TemaAtuacao>): ResponseEntity<User>
}

class TipoPostagem {
  <<enum>>
  - NENHUM: int = 0
  - ARTIGO: int = 1
  - NOVIDADE: int = 2
  - NOTICIA: int = 3
  - EVENTO: int = 4
  - DICA: int = 5
}

class Profissao {
  <<enum>>
  - ESTAGIARIO: int = 0
  - SENIOR: int = 1
  - PLENIOR: int = 2
  - JUNIOR: int = 3
  - AGRICULTOR: int = N
}

class Genero {
  <<enum>>
  - MASCULINO: int = 0
  - FEMININO: int = 1
  - NAO_BINARIO: int = 2
  - OUTRO: int = 3
  - PREFIRO_NAO_DIZER: int = 4
}

class Role {
  <<enum>>
  - USER: int = 0
  - ADMIN: int = 1
}

class TemaAtuacao {
  <<enum>>
  - DESENVOLVIMENTO_SOFTWARE: int = 0
  - INTELIGENCIA_ARTIFICIAL: int = 1
  - DESIGN: int = 2
  - MARKETING: int = 3
  - SEGURANCA: int = 4
  - GESTAO_DE_PROJETOS: int = N
}

Postagem "1" -- "0..*" Comentario : postagem
Comentario "1" -- "1" Postagem : comentarios
User "1" -- "0..*" Postagem : postagens
User "1" -- "0..*" Comentario : comentarios
User "1" -- "1" Role : role
User "1" -- "1" Genero : genero
Postagem "1" -- "1" TipoPostagem : tipoPostagem
User "0..1" -- "0..*" Profissao : profissao
User "0..*" -- "0..*" TemaAtuacao : temasDeAtuacao
Loading

👨‍💻 Contribuidores:

About

BRASFI's web platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors