Implemente um servidor de comunicação baseada em eventos (ou simplesmente servidor de eventos) que permita
- Um elemento gerar um evento sobre determinado tópico e publicá-lo no servidor de eventos
- Elementos cadastrarem, no servidor de eventos, o interesse em determinado(s) tópico(s)
- Toda vez que um evento for publicado no servidor de eventos, todos os elementos interessados devem receber uma notificação
- Atores:
- servidor
- eventos
- elemento (pessoa, orgão, grupo, etc)
- tópicos de interesse
- evento
- tópico -> mais urgente pois é o único nas especificações
- descrição
- servidor
- Ações
- gerar evento
- publicar evento
- agrupar eventos por tópicos
- cadastrar interesse em tópicos
- notificar eventos
- Exemplo de endereço para a aplicação:
http://localhost:8080/live_events
- lista de eventos ::=
/
- detalhes de evento* ::=
/{event_id}
- eventos de um tópico ::=
/{topic}
- notificações lidos/não lidos ::=
/{user_id}/notifications
- eventos de interesse ::=
/{user_id}/topics
- notificação lida/não lida ::=
/{user_id}/notify/{event_id}
- novo evento ::=
/
- JSON Object
- name
- topics
- description
- author*
- postTime
- releaseTime
- Template:
{ "name":"", "topics":[], "description":"", "author":"", "end":"" }
- JSON Object
- adicionar tópicos de interesse ::=
/topics/{topic}
- cadastro de usuario* ::=
/signin
- JSON Object
- name
- username
- interestTopics
- Template:
{ "name":"", "username":"", "topics":[] }
- JSON Object