Este projeto tem como premissa a criação da maior e melhor plataforma de conexão entre alunos e o ecossistema.
A fim de virar uma comunidade, decidimos deixar algumas features disponíveis para que alunos e/ou interessados em colaborar possam ajudar no desenvolvimento, adquirindo experiencia, podendo usar sua contribuição como portfólio!
Se você está a fim de ajudar no desenvolvimento, sempre disponibilizaremos "bugs" na aba de Issues do repositorio, bem como features no kanban disponivel em Projects, no projeto Open Source.
O Front-End do projeto está sendo construido em Angular CLi e o Back-End em Python e Flask! Saiba mais sobre o Front-end clicando aqui
A equipe envolvida neste projeto faz parte do INOVA Paula Souza, do CPS. Conheça melhor a equipe clicando aqui
(em construção)
Instruções para montar o projeto:
- Criando um novo ambiente virtual (venv) para rodar junto ao Python 3
python3 -m venv venv
ou
bash virtualenv -p python3 venv
- Acessando o ambiente virtual venv
source venv/bin/activate
- Atualizando a ferramenta "pip"
pip install --upgrade pip
- Saindo do ambiente virtual venv
deactivate
- Atualizando todos os pacotes instalados na "venv"
- Access venv
- Execute:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
- Criando a base de dados do projeto
- Pre-requerimentos (software)
- Maven
- JDK 1.8+
- PostgreSQL Server - Docker Postgres
- Execute o seguinte comando
- Desenvolvimento
- Criar base de dados
mvn clean resources:resources liquibase:update
- Limpar todas as bases
mvn clean resources:resources liquibase:dropAll
- Testes
- Criar base de dados
mvn clean resources:resources liquibase:update -Dprop='_qa'
- Limpar todas as bases
mvn clean resources:resources liquibase:dropAll -Dprop='_qa'
- Desenvolvimento
- Pre-requerimentos (software)
- Rode o projeto
- Executar:
./runserver.sh
Utilizamos uma adaptação do Swagger, o Flasgger, para uma documentação visual da nossa API que pode ser acessada através da rota /apidocs.
GET - Retorna todos os parceiros
/cp/parceiro
GET - Retorna um parceiro
/cp/parceiro/<id>
POST - Cadastra um parceiro
/cp/parceiro
{
"nome": "João",
"sobrenome": "Silva",
"email": "email@email.com",
"senha": "1234"
}
PUT - Atualiza informações do parceiro logado
/cp/parceiro/
{
"nome": "João",
"sobrenome": "Santos",
"email": "email@email.com",
"cpf": "11111111",
"senha": "1234",
"rg": "",
"foto_perfil": "",
"dt_nascimento": "",
"genero": "",
"RA": "",
"unidade": "",
"matricula": "",
"telefone": "12345678",
"local_trabalho": "",
"cargo": "",
"lattes": "",
"facebook": "",
"linkedin": "",
"twitter": ""
}
DELETE - Exclui um parceiro
/cp/parceiro/<id>
GET - Retorna todos os eventos
/cp/evento
GET - Retorna um evento
/cp/evento/<id>
POST - Cadastra um evento
/cp/evento
{
"titulo": "como programar Orientado a Objeto",
"descricao": "será explicado como programar Orientado a Objeto",
"tipo": "curso",
"duracao": "60",
"banner": "o caminho do banner",
"eventos":[
{"unidade": "1", "data": "2018-10-15", "hora": "14:00"},
{"unidade": "1", "data": "2018-10-16", "hora": "14:00"},
{"unidade": "1", "data": "2018-10-17", "hora": "14:00"}
],
"materiais":[
{"material": "caminho do material 1"},
{"material": "caminho do material 2"}
]
}
PUT - Atualiza um evento
/cp/evento/<id>
{
"titulo": "como programar C++",
"descricao": "será explicado como programar em C++",
"tipo": "curso",
"duracao": "40",
"banner": "o caminho do banner",
"eventos":[
{"id": "1", "unidade": "1", "data": "2019-10-15", "hora": "12:30"},
{"id": "2", "unidade": "1", "data": "2019-10-16", "hora": "15:30"},
{"id": "3", "unidade": "1", "data": "2019-10-16", "hora: ""20:30"},
{"id": "", "unidade": "1", "data": "2020-10-17", "hora": "19:30"}
],
"materiais":[
{"id": "1", "material": "caminho do material 10"},
{"id": "2", "material": "caminho do material 15"},
{"id": "", "material": "caminho do material 40"}
],
"exclui_eventos": [
["ID do evento"]
],
"exclui_materiais": [
["ID do material"]
]
}
* Se "material" e/ou "evento" não tiverem um id, significa que são registros novos e precisam ser cadastrados
GET - Retorna todos os inscritos do evento
/cp/evento/<id>/inscritos
POST - Parceiro se cadastra no evento
/cp/evento/<id>/inscrito
DELETE - Parceiro se cancela inscrição no evento
/cp/evento/<id>/inscrito
PUT - Subir lista de presença do evento pro banco
/cp/evento/<id_evento>/inscritos/presenca
{
"lista":[
{
"id_parceiro": "id_parceiro",
"presenca": true or false
},
{
"id_parceiro": "id_parceiro",
"presenca": true or false
}
]
}
GET - Retornar todos os eventos com avaliação pendente
cp/evento/<id_evento>/avaliar
POST - Enviar avaliação do parceiro sobre o evento
cp/evento/<id_evento>/avaliar
{
"nota": 4.5,
"comentario": "Excelente",
"identificar": true
}
GET - Retorna todos os Eventos que o parceiro deve avaliar
cp/evento/avaliacao
POST - Enviar avaliação do diretor sobre o palestrante e o seu evento na unidade
cp/evento/<id_evento>/palestrante/<id_palestrante>/avaliar
{
"nota": 4.5,
"comentario": "Excelente",
"identificar": true
}
POST - Enviar avaliação do palestrante sobre a unidade
cp/evento/<id_evento>/unidade/avaliar
{
"nota": 4.5,
"comentario": "Excelente",
"identificar": true
}
GET - Retorna todos os agentes
/cp/agentes
GET - Retorna um agente
/cp/agentes/<id>
POST - Cadastra um agente
/cp/agentes
{
"id_parceiro": 1,
"hora": "30:00",
"matricula": 123123123,
"id_unidade": 1
}
PUT - Atualiza um agente
/cp/agentes/<id>
{
"matricula": 123123123,
"hora": "30:00",
"id_unidade": 1,
"nome": "aluno1",
"sobrenome": "fatec",
"email": "email@email.com",
"cpf": "11111111",
"senha": "1234",
"rg": "",
"foto_perfil": "",
"dt_nascimento": "",
"genero": "",
"telefone": "12345678",
"local_trabalho": "",
"cargo": "",
"lattes": "",
"facebook": "",
"linkedin": "",
"twitter": ""
}
DELETE - Exclui um agente
/cp/agentes/<id>
GET - Retorna as atividades que o agente precisa enquadrar
/agentes/atividades
GET - Retorna todas as informações da atividade
/agentes/atividades/<id>
PUT - Atualiza a atividade
/agentes/atividades/<id>
{
"eixo": 1
}
GET - Retorna as regiões e suas escolas
/cp/locais
GET - Retorna todos os Diretores
/cp/diretores
GET - Retorna um diretor
/cp/diretores/<id>
POST - Cadastra um diretor
/cp/diretores
{
"id_unidade": 1,
"id_parceiro": 1
}
PUT - Atualiza um diretor
/cp/diretores/<id>
{
"nome": "Diretor1",
"email": "diretor@gmail.com",
"cpf": "11111111",
"senha": "1234",
"rg": "46564",
"foto_perfil": "",
"dt_nascimento": "17/01/1982",
"genero": "Masculino",
"telefone": "12345678",
"local_trabalho": "CPS",
"cargo": "Professor",
"lattes": "",
"facebook": "diretor1",
"linkedin": "",
"twitter": "diretor1"
}
DELETE - Deleta um diretor
/cp/diretores/<id>
GET - Retorna os eventos que o diretor precisa avaliar
/cp/diretores/atividades
GET - Retorna as informações do evento
/cp/diretores/<id>
PUT - Altera a situação do evento
/cp/diretores/<id>
{
"resposta": true,
"capacidade": 30
}
GET - Retorna nome e RA de todos os alunos
/cp/aluno
GET - Retorna as informações de um aluno
/cp/aluno/<ra>
POST - Cadastra um Aluno
/cp/aluno
{
"ra": "5649454",
"id_parceiro": "1"
}
PUT - Atualiza o RA do aluno
/cp/aluno/RA
{
"ra": "5649455"
}
DELETE - Deleta um aluno
/cp/aluno/<ra>
POST - Cadastra um Projeto
/cp/projetos
{
"titulo":"teste Detalhe",
"orientador":"orientador do projeto",
"descricao": "Descricao do projeto",
"status":"Status do projeto",
"tipo":"Tipo do projeto",
"tema":"Tema do projeto",
"capa":"",
"coops":[
{"email": "edu@hotmail.com"},
{"email": "teste1@hotmail.com"}
],
"textoProjeto":"Texto projeto",
"linkTexto": "Link Texto projeto",
"arquivos":[
{
"tipo": "teste detalhe2",
"titulo": "Titulo Midia projeto",
"legenda": "legenda midia projeto",
"link": "Link midia projeto"
},
{
"tipo": "teste detalhe2",
"titulo": "Titulo Arquivo projeto",
"legenda": "legenda Arquivo projeto",
"link": "Link Arquivo projeto"
}
],
"detalhes":
{
"categoria1": "teste categoria1",
"categoria2": "teste categoria2",
"premio1": "teste premio1",
"premio2": "teste premio2",
"recurso1": "teste recurso1",
"recurso2": "teste recurso2",
"credito1": "teste credito1",
"credito2": "teste credito2",
"direitos": "teste direitos"
},
"colaboradores":[
{"email": "edu-simao@outlook.com"}
]
}
GET - Retorna todos os projetos cadastrado
/cp/projetos
GET - Retorna todos os projetos cadastrado do Aluno
/cp/projetos/aluno
GET - Retorna todos os dados do projeto
/cp/projetos/<id_projeto>
PUT - Atualiza todos os dados do projeto
/cp/projetos
{
"arquivos": [
{
"id_arquivo": "id_arquivo",
"legenda": "legenda midia projeto",
"link": "Link midia projeto",
"tipo": "teste detalhe2",
"titulo": "Titulo Midia projeto"
},
{
"id_arquivo": "id_arquivo",
"legenda": "legenda Arquivo projeto",
"link": "Link Arquivo projeto",
"tipo": "teste detalhe2",
"titulo": "Titulo Arquivo projeto"
},
{
"id_arquivo": "",
"legenda": "legenda Codigo projeto",
"link": "Link Arquivo projeto",
"tipo": "codigo",
"titulo": "Titulo Codigo projeto"
}
],
"capa": "",
"colaboradores": [
{
"email": "edu-simao@outlook.com",
"id": "id_colaboradores"
},
{
"email": "teste1@hotmail.com",
"id": ""
}
],
"coops": [
{
"email": "edu@hotmail.com",
"id": "id_coop"
},
{
"email": "edu@hotmail.com",
"id": ""
}
],
"descricao": "teste Detalhe",
"detalhes": {
"categoria1": "teste categoria1",
"categoria2": "teste categoria2",
"credito1": "teste credito1",
"credito2": "teste credito2",
"direitos": "teste direitos",
"id_detalhes": "11",
"premio1": "teste premio1",
"premio2": "teste premio2",
"recurso1": "teste recurso1",
"recurso2": "teste recurso2"
},
"id_projeto": "id_projeto",
"linkTexto": "Link Texto projeto",
"orientador": "orientador do projeto",
"status": "Status do projeto",
"tema": "Tema do projeto",
"textoProjeto": "Texto projeto",
"tipo": "Tipo do projeto",
"titulo": "teste Detalhe"
}
URL -
/login
* Aba Authorization:
type -> Basic Auth
username -> email cadastrado na tabela Parceiro
password -> senha cadastrada na Tabela Parceiro
clicar em send e copiar a token gerada
* Aba Headers:
key -> token
value -> Token gerada