ccsa-ufrn / sigeva Goto Github PK
View Code? Open in Web Editor NEWPlataforma que suporta o gerenciamento de eventos acadêmicos do CCSA
Home Page: https://ccsa-ufrn.github.io/sigeva/
License: GNU General Public License v3.0
Plataforma que suporta o gerenciamento de eventos acadêmicos do CCSA
Home Page: https://ccsa-ufrn.github.io/sigeva/
License: GNU General Public License v3.0
Desenvolver rotas + funções + DAO para criação de um novo usuário
Criar middleware de autorização de usuário a partir do token.
O token é passado pelo campo Authorization do header da requisição
Modelo System
Deve conter, inicialmente apenas um campo ofRegisterFieldRequirement[] para armazenar as solicitações de campos requeridos (por referência).
Classe System
Rotas System
DAO System
Rota para inscrição de um usuário em um evento. A inscrição obriga a passagem de um papel do tipo público que existe dentro do evento. A inscrição pode ser feita mediante autorização do tipo Simples (necessita apenas estar logado)
Rota:
POST /api/event/:id/enroll
body: { roleId }
A inscrição no evento, a nível de banco de dados, faz:
Esta rota é utilizada pelo container do componente desenvolvido em #40
Deve-se criar uma nova rota na API '/user/me' que retorna os dados formatados do usuário atualmente logado. Esta rota exige a passagem do Token e autorização.
Deve-se passar o token pela header: Authorization
Atualmente os testes estão gerenciando os registros no banco de dados. Seria melhor que ao inicializar o servidor no modo "DEV", inicializa o banco de dados caso seja necessário. E os testes vão ser feitos em cima desse banco de dados.
Tipo de issue: Implementação
Stacks: Back-end
Entidades: PaymentModule
Os módulos devem conter a função act() que recebe uma ação e um conjunto de informações através de uma requisição POST e deve verificar se o usuário logado possui permissão adequada para realizar tal ação e por fim, realizar a ação.
Atributos: user (objeto do usuário logado), roles (papéis que o usuário possui no evento), body (corpo POST da requisição), entitySlug (slug da entidade), subaction (subação a ser executada).
Fluxo:
A rota GE /api/event/all
deve retornar todos os eventos considerando filtros, ordenação e paginação da API.
Exemplos de requisições:
https://sigeva.ccsa.ufrn.br/api/event/all/?f=title,subtitle&size=10
"data": {
"pagination": {
"total_pages": 13,
"links": {
"self": "https://sigeva.ccsa.ufrn.br/api/event/all/?f=title,subtitle&size=10&page=1",
"first": "https://sigeva.ccsa.ufrn.br/api/event/all/?f=title,subtitle&size=10&page=1",
"prev": null,
"next": "https://sigeva.ccsa.ufrn.br/api/event/all/?f=title,subtitle&size=10&page=2",
"last": "https://sigeva.ccsa.ufrn.br/api/event/all/?f=title,subtitle&size=10&page=13"
}
},
"events": [ ]
}
O modelo "Role" representa papeis (públicos ou privados) que um usuário pode ter em relação a um evento, firmado pela ação de inscrição no evento.
A documentação Papel requer melhorias.
O EventCard será sensível ao contexto de usuário e de evento.
Um EventCard se assemelha a imagem:
Esse componente é sensível ao contexto de usuário.
Os dois primeiros componentes são similares a estes:
Desenvolver rotas + funções + DAO para retornar todos os usuários
** Administrador **
O administrador pode solicitar todos os usuários do sistema
** Coordenador de evento **
O coordenador de evento pode solicitar todos os usuários do evento
Quando o usuário está logado e tenta acessar a página inicial ele é redirecionado para o dashboard. Não é possível lançar esta ação em renderização back-side por quê depende do storage do navegador. Assim, na situação em que o usuário abre a tela inicial estando logado, é mostrada a tela inicial por um curto período enquanto o front-end verifica o storage.
Isso indica que a forma com a qual o state da aplicação está sendo manipulada/armazenada não é a ideal para esta aplicação. É necessário rever os ideais de isomorfismo e reformular as interações com o state para que a renderização back-end leve em consideração o state da aplicação já existente.
Ver: https://trello.com/c/SbIXHa8K/9-lista-de-eventos
A página inicial deve, essencialmente, conter:
Após o registro com sucesso, deve renderizar mensagem de sucesso ou redirecionamento adequado. O RegisterForm possui o state register_success
inicial em false
, e é resolvido para true
após a recepção dos dados de registro (POST no /api/user).
Problemas identificados:
json.error
nunca é atingido (linha ~190)No RegisterForm, caso o usuário preencha somente o password
e deixe o repeat_password
vazio, não vai dar erro pelo fato dos campos não combinarem. O esperado é que um erro seja lançado.
Terrível bug que permite, após o logout, fazer login sem preencher email e senha. Para resolver o estado do login deve ser reiniciado após sucesso do login.
Desenvolver rotas + funções + DAO para desativar um usuário
Somente Administrador e o próprio usuário podem desativar uma conta
Relationship representa a ligação entre um evento e um usuário. É instanciado na lista "ofRelationships" de Evento quando o Usuário se inscreve no evento.
Estar melhor documentado no mapa geral de classes e em evento
Desenvolver rotas + funções + DAO para encerrar sessão de usuário
Os tipos CPF e telefone, no formulário de cadastro, deve ter os campos CPF e Telefone (caso existam nos register fields) com uma máscara para facilitar a inserção pelo o usuário
Ao efetuar um registro é lançado um TypeError por promise
Unhandled promise rejection (rejection id: 2): TypeError: this.DAO.createObject is not a function
O formulário de registro no sistema merece ser revisado e receber melhorias. Provavelmente seja interessante utilizar um pacote específico para formulários.
O componente deverá imprimir todas as informações fundamentais do evento.
O componente se localizará na esquerda da Página de Evento, como na imagem:
Desenvolver rotas + funções + DAO para autenticação de usuário
Deve-se criar uma nova página que é carregada depois que o usuário loga-se com sucesso no sistema. A partir de então, se o usuário (logado) acessar a página inicial ele será redirecionado para o seu dashboard.
O dashboard do usuário contempla todas as funcionalidades sensíveis ao usuário logado. Deve:
A zona de administração é uma área separada do dashboard. Como o usuário administrador é, também, um usuário comum, sua área de dashboard é também a mesma dos usuários comuns.
O menu lateral do User Dashboard, deverá possuir o título: "Meus eventos" (ou similar) e conterá links para acessar Event Dashboards dos eventos em que o usuário está inscrito.
Pré-requisitos:
Este issue contribui para a finalização do #31
Quando o usuário está logado o sistema se comporta como antes da resolução do bug #32, mas desta vez não é um problema do isomorfismo, mas sim dos redirecionamentos.
Percebe-se que o estado não chega ao Dashboard a tempo de verificar se o usuário está logado, assim ele repassa para o "/" que percebe o login e passa para o Dashboard novamente. ❓
[ex: cm1h3, ch51gh]
Olhar documentação do Date() em java.
Manipular as datas para sair no formato:
'2 a 4 de maio'
Adicionar campos:
Local do evento,
Flag de indicação da atividade do evento.
Pendencia de criação de usuário #3
Na classe User foi criado a função que retorna um Promise e que realiza a busca de um usuário por email, retornando o userObject caso encontrado, e retornando false caso contrário.
❗ Problema: Como chamar esta função asyncrona na função setData ?
Utilizando a rota /api/user/authorize e passando email
e password
pelo corpo de uma requisição POST
Desenvolver rotas + funções + DAO para retornar informações de usuário pelo ID
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.