última versão
Browse files- .devcontainer/devcontainer.json +33 -0
- .gitignore +2 -0
- 1_Principal.py +130 -0
- README.md +3 -12
- app.py +0 -4
- code/main.ipynb +832 -0
- datasets/dicas.csv +10 -0
- datasets/mslq.csv +48 -0
- google/autenticacao.py +28 -0
- google/base_test.py +65 -0
- google/classroom_create_coursework.py +52 -0
- google/drive_list.py +18 -0
- google/get_course.py +53 -0
- google/modulo_consultar_respostas_atividade.py +85 -0
- google/modulo_criar_atividade.py +86 -0
- google/quickstart.py +72 -0
- img/escalas1.jpg +0 -0
- img/escalas2.jpg +0 -0
- pages/02_Dashboard.py +70 -0
- pages/03_Perfil.py +584 -0
- pages/04_Enviar_recomendacoes.py +53 -0
- pages/05_Listar_questionario.py +16 -0
- pages/06_Listar_recomendacoes.py +13 -0
- pages/07_Listar_cursos.py +11 -0
- pages/08_Listar_alunos.py +30 -0
- pages/09_Configuracoes.py +29 -0
- pages/10_Sobre.py +23 -0
- requirements.txt +11 -0
- todo.md +6 -0
.devcontainer/devcontainer.json
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "Python 3",
|
3 |
+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
4 |
+
"image": "mcr.microsoft.com/devcontainers/python:1-3.11-bullseye",
|
5 |
+
"customizations": {
|
6 |
+
"codespaces": {
|
7 |
+
"openFiles": [
|
8 |
+
"README.md",
|
9 |
+
"1_Principal.py"
|
10 |
+
]
|
11 |
+
},
|
12 |
+
"vscode": {
|
13 |
+
"settings": {},
|
14 |
+
"extensions": [
|
15 |
+
"ms-python.python",
|
16 |
+
"ms-python.vscode-pylance"
|
17 |
+
]
|
18 |
+
}
|
19 |
+
},
|
20 |
+
"updateContentCommand": "[ -f packages.txt ] && sudo apt update && sudo apt upgrade -y && sudo xargs apt install -y <packages.txt; [ -f requirements.txt ] && pip3 install --user -r requirements.txt; pip3 install --user streamlit; echo '✅ Packages installed and Requirements met'",
|
21 |
+
"postAttachCommand": {
|
22 |
+
"server": "streamlit run 1_Principal.py --server.enableCORS false --server.enableXsrfProtection false"
|
23 |
+
},
|
24 |
+
"portsAttributes": {
|
25 |
+
"8501": {
|
26 |
+
"label": "Application",
|
27 |
+
"onAutoForward": "openPreview"
|
28 |
+
}
|
29 |
+
},
|
30 |
+
"forwardPorts": [
|
31 |
+
8501
|
32 |
+
]
|
33 |
+
}
|
.gitignore
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
configuracao.txt
|
2 |
+
send.bat
|
1_Principal.py
ADDED
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from streamlit_oauth import OAuth2Component
|
3 |
+
from dotenv import load_dotenv
|
4 |
+
from google.oauth2.credentials import Credentials
|
5 |
+
from googleapiclient.discovery import build
|
6 |
+
import pandas as pd
|
7 |
+
import os
|
8 |
+
|
9 |
+
load_dotenv()
|
10 |
+
|
11 |
+
CLIENT_ID = os.environ["GOOGLE_CLIENT_ID"]
|
12 |
+
CLIENT_SECRET = os.environ["GOOGLE_CLIENT_SECRET"]
|
13 |
+
REDIRECT_URI = os.environ["GOOGLE_REDIRECT_URI"]
|
14 |
+
AUTHORIZE_URL = "https://accounts.google.com/o/oauth2/v2/auth"
|
15 |
+
TOKEN_URL = "https://oauth2.googleapis.com/token"
|
16 |
+
REFRESH_TOKEN_URL = "https://oauth2.googleapis.com/token"
|
17 |
+
REVOKE_TOKEN_URL = "https://oauth2.googleapis.com/revoke"
|
18 |
+
SCOPES = "openid profile email https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/classroom.courses https://www.googleapis.com/auth/drive.readonly.metadata https://www.googleapis.com/auth/classroom.announcements https://www.googleapis.com/auth/classroom.courses https://www.googleapis.com/auth/classroom.coursework.me https://www.googleapis.com/auth/classroom.coursework.students https://www.googleapis.com/auth/classroom.courseworkmaterials https://www.googleapis.com/auth/classroom.guardianlinks.students https://www.googleapis.com/auth/classroom.profile.emails https://www.googleapis.com/auth/classroom.profile.photos https://www.googleapis.com/auth/classroom.push-notifications https://www.googleapis.com/auth/classroom.rosters https://www.googleapis.com/auth/classroom.rosters.readonly https://www.googleapis.com/auth/classroom.topics"
|
19 |
+
|
20 |
+
oauth2 = OAuth2Component(CLIENT_ID, CLIENT_SECRET, AUTHORIZE_URL, TOKEN_URL, REFRESH_TOKEN_URL, REVOKE_TOKEN_URL)
|
21 |
+
st.title("NEOAVA")
|
22 |
+
#st.subheader("Um ambiente virtual de aprendizagem para a Autorregulação e o Big Five")
|
23 |
+
st.success("Esse aplicativo é integrado com o Google Sala de aula. \n Portanto, é preciso efetuar login com a sua conta do Google.")
|
24 |
+
|
25 |
+
if 'token' not in st.session_state:
|
26 |
+
result = oauth2.authorize_button("Login", REDIRECT_URI, SCOPES)
|
27 |
+
if result and 'token' in result:
|
28 |
+
st.session_state.token = result.get('token')
|
29 |
+
|
30 |
+
else:
|
31 |
+
|
32 |
+
token = st.session_state['token']
|
33 |
+
#st.json(token)
|
34 |
+
access_token = token.get("access_token")
|
35 |
+
|
36 |
+
st.success("Aguarde, pois estamos efetuando seu login e carregandos os dados do Google Sala de aula.")
|
37 |
+
|
38 |
+
# carregar as questoes do mslq
|
39 |
+
df_questoes_mslq = pd.read_csv("datasets/mslq.csv")
|
40 |
+
st.session_state["df_questoes_mslq"] = df_questoes_mslq
|
41 |
+
|
42 |
+
# carregar as dicas
|
43 |
+
df_dicas = pd.read_csv("datasets/dicas.csv")
|
44 |
+
st.session_state["df_dicas"] = df_dicas
|
45 |
+
|
46 |
+
creds = Credentials(token=access_token)
|
47 |
+
service = build('classroom', 'v1', credentials=creds)
|
48 |
+
|
49 |
+
def carregar_dataframe_autorregulacao_novo():
|
50 |
+
spreadsheet_id="19Bn8EFdhkSx71m0PkvoG8GbEUJW7vNRdJBdatfn6Keg"
|
51 |
+
creds = Credentials(token=access_token)
|
52 |
+
service = build('sheets', 'v4', credentials=creds)
|
53 |
+
result = service.spreadsheets().values().get(
|
54 |
+
spreadsheetId=spreadsheet_id, range="A1:AT10").execute()
|
55 |
+
rows = result.get('values', [])
|
56 |
+
|
57 |
+
panda_df = pd.DataFrame(data = rows[1:], columns=rows[0])
|
58 |
+
|
59 |
+
panda_df = panda_df.astype({panda_df.columns[2]: int, panda_df.columns[3]: int, panda_df.columns[4]: int, panda_df.columns[5]: int, panda_df.columns[6]: int, panda_df.columns[7]: int, panda_df.columns[8]: int, panda_df.columns[9]: int, panda_df.columns[10]: int,
|
60 |
+
panda_df.columns[11]: int, panda_df.columns[12]: int, panda_df.columns[13]: int, panda_df.columns[14]: int, panda_df.columns[15]: int, panda_df.columns[16]: int, panda_df.columns[17]: int, panda_df.columns[18]: int, panda_df.columns[19]: int, panda_df.columns[20]: int,
|
61 |
+
panda_df.columns[21]: int, panda_df.columns[22]: int, panda_df.columns[23]: int, panda_df.columns[24]: int, panda_df.columns[25]: int, panda_df.columns[26]: int, panda_df.columns[27]: int, panda_df.columns[28]: int, panda_df.columns[29]: int, panda_df.columns[30]: int,
|
62 |
+
panda_df.columns[31]: int, panda_df.columns[32]: int, panda_df.columns[33]: int, panda_df.columns[34]: int, panda_df.columns[35]: int, panda_df.columns[36]: int, panda_df.columns[37]: int, panda_df.columns[38]: int, panda_df.columns[39]: int, panda_df.columns[40]: int,
|
63 |
+
panda_df.columns[41]: int, panda_df.columns[42]: int, panda_df.columns[43]: int, panda_df.columns[44]: int, panda_df.columns[45]: int})
|
64 |
+
|
65 |
+
return panda_df
|
66 |
+
#return pd.read_csv("datasets/resposta_autorregulacao_v2.csv")
|
67 |
+
|
68 |
+
def carregar_dataframe_bigfive_novo():
|
69 |
+
spreadsheet_id="19Py0-JS3o2QDEdCX2EaJ2vV3M8uTUIgX8q52BQ4NiY4"
|
70 |
+
creds = Credentials(token=access_token)
|
71 |
+
service = build('sheets', 'v4', credentials=creds)
|
72 |
+
result = service.spreadsheets().values().get(
|
73 |
+
spreadsheetId=spreadsheet_id, range="A1:AT10").execute()
|
74 |
+
rows = result.get('values', [])
|
75 |
+
|
76 |
+
panda_df = pd.DataFrame(data = rows[1:], columns=rows[0])
|
77 |
+
|
78 |
+
panda_df = panda_df.astype({panda_df.columns[2]: int, panda_df.columns[3]: int, panda_df.columns[4]: int, panda_df.columns[5]: int, panda_df.columns[6]: int, panda_df.columns[7]: int, panda_df.columns[8]: int, panda_df.columns[9]: int, panda_df.columns[10]: int,
|
79 |
+
panda_df.columns[11]: int, panda_df.columns[12]: int, panda_df.columns[13]: int, panda_df.columns[14]: int, panda_df.columns[15]: int, panda_df.columns[16]: int, panda_df.columns[17]: int, panda_df.columns[18]: int, panda_df.columns[19]: int, panda_df.columns[20]: int,
|
80 |
+
panda_df.columns[21]: int, panda_df.columns[22]: int, panda_df.columns[23]: int, panda_df.columns[24]: int, panda_df.columns[25]: int, panda_df.columns[26]: int, panda_df.columns[27]: int, panda_df.columns[28]: int, panda_df.columns[29]: int, panda_df.columns[30]: int,
|
81 |
+
panda_df.columns[31]: int, panda_df.columns[32]: int, panda_df.columns[33]: int, panda_df.columns[34]: int, panda_df.columns[35]: int, panda_df.columns[36]: int, panda_df.columns[37]: int, panda_df.columns[38]: int, panda_df.columns[39]: int, panda_df.columns[40]: int,
|
82 |
+
panda_df.columns[41]: int, panda_df.columns[42]: int, panda_df.columns[43]: int, panda_df.columns[44]: int, panda_df.columns[45]: int})
|
83 |
+
|
84 |
+
return panda_df
|
85 |
+
#return pd.read_csv("datasets/resposta_bigfive_v2.csv")
|
86 |
+
|
87 |
+
# carregar as respostas de autorregulação
|
88 |
+
df_respostas = carregar_dataframe_autorregulacao_novo()
|
89 |
+
st.session_state["df_respostas"] = df_respostas
|
90 |
+
|
91 |
+
# carregar questoes do big five
|
92 |
+
df_respostas_big_five = carregar_dataframe_bigfive_novo()
|
93 |
+
st.session_state["df_respostas_big_five"] = df_respostas_big_five
|
94 |
+
|
95 |
+
st.session_state["limite"] = 4
|
96 |
+
|
97 |
+
results = service.courses().list(pageSize=10).execute()
|
98 |
+
courses = results.get("courses", [])
|
99 |
+
lista_curso = list()
|
100 |
+
for course in courses:
|
101 |
+
lista_curso.append([course['name'], course['id']])
|
102 |
+
|
103 |
+
df_cursos = pd.DataFrame(lista_curso, columns=["nome", "id"])
|
104 |
+
st.session_state["df_cursos"] = df_cursos
|
105 |
+
st.success("Selecione uma turma.")
|
106 |
+
curso_selecionado = st.selectbox(label="Selecione um curso do sala de aula para continuar:", options=df_cursos["nome"])
|
107 |
+
|
108 |
+
btn_carregar_curso = st.button("Carregar", key="btncarregarcurso")
|
109 |
+
|
110 |
+
def carregar_alunos(id_curso_selecionado):
|
111 |
+
creds = Credentials(token=access_token)
|
112 |
+
classroom = build('classroom', 'v1', credentials=creds)
|
113 |
+
results = classroom.courses().students().list(courseId=id_curso_selecionado).execute()
|
114 |
+
estudantes = results.get("students", [])
|
115 |
+
lista_estudante = list()
|
116 |
+
for estudante in estudantes:
|
117 |
+
lista_estudante.append([estudante['userId'], estudante["profile"]["name"]["fullName"], estudante["profile"]["emailAddress"]])
|
118 |
+
df_estudantes = pd.DataFrame(lista_estudante, columns=["userId", "nome", "email"])
|
119 |
+
st.session_state["df_estudantes"] = df_estudantes
|
120 |
+
#st.success("Todos os estudantes carregados!")
|
121 |
+
|
122 |
+
if btn_carregar_curso:
|
123 |
+
#st.write("Curso Selecionado: ", curso_selecionado)
|
124 |
+
df_curso = df_cursos[df_cursos["nome"]==curso_selecionado]
|
125 |
+
id_curso_selecionado = df_curso["id"].iloc[0]
|
126 |
+
#st.write("ID do curso selecionado: ", id_curso_selecionado)
|
127 |
+
st.session_state["id_curso_selecionado"] = id_curso_selecionado
|
128 |
+
carregar_alunos(id_curso_selecionado)
|
129 |
+
st.success("Todos os dados carregados!")
|
130 |
+
|
README.md
CHANGED
@@ -1,12 +1,3 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
colorFrom: blue
|
5 |
-
colorTo: indigo
|
6 |
-
sdk: streamlit
|
7 |
-
sdk_version: 1.42.0
|
8 |
-
app_file: app.py
|
9 |
-
pinned: false
|
10 |
-
short_description: Um ambiente virtual de aprendizagem
|
11 |
-
license: mit
|
12 |
-
---
|
|
|
1 |
+
# about
|
2 |
+
|
3 |
+
Source code for NeoAVA a recommendation System with Self-Regulated Learning for students and teachers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.py
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
import streamlit as st
|
2 |
-
|
3 |
-
x = st.slider('selecione um valor')
|
4 |
-
st.write(x, 'squared is', x * x)
|
|
|
|
|
|
|
|
|
|
code/main.ipynb
ADDED
@@ -0,0 +1,832 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 17,
|
6 |
+
"metadata": {},
|
7 |
+
"outputs": [],
|
8 |
+
"source": [
|
9 |
+
"lista = [\n",
|
10 |
+
" ['Carimbo de data/hora', 'Endereço de e-mail', 'Vejo-me como alguém que É conversador, comunicativo', 'Vejo-me como alguém que Tende a ser crítico com os outros ', 'Vejo-me como alguém que É minucioso e detalhista no trabalho ', 'Vejo-me como alguém que É depressivo, triste ', 'Vejo-me como alguém que É original, tem sempre novas ideias ', 'Vejo-me como alguém que É reservado ', 'Vejo-me como alguém que É prestativo e ajuda os outros ', 'Vejo-me como alguém que Pode ser um tanto descuidado ', 'Vejo-me como alguém que É relaxado, controla bem o stress ', 'Vejo-me como alguém que É curioso sobre muitas coisas diferentes ', 'Vejo-me como alguém que É cheio de energia ', 'Vejo-me como alguém que Começa discussões, disputas, com os outros ', 'Vejo-me como alguém que É um trabalhador de confiança ', 'Vejo-me como alguém que Fica tenso com frequência ', 'Vejo-me como alguém que É engenhoso, alguém que gosta de analisar profundamente as coisas ', 'Vejo-me como alguém que Gera muito entusiasmo ', 'Vejo-me como alguém que Tem capacidade de perdoar, perdoa facilmente ', 'Vejo-me como alguém que Tende a ser desorganizado ', 'Vejo-me como alguém que Preocupa-se muito com tudo ', 'Vejo-me como alguém que Tem uma imaginação fértil ', 'Vejo-me como alguém que Tende a ser quieto, calado ', 'Vejo-me como alguém que É geralmente confiável ', 'Vejo-me como alguém que Tende a ser preguiçoso ', 'Vejo-me como alguém que É emocionalmente estável, não se altera facilmente ', 'Vejo-me como alguém que É inventivo, criativo ', 'Vejo-me como alguém que É assertivo, não teme expressar o que sente ', 'Vejo-me como alguém que Às vezes é frio e distante ', 'Vejo-me como alguém que Insiste até concluir a tarefa ou o trabalho ', 'Vejo-me como alguém que É temperamental, muda de humor facilmente ', 'Vejo-me como alguém que Valoriza o artístico, o estético ', 'Vejo-me como alguém que É, às vezes, tímido e inibido ', 'Vejo-me como alguém que É amável, tem consideração pelos outros ', 'Vejo-me como alguém que Faz as coisas com eficiência ', 'Vejo-me como alguém que Mantém-se calmo nas situações de tensão ', 'Vejo-me como alguém que Prefere trabalho rotineiro ', 'Vejo-me como alguém que É sociável, extrovertido ', 'Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros ', 'Vejo-me como alguém que Faz planos e segue-os à risca ', 'Vejo-me como alguém que Fica nervoso facilmente ', 'Vejo-me como alguém que Gosta de refletir, brincar com as ideias ', 'Vejo-me como alguém que Tem poucos interesses artísticos ', 'Vejo-me como alguém que Gosta de cooperar com os outros ', 'Vejo-me como alguém que É facilmente distraído ', 'Vejo-me como alguém que É sofisticado em artes, música ou literatura '], \n",
|
11 |
+
" ['07/10/2023 21:55:06', 'gisellaneo@gmail.com', '1', '3', '4', '3', '4', '1', '4', '5', '2', '4', '4', '1', '2', '4', '4', '3', '4', '5', '4', '5', '4', '3', '4', '3', '5', '1', '2', '3', '3', '4', '5', '3', '2', '1', '4', '2', '3', '2', '4', '5', '1', '4', '4', '4'], \n",
|
12 |
+
" ['11/10/2023 13:11:32', 'jobstern80@gmail.com', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3']\n",
|
13 |
+
"]"
|
14 |
+
]
|
15 |
+
},
|
16 |
+
{
|
17 |
+
"cell_type": "code",
|
18 |
+
"execution_count": null,
|
19 |
+
"metadata": {},
|
20 |
+
"outputs": [],
|
21 |
+
"source": []
|
22 |
+
},
|
23 |
+
{
|
24 |
+
"cell_type": "code",
|
25 |
+
"execution_count": 18,
|
26 |
+
"metadata": {},
|
27 |
+
"outputs": [
|
28 |
+
{
|
29 |
+
"data": {
|
30 |
+
"text/plain": [
|
31 |
+
"['Carimbo de data/hora',\n",
|
32 |
+
" 'Endereço de e-mail',\n",
|
33 |
+
" 'Vejo-me como alguém que É conversador, comunicativo',\n",
|
34 |
+
" 'Vejo-me como alguém que Tende a ser crítico com os outros ',\n",
|
35 |
+
" 'Vejo-me como alguém que É minucioso e detalhista no trabalho ',\n",
|
36 |
+
" 'Vejo-me como alguém que É depressivo, triste ',\n",
|
37 |
+
" 'Vejo-me como alguém que É original, tem sempre novas ideias ',\n",
|
38 |
+
" 'Vejo-me como alguém que É reservado ',\n",
|
39 |
+
" 'Vejo-me como alguém que É prestativo e ajuda os outros ',\n",
|
40 |
+
" 'Vejo-me como alguém que Pode ser um tanto descuidado ',\n",
|
41 |
+
" 'Vejo-me como alguém que É relaxado, controla bem o stress ',\n",
|
42 |
+
" 'Vejo-me como alguém que É curioso sobre muitas coisas diferentes ',\n",
|
43 |
+
" 'Vejo-me como alguém que É cheio de energia ',\n",
|
44 |
+
" 'Vejo-me como alguém que Começa discussões, disputas, com os outros ',\n",
|
45 |
+
" 'Vejo-me como alguém que É um trabalhador de confiança ',\n",
|
46 |
+
" 'Vejo-me como alguém que Fica tenso com frequência ',\n",
|
47 |
+
" 'Vejo-me como alguém que É engenhoso, alguém que gosta de analisar profundamente as coisas ',\n",
|
48 |
+
" 'Vejo-me como alguém que Gera muito entusiasmo ',\n",
|
49 |
+
" 'Vejo-me como alguém que Tem capacidade de perdoar, perdoa facilmente ',\n",
|
50 |
+
" 'Vejo-me como alguém que Tende a ser desorganizado ',\n",
|
51 |
+
" 'Vejo-me como alguém que Preocupa-se muito com tudo ',\n",
|
52 |
+
" 'Vejo-me como alguém que Tem uma imaginação fértil ',\n",
|
53 |
+
" 'Vejo-me como alguém que Tende a ser quieto, calado ',\n",
|
54 |
+
" 'Vejo-me como alguém que É geralmente confiável ',\n",
|
55 |
+
" 'Vejo-me como alguém que Tende a ser preguiçoso ',\n",
|
56 |
+
" 'Vejo-me como alguém que É emocionalmente estável, não se altera facilmente ',\n",
|
57 |
+
" 'Vejo-me como alguém que É inventivo, criativo ',\n",
|
58 |
+
" 'Vejo-me como alguém que É assertivo, não teme expressar o que sente ',\n",
|
59 |
+
" 'Vejo-me como alguém que Às vezes é frio e distante ',\n",
|
60 |
+
" 'Vejo-me como alguém que Insiste até concluir a tarefa ou o trabalho ',\n",
|
61 |
+
" 'Vejo-me como alguém que É temperamental, muda de humor facilmente ',\n",
|
62 |
+
" 'Vejo-me como alguém que Valoriza o artístico, o estético ',\n",
|
63 |
+
" 'Vejo-me como alguém que É, às vezes, tímido e inibido ',\n",
|
64 |
+
" 'Vejo-me como alguém que É amável, tem consideração pelos outros ',\n",
|
65 |
+
" 'Vejo-me como alguém que Faz as coisas com eficiência ',\n",
|
66 |
+
" 'Vejo-me como alguém que Mantém-se calmo nas situações de tensão ',\n",
|
67 |
+
" 'Vejo-me como alguém que Prefere trabalho rotineiro ',\n",
|
68 |
+
" 'Vejo-me como alguém que É sociável, extrovertido ',\n",
|
69 |
+
" 'Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros ',\n",
|
70 |
+
" 'Vejo-me como alguém que Faz planos e segue-os à risca ',\n",
|
71 |
+
" 'Vejo-me como alguém que Fica nervoso facilmente ',\n",
|
72 |
+
" 'Vejo-me como alguém que Gosta de refletir, brincar com as ideias ',\n",
|
73 |
+
" 'Vejo-me como alguém que Tem poucos interesses artísticos ',\n",
|
74 |
+
" 'Vejo-me como alguém que Gosta de cooperar com os outros ',\n",
|
75 |
+
" 'Vejo-me como alguém que É facilmente distraído ',\n",
|
76 |
+
" 'Vejo-me como alguém que É sofisticado em artes, música ou literatura ']"
|
77 |
+
]
|
78 |
+
},
|
79 |
+
"execution_count": 18,
|
80 |
+
"metadata": {},
|
81 |
+
"output_type": "execute_result"
|
82 |
+
}
|
83 |
+
],
|
84 |
+
"source": [
|
85 |
+
"lista[0]"
|
86 |
+
]
|
87 |
+
},
|
88 |
+
{
|
89 |
+
"cell_type": "code",
|
90 |
+
"execution_count": 19,
|
91 |
+
"metadata": {},
|
92 |
+
"outputs": [
|
93 |
+
{
|
94 |
+
"data": {
|
95 |
+
"text/plain": [
|
96 |
+
"[['07/10/2023 21:55:06',\n",
|
97 |
+
" 'gisellaneo@gmail.com',\n",
|
98 |
+
" '1',\n",
|
99 |
+
" '3',\n",
|
100 |
+
" '4',\n",
|
101 |
+
" '3',\n",
|
102 |
+
" '4',\n",
|
103 |
+
" '1',\n",
|
104 |
+
" '4',\n",
|
105 |
+
" '5',\n",
|
106 |
+
" '2',\n",
|
107 |
+
" '4',\n",
|
108 |
+
" '4',\n",
|
109 |
+
" '1',\n",
|
110 |
+
" '2',\n",
|
111 |
+
" '4',\n",
|
112 |
+
" '4',\n",
|
113 |
+
" '3',\n",
|
114 |
+
" '4',\n",
|
115 |
+
" '5',\n",
|
116 |
+
" '4',\n",
|
117 |
+
" '5',\n",
|
118 |
+
" '4',\n",
|
119 |
+
" '3',\n",
|
120 |
+
" '4',\n",
|
121 |
+
" '3',\n",
|
122 |
+
" '5',\n",
|
123 |
+
" '1',\n",
|
124 |
+
" '2',\n",
|
125 |
+
" '3',\n",
|
126 |
+
" '3',\n",
|
127 |
+
" '4',\n",
|
128 |
+
" '5',\n",
|
129 |
+
" '3',\n",
|
130 |
+
" '2',\n",
|
131 |
+
" '1',\n",
|
132 |
+
" '4',\n",
|
133 |
+
" '2',\n",
|
134 |
+
" '3',\n",
|
135 |
+
" '2',\n",
|
136 |
+
" '4',\n",
|
137 |
+
" '5',\n",
|
138 |
+
" '1',\n",
|
139 |
+
" '4',\n",
|
140 |
+
" '4',\n",
|
141 |
+
" '4'],\n",
|
142 |
+
" ['11/10/2023 13:11:32',\n",
|
143 |
+
" 'jobstern80@gmail.com',\n",
|
144 |
+
" '3',\n",
|
145 |
+
" '3',\n",
|
146 |
+
" '3',\n",
|
147 |
+
" '3',\n",
|
148 |
+
" '3',\n",
|
149 |
+
" '3',\n",
|
150 |
+
" '3',\n",
|
151 |
+
" '3',\n",
|
152 |
+
" '3',\n",
|
153 |
+
" '3',\n",
|
154 |
+
" '3',\n",
|
155 |
+
" '3',\n",
|
156 |
+
" '3',\n",
|
157 |
+
" '3',\n",
|
158 |
+
" '3',\n",
|
159 |
+
" '3',\n",
|
160 |
+
" '3',\n",
|
161 |
+
" '3',\n",
|
162 |
+
" '3',\n",
|
163 |
+
" '3',\n",
|
164 |
+
" '3',\n",
|
165 |
+
" '3',\n",
|
166 |
+
" '3',\n",
|
167 |
+
" '3',\n",
|
168 |
+
" '3',\n",
|
169 |
+
" '3',\n",
|
170 |
+
" '3',\n",
|
171 |
+
" '3',\n",
|
172 |
+
" '3',\n",
|
173 |
+
" '3',\n",
|
174 |
+
" '3',\n",
|
175 |
+
" '3',\n",
|
176 |
+
" '3',\n",
|
177 |
+
" '3',\n",
|
178 |
+
" '3',\n",
|
179 |
+
" '3',\n",
|
180 |
+
" '3',\n",
|
181 |
+
" '3',\n",
|
182 |
+
" '3',\n",
|
183 |
+
" '3',\n",
|
184 |
+
" '3',\n",
|
185 |
+
" '3',\n",
|
186 |
+
" '3',\n",
|
187 |
+
" '3']]"
|
188 |
+
]
|
189 |
+
},
|
190 |
+
"execution_count": 19,
|
191 |
+
"metadata": {},
|
192 |
+
"output_type": "execute_result"
|
193 |
+
}
|
194 |
+
],
|
195 |
+
"source": [
|
196 |
+
"lista[1:]"
|
197 |
+
]
|
198 |
+
},
|
199 |
+
{
|
200 |
+
"cell_type": "code",
|
201 |
+
"execution_count": 23,
|
202 |
+
"metadata": {},
|
203 |
+
"outputs": [],
|
204 |
+
"source": [
|
205 |
+
"\n",
|
206 |
+
"import pandas as pd\n",
|
207 |
+
"panda_df = pd.DataFrame(data=lista[1:], columns=lista[0])"
|
208 |
+
]
|
209 |
+
},
|
210 |
+
{
|
211 |
+
"cell_type": "code",
|
212 |
+
"execution_count": 36,
|
213 |
+
"metadata": {},
|
214 |
+
"outputs": [
|
215 |
+
{
|
216 |
+
"data": {
|
217 |
+
"text/plain": [
|
218 |
+
"Index(['Carimbo de data/hora', 'Endereço de e-mail',\n",
|
219 |
+
" 'Vejo-me como alguém que É conversador, comunicativo',\n",
|
220 |
+
" 'Vejo-me como alguém que Tende a ser crítico com os outros ',\n",
|
221 |
+
" 'Vejo-me como alguém que É minucioso e detalhista no trabalho ',\n",
|
222 |
+
" 'Vejo-me como alguém que É depressivo, triste ',\n",
|
223 |
+
" 'Vejo-me como alguém que É original, tem sempre novas ideias ',\n",
|
224 |
+
" 'Vejo-me como alguém que É reservado ',\n",
|
225 |
+
" 'Vejo-me como alguém que É prestativo e ajuda os outros ',\n",
|
226 |
+
" 'Vejo-me como alguém que Pode ser um tanto descuidado ',\n",
|
227 |
+
" 'Vejo-me como alguém que É relaxado, controla bem o stress ',\n",
|
228 |
+
" 'Vejo-me como alguém que É curioso sobre muitas coisas diferentes ',\n",
|
229 |
+
" 'Vejo-me como alguém que É cheio de energia ',\n",
|
230 |
+
" 'Vejo-me como alguém que Começa discussões, disputas, com os outros ',\n",
|
231 |
+
" 'Vejo-me como alguém que É um trabalhador de confiança ',\n",
|
232 |
+
" 'Vejo-me como alguém que Fica tenso com frequência ',\n",
|
233 |
+
" 'Vejo-me como alguém que É engenhoso, alguém que gosta de analisar profundamente as coisas ',\n",
|
234 |
+
" 'Vejo-me como alguém que Gera muito entusiasmo ',\n",
|
235 |
+
" 'Vejo-me como alguém que Tem capacidade de perdoar, perdoa facilmente ',\n",
|
236 |
+
" 'Vejo-me como alguém que Tende a ser desorganizado ',\n",
|
237 |
+
" 'Vejo-me como alguém que Preocupa-se muito com tudo ',\n",
|
238 |
+
" 'Vejo-me como alguém que Tem uma imaginação fértil ',\n",
|
239 |
+
" 'Vejo-me como alguém que Tende a ser quieto, calado ',\n",
|
240 |
+
" 'Vejo-me como alguém que É geralmente confiável ',\n",
|
241 |
+
" 'Vejo-me como alguém que Tende a ser preguiçoso ',\n",
|
242 |
+
" 'Vejo-me como alguém que É emocionalmente estável, não se altera facilmente ',\n",
|
243 |
+
" 'Vejo-me como alguém que É inventivo, criativo ',\n",
|
244 |
+
" 'Vejo-me como alguém que É assertivo, não teme expressar o que sente ',\n",
|
245 |
+
" 'Vejo-me como alguém que Às vezes é frio e distante ',\n",
|
246 |
+
" 'Vejo-me como alguém que Insiste até concluir a tarefa ou o trabalho ',\n",
|
247 |
+
" 'Vejo-me como alguém que É temperamental, muda de humor facilmente ',\n",
|
248 |
+
" 'Vejo-me como alguém que Valoriza o artístico, o estético ',\n",
|
249 |
+
" 'Vejo-me como alguém que É, às vezes, tímido e inibido ',\n",
|
250 |
+
" 'Vejo-me como alguém que É amável, tem consideração pelos outros ',\n",
|
251 |
+
" 'Vejo-me como alguém que Faz as coisas com eficiência ',\n",
|
252 |
+
" 'Vejo-me como alguém que Mantém-se calmo nas situações de tensão ',\n",
|
253 |
+
" 'Vejo-me como alguém que Prefere trabalho rotineiro ',\n",
|
254 |
+
" 'Vejo-me como alguém que É sociável, extrovertido ',\n",
|
255 |
+
" 'Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros ',\n",
|
256 |
+
" 'Vejo-me como alguém que Faz planos e segue-os à risca ',\n",
|
257 |
+
" 'Vejo-me como alguém que Fica nervoso facilmente ',\n",
|
258 |
+
" 'Vejo-me como alguém que Gosta de refletir, brincar com as ideias ',\n",
|
259 |
+
" 'Vejo-me como alguém que Tem poucos interesses artísticos ',\n",
|
260 |
+
" 'Vejo-me como alguém que Gosta de cooperar com os outros ',\n",
|
261 |
+
" 'Vejo-me como alguém que É facilmente distraído ',\n",
|
262 |
+
" 'Vejo-me como alguém que É sofisticado em artes, música ou literatura '],\n",
|
263 |
+
" dtype='object')"
|
264 |
+
]
|
265 |
+
},
|
266 |
+
"execution_count": 36,
|
267 |
+
"metadata": {},
|
268 |
+
"output_type": "execute_result"
|
269 |
+
}
|
270 |
+
],
|
271 |
+
"source": [
|
272 |
+
"panda_df.columns"
|
273 |
+
]
|
274 |
+
},
|
275 |
+
{
|
276 |
+
"cell_type": "code",
|
277 |
+
"execution_count": 39,
|
278 |
+
"metadata": {},
|
279 |
+
"outputs": [],
|
280 |
+
"source": [
|
281 |
+
"panda_df = panda_df.astype({panda_df.columns[2]: int, panda_df.columns[3]: int, panda_df.columns[4]: int, panda_df.columns[5]: int, panda_df.columns[6]: int, panda_df.columns[7]: int, panda_df.columns[8]: int, panda_df.columns[9]: int, panda_df.columns[10]: int,\n",
|
282 |
+
" panda_df.columns[11]: int, panda_df.columns[12]: int, panda_df.columns[13]: int, panda_df.columns[14]: int, panda_df.columns[15]: int, panda_df.columns[16]: int, panda_df.columns[17]: int, panda_df.columns[18]: int, panda_df.columns[19]: int, panda_df.columns[20]: int,\n",
|
283 |
+
" panda_df.columns[21]: int, panda_df.columns[22]: int, panda_df.columns[23]: int, panda_df.columns[24]: int, panda_df.columns[25]: int, panda_df.columns[26]: int, panda_df.columns[27]: int, panda_df.columns[28]: int, panda_df.columns[29]: int, panda_df.columns[30]: int,\n",
|
284 |
+
" panda_df.columns[31]: int, panda_df.columns[32]: int, panda_df.columns[33]: int, panda_df.columns[34]: int, panda_df.columns[35]: int, panda_df.columns[36]: int, panda_df.columns[37]: int, panda_df.columns[38]: int, panda_df.columns[39]: int, panda_df.columns[40]: int,\n",
|
285 |
+
" panda_df.columns[41]: int, panda_df.columns[42]: int, panda_df.columns[43]: int, panda_df.columns[44]: int, panda_df.columns[45]: int})"
|
286 |
+
]
|
287 |
+
},
|
288 |
+
{
|
289 |
+
"cell_type": "code",
|
290 |
+
"execution_count": 40,
|
291 |
+
"metadata": {},
|
292 |
+
"outputs": [
|
293 |
+
{
|
294 |
+
"name": "stdout",
|
295 |
+
"output_type": "stream",
|
296 |
+
"text": [
|
297 |
+
"<class 'pandas.core.frame.DataFrame'>\n",
|
298 |
+
"RangeIndex: 2 entries, 0 to 1\n",
|
299 |
+
"Data columns (total 46 columns):\n",
|
300 |
+
" # Column Non-Null Count Dtype \n",
|
301 |
+
"--- ------ -------------- ----- \n",
|
302 |
+
" 0 Carimbo de data/hora 2 non-null object\n",
|
303 |
+
" 1 Endereço de e-mail 2 non-null object\n",
|
304 |
+
" 2 Vejo-me como alguém que É conversador, comunicativo 2 non-null int32 \n",
|
305 |
+
" 3 Vejo-me como alguém que Tende a ser crítico com os outros 2 non-null int32 \n",
|
306 |
+
" 4 Vejo-me como alguém que É minucioso e detalhista no trabalho 2 non-null int32 \n",
|
307 |
+
" 5 Vejo-me como alguém que É depressivo, triste 2 non-null int32 \n",
|
308 |
+
" 6 Vejo-me como alguém que É original, tem sempre novas ideias 2 non-null int32 \n",
|
309 |
+
" 7 Vejo-me como alguém que É reservado 2 non-null int32 \n",
|
310 |
+
" 8 Vejo-me como alguém que É prestativo e ajuda os outros 2 non-null int32 \n",
|
311 |
+
" 9 Vejo-me como alguém que Pode ser um tanto descuidado 2 non-null int32 \n",
|
312 |
+
" 10 Vejo-me como alguém que É relaxado, controla bem o stress 2 non-null int32 \n",
|
313 |
+
" 11 Vejo-me como alguém que É curioso sobre muitas coisas diferentes 2 non-null int32 \n",
|
314 |
+
" 12 Vejo-me como alguém que É cheio de energia 2 non-null int32 \n",
|
315 |
+
" 13 Vejo-me como alguém que Começa discussões, disputas, com os outros 2 non-null int32 \n",
|
316 |
+
" 14 Vejo-me como alguém que É um trabalhador de confiança 2 non-null int32 \n",
|
317 |
+
" 15 Vejo-me como alguém que Fica tenso com frequência 2 non-null int32 \n",
|
318 |
+
" 16 Vejo-me como alguém que É engenhoso, alguém que gosta de analisar profundamente as coisas 2 non-null int32 \n",
|
319 |
+
" 17 Vejo-me como alguém que Gera muito entusiasmo 2 non-null int32 \n",
|
320 |
+
" 18 Vejo-me como alguém que Tem capacidade de perdoar, perdoa facilmente 2 non-null int32 \n",
|
321 |
+
" 19 Vejo-me como alguém que Tende a ser desorganizado 2 non-null int32 \n",
|
322 |
+
" 20 Vejo-me como alguém que Preocupa-se muito com tudo 2 non-null int32 \n",
|
323 |
+
" 21 Vejo-me como alguém que Tem uma imaginação fértil 2 non-null int32 \n",
|
324 |
+
" 22 Vejo-me como alguém que Tende a ser quieto, calado 2 non-null int32 \n",
|
325 |
+
" 23 Vejo-me como alguém que É geralmente confiável 2 non-null int32 \n",
|
326 |
+
" 24 Vejo-me como alguém que Tende a ser preguiçoso 2 non-null int32 \n",
|
327 |
+
" 25 Vejo-me como alguém que É emocionalmente estável, não se altera facilmente 2 non-null int32 \n",
|
328 |
+
" 26 Vejo-me como alguém que É inventivo, criativo 2 non-null int32 \n",
|
329 |
+
" 27 Vejo-me como alguém que É assertivo, não teme expressar o que sente 2 non-null int32 \n",
|
330 |
+
" 28 Vejo-me como alguém que Às vezes é frio e distante 2 non-null int32 \n",
|
331 |
+
" 29 Vejo-me como alguém que Insiste até concluir a tarefa ou o trabalho 2 non-null int32 \n",
|
332 |
+
" 30 Vejo-me como alguém que É temperamental, muda de humor facilmente 2 non-null int32 \n",
|
333 |
+
" 31 Vejo-me como alguém que Valoriza o artístico, o estético 2 non-null int32 \n",
|
334 |
+
" 32 Vejo-me como alguém que É, às vezes, tímido e inibido 2 non-null int32 \n",
|
335 |
+
" 33 Vejo-me como alguém que É amável, tem consideração pelos outros 2 non-null int32 \n",
|
336 |
+
" 34 Vejo-me como alguém que Faz as coisas com eficiência 2 non-null int32 \n",
|
337 |
+
" 35 Vejo-me como alguém que Mantém-se calmo nas situações de tensão 2 non-null int32 \n",
|
338 |
+
" 36 Vejo-me como alguém que Prefere trabalho rotineiro 2 non-null int32 \n",
|
339 |
+
" 37 Vejo-me como alguém que É sociável, extrovertido 2 non-null int32 \n",
|
340 |
+
" 38 Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros 2 non-null int32 \n",
|
341 |
+
" 39 Vejo-me como alguém que Faz planos e segue-os à risca 2 non-null int32 \n",
|
342 |
+
" 40 Vejo-me como alguém que Fica nervoso facilmente 2 non-null int32 \n",
|
343 |
+
" 41 Vejo-me como alguém que Gosta de refletir, brincar com as ideias 2 non-null int32 \n",
|
344 |
+
" 42 Vejo-me como alguém que Tem poucos interesses artísticos 2 non-null int32 \n",
|
345 |
+
" 43 Vejo-me como alguém que Gosta de cooperar com os outros 2 non-null int32 \n",
|
346 |
+
" 44 Vejo-me como alguém que É facilmente distraído 2 non-null int32 \n",
|
347 |
+
" 45 Vejo-me como alguém que É sofisticado em artes, música ou literatura 2 non-null int32 \n",
|
348 |
+
"dtypes: int32(44), object(2)\n",
|
349 |
+
"memory usage: 512.0+ bytes\n"
|
350 |
+
]
|
351 |
+
}
|
352 |
+
],
|
353 |
+
"source": [
|
354 |
+
"panda_df.info()"
|
355 |
+
]
|
356 |
+
},
|
357 |
+
{
|
358 |
+
"cell_type": "code",
|
359 |
+
"execution_count": null,
|
360 |
+
"metadata": {},
|
361 |
+
"outputs": [
|
362 |
+
{
|
363 |
+
"data": {
|
364 |
+
"text/html": [
|
365 |
+
"<div>\n",
|
366 |
+
"<style scoped>\n",
|
367 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
368 |
+
" vertical-align: middle;\n",
|
369 |
+
" }\n",
|
370 |
+
"\n",
|
371 |
+
" .dataframe tbody tr th {\n",
|
372 |
+
" vertical-align: top;\n",
|
373 |
+
" }\n",
|
374 |
+
"\n",
|
375 |
+
" .dataframe thead th {\n",
|
376 |
+
" text-align: right;\n",
|
377 |
+
" }\n",
|
378 |
+
"</style>\n",
|
379 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
380 |
+
" <thead>\n",
|
381 |
+
" <tr style=\"text-align: right;\">\n",
|
382 |
+
" <th></th>\n",
|
383 |
+
" <th>Carimbo de data/hora</th>\n",
|
384 |
+
" <th>Endereço de e-mail</th>\n",
|
385 |
+
" <th>Vejo-me como alguém que É conversador, comunicativo</th>\n",
|
386 |
+
" <th>Vejo-me como alguém que Tende a ser crítico com os outros</th>\n",
|
387 |
+
" <th>Vejo-me como alguém que É minucioso e detalhista no trabalho</th>\n",
|
388 |
+
" <th>Vejo-me como alguém que É depressivo, triste</th>\n",
|
389 |
+
" <th>Vejo-me como alguém que É original, tem sempre novas ideias</th>\n",
|
390 |
+
" <th>Vejo-me como alguém que É reservado</th>\n",
|
391 |
+
" <th>Vejo-me como alguém que É prestativo e ajuda os outros</th>\n",
|
392 |
+
" <th>Vejo-me como alguém que Pode ser um tanto descuidado</th>\n",
|
393 |
+
" <th>...</th>\n",
|
394 |
+
" <th>Vejo-me como alguém que Prefere trabalho rotineiro</th>\n",
|
395 |
+
" <th>Vejo-me como alguém que É sociável, extrovertido</th>\n",
|
396 |
+
" <th>Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros</th>\n",
|
397 |
+
" <th>Vejo-me como alguém que Faz planos e segue-os à risca</th>\n",
|
398 |
+
" <th>Vejo-me como alguém que Fica nervoso facilmente</th>\n",
|
399 |
+
" <th>Vejo-me como alguém que Gosta de refletir, brincar com as ideias</th>\n",
|
400 |
+
" <th>Vejo-me como alguém que Tem poucos interesses artísticos</th>\n",
|
401 |
+
" <th>Vejo-me como alguém que Gosta de cooperar com os outros</th>\n",
|
402 |
+
" <th>Vejo-me como alguém que É facilmente distraído</th>\n",
|
403 |
+
" <th>Vejo-me como alguém que É sofisticado em artes, música ou literatura</th>\n",
|
404 |
+
" </tr>\n",
|
405 |
+
" </thead>\n",
|
406 |
+
" <tbody>\n",
|
407 |
+
" <tr>\n",
|
408 |
+
" <th>0</th>\n",
|
409 |
+
" <td>07/10/2023 21:55:06</td>\n",
|
410 |
+
" <td>gisellaneo@gmail.com</td>\n",
|
411 |
+
" <td>1</td>\n",
|
412 |
+
" <td>3</td>\n",
|
413 |
+
" <td>4</td>\n",
|
414 |
+
" <td>3</td>\n",
|
415 |
+
" <td>4</td>\n",
|
416 |
+
" <td>1</td>\n",
|
417 |
+
" <td>4</td>\n",
|
418 |
+
" <td>5</td>\n",
|
419 |
+
" <td>...</td>\n",
|
420 |
+
" <td>4</td>\n",
|
421 |
+
" <td>2</td>\n",
|
422 |
+
" <td>3</td>\n",
|
423 |
+
" <td>2</td>\n",
|
424 |
+
" <td>4</td>\n",
|
425 |
+
" <td>5</td>\n",
|
426 |
+
" <td>1</td>\n",
|
427 |
+
" <td>4</td>\n",
|
428 |
+
" <td>4</td>\n",
|
429 |
+
" <td>4</td>\n",
|
430 |
+
" </tr>\n",
|
431 |
+
" <tr>\n",
|
432 |
+
" <th>1</th>\n",
|
433 |
+
" <td>11/10/2023 13:11:32</td>\n",
|
434 |
+
" <td>jobstern80@gmail.com</td>\n",
|
435 |
+
" <td>3</td>\n",
|
436 |
+
" <td>3</td>\n",
|
437 |
+
" <td>3</td>\n",
|
438 |
+
" <td>3</td>\n",
|
439 |
+
" <td>3</td>\n",
|
440 |
+
" <td>3</td>\n",
|
441 |
+
" <td>3</td>\n",
|
442 |
+
" <td>3</td>\n",
|
443 |
+
" <td>...</td>\n",
|
444 |
+
" <td>3</td>\n",
|
445 |
+
" <td>3</td>\n",
|
446 |
+
" <td>3</td>\n",
|
447 |
+
" <td>3</td>\n",
|
448 |
+
" <td>3</td>\n",
|
449 |
+
" <td>3</td>\n",
|
450 |
+
" <td>3</td>\n",
|
451 |
+
" <td>3</td>\n",
|
452 |
+
" <td>3</td>\n",
|
453 |
+
" <td>3</td>\n",
|
454 |
+
" </tr>\n",
|
455 |
+
" </tbody>\n",
|
456 |
+
"</table>\n",
|
457 |
+
"<p>2 rows × 46 columns</p>\n",
|
458 |
+
"</div>"
|
459 |
+
],
|
460 |
+
"text/plain": [
|
461 |
+
" Carimbo de data/hora Endereço de e-mail \\\n",
|
462 |
+
"0 07/10/2023 21:55:06 gisellaneo@gmail.com \n",
|
463 |
+
"1 11/10/2023 13:11:32 jobstern80@gmail.com \n",
|
464 |
+
"\n",
|
465 |
+
" Vejo-me como alguém que É conversador, comunicativo \\\n",
|
466 |
+
"0 1 \n",
|
467 |
+
"1 3 \n",
|
468 |
+
"\n",
|
469 |
+
" Vejo-me como alguém que Tende a ser crítico com os outros \\\n",
|
470 |
+
"0 3 \n",
|
471 |
+
"1 3 \n",
|
472 |
+
"\n",
|
473 |
+
" Vejo-me como alguém que É minucioso e detalhista no trabalho \\\n",
|
474 |
+
"0 4 \n",
|
475 |
+
"1 3 \n",
|
476 |
+
"\n",
|
477 |
+
" Vejo-me como alguém que É depressivo, triste \\\n",
|
478 |
+
"0 3 \n",
|
479 |
+
"1 3 \n",
|
480 |
+
"\n",
|
481 |
+
" Vejo-me como alguém que É original, tem sempre novas ideias \\\n",
|
482 |
+
"0 4 \n",
|
483 |
+
"1 3 \n",
|
484 |
+
"\n",
|
485 |
+
" Vejo-me como alguém que É reservado \\\n",
|
486 |
+
"0 1 \n",
|
487 |
+
"1 3 \n",
|
488 |
+
"\n",
|
489 |
+
" Vejo-me como alguém que É prestativo e ajuda os outros \\\n",
|
490 |
+
"0 4 \n",
|
491 |
+
"1 3 \n",
|
492 |
+
"\n",
|
493 |
+
" Vejo-me como alguém que Pode ser um tanto descuidado ... \\\n",
|
494 |
+
"0 5 ... \n",
|
495 |
+
"1 3 ... \n",
|
496 |
+
"\n",
|
497 |
+
" Vejo-me como alguém que Prefere trabalho rotineiro \\\n",
|
498 |
+
"0 4 \n",
|
499 |
+
"1 3 \n",
|
500 |
+
"\n",
|
501 |
+
" Vejo-me como alguém que É sociável, extrovertido \\\n",
|
502 |
+
"0 2 \n",
|
503 |
+
"1 3 \n",
|
504 |
+
"\n",
|
505 |
+
" Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros \\\n",
|
506 |
+
"0 3 \n",
|
507 |
+
"1 3 \n",
|
508 |
+
"\n",
|
509 |
+
" Vejo-me como alguém que Faz planos e segue-os à risca \\\n",
|
510 |
+
"0 2 \n",
|
511 |
+
"1 3 \n",
|
512 |
+
"\n",
|
513 |
+
" Vejo-me como alguém que Fica nervoso facilmente \\\n",
|
514 |
+
"0 4 \n",
|
515 |
+
"1 3 \n",
|
516 |
+
"\n",
|
517 |
+
" Vejo-me como alguém que Gosta de refletir, brincar com as ideias \\\n",
|
518 |
+
"0 5 \n",
|
519 |
+
"1 3 \n",
|
520 |
+
"\n",
|
521 |
+
" Vejo-me como alguém que Tem poucos interesses artísticos \\\n",
|
522 |
+
"0 1 \n",
|
523 |
+
"1 3 \n",
|
524 |
+
"\n",
|
525 |
+
" Vejo-me como alguém que Gosta de cooperar com os outros \\\n",
|
526 |
+
"0 4 \n",
|
527 |
+
"1 3 \n",
|
528 |
+
"\n",
|
529 |
+
" Vejo-me como alguém que É facilmente distraído \\\n",
|
530 |
+
"0 4 \n",
|
531 |
+
"1 3 \n",
|
532 |
+
"\n",
|
533 |
+
" Vejo-me como alguém que É sofisticado em artes, música ou literatura \n",
|
534 |
+
"0 4 \n",
|
535 |
+
"1 3 \n",
|
536 |
+
"\n",
|
537 |
+
"[2 rows x 46 columns]"
|
538 |
+
]
|
539 |
+
},
|
540 |
+
"execution_count": 34,
|
541 |
+
"metadata": {},
|
542 |
+
"output_type": "execute_result"
|
543 |
+
}
|
544 |
+
],
|
545 |
+
"source": [
|
546 |
+
"panda_df"
|
547 |
+
]
|
548 |
+
},
|
549 |
+
{
|
550 |
+
"cell_type": "code",
|
551 |
+
"execution_count": 35,
|
552 |
+
"metadata": {},
|
553 |
+
"outputs": [
|
554 |
+
{
|
555 |
+
"name": "stdout",
|
556 |
+
"output_type": "stream",
|
557 |
+
"text": [
|
558 |
+
"<class 'pandas.core.frame.DataFrame'>\n",
|
559 |
+
"RangeIndex: 2 entries, 0 to 1\n",
|
560 |
+
"Data columns (total 46 columns):\n",
|
561 |
+
" # Column Non-Null Count Dtype \n",
|
562 |
+
"--- ------ -------------- ----- \n",
|
563 |
+
" 0 Carimbo de data/hora 2 non-null object\n",
|
564 |
+
" 1 Endereço de e-mail 2 non-null object\n",
|
565 |
+
" 2 Vejo-me como alguém que É conversador, comunicativo 2 non-null int32 \n",
|
566 |
+
" 3 Vejo-me como alguém que Tende a ser crítico com os outros 2 non-null int32 \n",
|
567 |
+
" 4 Vejo-me como alguém que É minucioso e detalhista no trabalho 2 non-null object\n",
|
568 |
+
" 5 Vejo-me como alguém que É depressivo, triste 2 non-null object\n",
|
569 |
+
" 6 Vejo-me como alguém que É original, tem sempre novas ideias 2 non-null object\n",
|
570 |
+
" 7 Vejo-me como alguém que É reservado 2 non-null object\n",
|
571 |
+
" 8 Vejo-me como alguém que É prestativo e ajuda os outros 2 non-null object\n",
|
572 |
+
" 9 Vejo-me como alguém que Pode ser um tanto descuidado 2 non-null object\n",
|
573 |
+
" 10 Vejo-me como alguém que É relaxado, controla bem o stress 2 non-null object\n",
|
574 |
+
" 11 Vejo-me como alguém que É curioso sobre muitas coisas diferentes 2 non-null object\n",
|
575 |
+
" 12 Vejo-me como alguém que É cheio de energia 2 non-null object\n",
|
576 |
+
" 13 Vejo-me como alguém que Começa discussões, disputas, com os outros 2 non-null object\n",
|
577 |
+
" 14 Vejo-me como alguém que É um trabalhador de confiança 2 non-null object\n",
|
578 |
+
" 15 Vejo-me como alguém que Fica tenso com frequência 2 non-null object\n",
|
579 |
+
" 16 Vejo-me como alguém que É engenhoso, alguém que gosta de analisar profundamente as coisas 2 non-null object\n",
|
580 |
+
" 17 Vejo-me como alguém que Gera muito entusiasmo 2 non-null object\n",
|
581 |
+
" 18 Vejo-me como alguém que Tem capacidade de perdoar, perdoa facilmente 2 non-null object\n",
|
582 |
+
" 19 Vejo-me como alguém que Tende a ser desorganizado 2 non-null object\n",
|
583 |
+
" 20 Vejo-me como alguém que Preocupa-se muito com tudo 2 non-null object\n",
|
584 |
+
" 21 Vejo-me como alguém que Tem uma imaginação fértil 2 non-null object\n",
|
585 |
+
" 22 Vejo-me como alguém que Tende a ser quieto, calado 2 non-null object\n",
|
586 |
+
" 23 Vejo-me como alguém que É geralmente confiável 2 non-null object\n",
|
587 |
+
" 24 Vejo-me como alguém que Tende a ser preguiçoso 2 non-null object\n",
|
588 |
+
" 25 Vejo-me como alguém que É emocionalmente estável, não se altera facilmente 2 non-null object\n",
|
589 |
+
" 26 Vejo-me como alguém que É inventivo, criativo 2 non-null object\n",
|
590 |
+
" 27 Vejo-me como alguém que É assertivo, não teme expressar o que sente 2 non-null object\n",
|
591 |
+
" 28 Vejo-me como alguém que Às vezes é frio e distante 2 non-null object\n",
|
592 |
+
" 29 Vejo-me como alguém que Insiste até concluir a tarefa ou o trabalho 2 non-null object\n",
|
593 |
+
" 30 Vejo-me como alguém que É temperamental, muda de humor facilmente 2 non-null object\n",
|
594 |
+
" 31 Vejo-me como alguém que Valoriza o artístico, o estético 2 non-null object\n",
|
595 |
+
" 32 Vejo-me como alguém que É, às vezes, tímido e inibido 2 non-null object\n",
|
596 |
+
" 33 Vejo-me como alguém que É amável, tem consideração pelos outros 2 non-null object\n",
|
597 |
+
" 34 Vejo-me como alguém que Faz as coisas com eficiência 2 non-null object\n",
|
598 |
+
" 35 Vejo-me como alguém que Mantém-se calmo nas situações de tensão 2 non-null object\n",
|
599 |
+
" 36 Vejo-me como alguém que Prefere trabalho rotineiro 2 non-null object\n",
|
600 |
+
" 37 Vejo-me como alguém que É sociável, extrovertido 2 non-null object\n",
|
601 |
+
" 38 Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros 2 non-null object\n",
|
602 |
+
" 39 Vejo-me como alguém que Faz planos e segue-os à risca 2 non-null object\n",
|
603 |
+
" 40 Vejo-me como alguém que Fica nervoso facilmente 2 non-null object\n",
|
604 |
+
" 41 Vejo-me como alguém que Gosta de refletir, brincar com as ideias 2 non-null object\n",
|
605 |
+
" 42 Vejo-me como alguém que Tem poucos interesses artísticos 2 non-null object\n",
|
606 |
+
" 43 Vejo-me como alguém que Gosta de cooperar com os outros 2 non-null object\n",
|
607 |
+
" 44 Vejo-me como alguém que É facilmente distraído 2 non-null object\n",
|
608 |
+
" 45 Vejo-me como alguém que É sofisticado em artes, música ou literatura 2 non-null object\n",
|
609 |
+
"dtypes: int32(2), object(44)\n",
|
610 |
+
"memory usage: 848.0+ bytes\n"
|
611 |
+
]
|
612 |
+
}
|
613 |
+
],
|
614 |
+
"source": [
|
615 |
+
"panda_df.info()"
|
616 |
+
]
|
617 |
+
},
|
618 |
+
{
|
619 |
+
"cell_type": "code",
|
620 |
+
"execution_count": 32,
|
621 |
+
"metadata": {},
|
622 |
+
"outputs": [
|
623 |
+
{
|
624 |
+
"data": {
|
625 |
+
"text/html": [
|
626 |
+
"<div>\n",
|
627 |
+
"<style scoped>\n",
|
628 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
629 |
+
" vertical-align: middle;\n",
|
630 |
+
" }\n",
|
631 |
+
"\n",
|
632 |
+
" .dataframe tbody tr th {\n",
|
633 |
+
" vertical-align: top;\n",
|
634 |
+
" }\n",
|
635 |
+
"\n",
|
636 |
+
" .dataframe thead th {\n",
|
637 |
+
" text-align: right;\n",
|
638 |
+
" }\n",
|
639 |
+
"</style>\n",
|
640 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
641 |
+
" <thead>\n",
|
642 |
+
" <tr style=\"text-align: right;\">\n",
|
643 |
+
" <th></th>\n",
|
644 |
+
" <th>Carimbo de data/hora</th>\n",
|
645 |
+
" <th>Endereço de e-mail</th>\n",
|
646 |
+
" <th>Vejo-me como alguém que É conversador, comunicativo</th>\n",
|
647 |
+
" <th>Vejo-me como alguém que Tende a ser crítico com os outros</th>\n",
|
648 |
+
" <th>Vejo-me como alguém que É minucioso e detalhista no trabalho</th>\n",
|
649 |
+
" <th>Vejo-me como alguém que É depressivo, triste</th>\n",
|
650 |
+
" <th>Vejo-me como alguém que É original, tem sempre novas ideias</th>\n",
|
651 |
+
" <th>Vejo-me como alguém que É reservado</th>\n",
|
652 |
+
" <th>Vejo-me como alguém que É prestativo e ajuda os outros</th>\n",
|
653 |
+
" <th>Vejo-me como alguém que Pode ser um tanto descuidado</th>\n",
|
654 |
+
" <th>...</th>\n",
|
655 |
+
" <th>Vejo-me como alguém que Prefere trabalho rotineiro</th>\n",
|
656 |
+
" <th>Vejo-me como alguém que É sociável, extrovertido</th>\n",
|
657 |
+
" <th>Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros</th>\n",
|
658 |
+
" <th>Vejo-me como alguém que Faz planos e segue-os à risca</th>\n",
|
659 |
+
" <th>Vejo-me como alguém que Fica nervoso facilmente</th>\n",
|
660 |
+
" <th>Vejo-me como alguém que Gosta de refletir, brincar com as ideias</th>\n",
|
661 |
+
" <th>Vejo-me como alguém que Tem poucos interesses artísticos</th>\n",
|
662 |
+
" <th>Vejo-me como alguém que Gosta de cooperar com os outros</th>\n",
|
663 |
+
" <th>Vejo-me como alguém que É facilmente distraído</th>\n",
|
664 |
+
" <th>Vejo-me como alguém que É sofisticado em artes, música ou literatura</th>\n",
|
665 |
+
" </tr>\n",
|
666 |
+
" </thead>\n",
|
667 |
+
" <tbody>\n",
|
668 |
+
" <tr>\n",
|
669 |
+
" <th>0</th>\n",
|
670 |
+
" <td>07/10/2023 21:55:06</td>\n",
|
671 |
+
" <td>gisellaneo@gmail.com</td>\n",
|
672 |
+
" <td>1</td>\n",
|
673 |
+
" <td>3</td>\n",
|
674 |
+
" <td>4</td>\n",
|
675 |
+
" <td>3</td>\n",
|
676 |
+
" <td>4</td>\n",
|
677 |
+
" <td>1</td>\n",
|
678 |
+
" <td>4</td>\n",
|
679 |
+
" <td>5</td>\n",
|
680 |
+
" <td>...</td>\n",
|
681 |
+
" <td>4</td>\n",
|
682 |
+
" <td>2</td>\n",
|
683 |
+
" <td>3</td>\n",
|
684 |
+
" <td>2</td>\n",
|
685 |
+
" <td>4</td>\n",
|
686 |
+
" <td>5</td>\n",
|
687 |
+
" <td>1</td>\n",
|
688 |
+
" <td>4</td>\n",
|
689 |
+
" <td>4</td>\n",
|
690 |
+
" <td>4</td>\n",
|
691 |
+
" </tr>\n",
|
692 |
+
" <tr>\n",
|
693 |
+
" <th>1</th>\n",
|
694 |
+
" <td>11/10/2023 13:11:32</td>\n",
|
695 |
+
" <td>jobstern80@gmail.com</td>\n",
|
696 |
+
" <td>3</td>\n",
|
697 |
+
" <td>3</td>\n",
|
698 |
+
" <td>3</td>\n",
|
699 |
+
" <td>3</td>\n",
|
700 |
+
" <td>3</td>\n",
|
701 |
+
" <td>3</td>\n",
|
702 |
+
" <td>3</td>\n",
|
703 |
+
" <td>3</td>\n",
|
704 |
+
" <td>...</td>\n",
|
705 |
+
" <td>3</td>\n",
|
706 |
+
" <td>3</td>\n",
|
707 |
+
" <td>3</td>\n",
|
708 |
+
" <td>3</td>\n",
|
709 |
+
" <td>3</td>\n",
|
710 |
+
" <td>3</td>\n",
|
711 |
+
" <td>3</td>\n",
|
712 |
+
" <td>3</td>\n",
|
713 |
+
" <td>3</td>\n",
|
714 |
+
" <td>3</td>\n",
|
715 |
+
" </tr>\n",
|
716 |
+
" </tbody>\n",
|
717 |
+
"</table>\n",
|
718 |
+
"<p>2 rows × 46 columns</p>\n",
|
719 |
+
"</div>"
|
720 |
+
],
|
721 |
+
"text/plain": [
|
722 |
+
" Carimbo de data/hora Endereço de e-mail \\\n",
|
723 |
+
"0 07/10/2023 21:55:06 gisellaneo@gmail.com \n",
|
724 |
+
"1 11/10/2023 13:11:32 jobstern80@gmail.com \n",
|
725 |
+
"\n",
|
726 |
+
" Vejo-me como alguém que É conversador, comunicativo \\\n",
|
727 |
+
"0 1 \n",
|
728 |
+
"1 3 \n",
|
729 |
+
"\n",
|
730 |
+
" Vejo-me como alguém que Tende a ser crítico com os outros \\\n",
|
731 |
+
"0 3 \n",
|
732 |
+
"1 3 \n",
|
733 |
+
"\n",
|
734 |
+
" Vejo-me como alguém que É minucioso e detalhista no trabalho \\\n",
|
735 |
+
"0 4 \n",
|
736 |
+
"1 3 \n",
|
737 |
+
"\n",
|
738 |
+
" Vejo-me como alguém que É depressivo, triste \\\n",
|
739 |
+
"0 3 \n",
|
740 |
+
"1 3 \n",
|
741 |
+
"\n",
|
742 |
+
" Vejo-me como alguém que É original, tem sempre novas ideias \\\n",
|
743 |
+
"0 4 \n",
|
744 |
+
"1 3 \n",
|
745 |
+
"\n",
|
746 |
+
" Vejo-me como alguém que É reservado \\\n",
|
747 |
+
"0 1 \n",
|
748 |
+
"1 3 \n",
|
749 |
+
"\n",
|
750 |
+
" Vejo-me como alguém que É prestativo e ajuda os outros \\\n",
|
751 |
+
"0 4 \n",
|
752 |
+
"1 3 \n",
|
753 |
+
"\n",
|
754 |
+
" Vejo-me como alguém que Pode ser um tanto descuidado ... \\\n",
|
755 |
+
"0 5 ... \n",
|
756 |
+
"1 3 ... \n",
|
757 |
+
"\n",
|
758 |
+
" Vejo-me como alguém que Prefere trabalho rotineiro \\\n",
|
759 |
+
"0 4 \n",
|
760 |
+
"1 3 \n",
|
761 |
+
"\n",
|
762 |
+
" Vejo-me como alguém que É sociável, extrovertido \\\n",
|
763 |
+
"0 2 \n",
|
764 |
+
"1 3 \n",
|
765 |
+
"\n",
|
766 |
+
" Vejo-me como alguém que É, às vezes, rude (grosseiro) com os outros \\\n",
|
767 |
+
"0 3 \n",
|
768 |
+
"1 3 \n",
|
769 |
+
"\n",
|
770 |
+
" Vejo-me como alguém que Faz planos e segue-os à risca \\\n",
|
771 |
+
"0 2 \n",
|
772 |
+
"1 3 \n",
|
773 |
+
"\n",
|
774 |
+
" Vejo-me como alguém que Fica nervoso facilmente \\\n",
|
775 |
+
"0 4 \n",
|
776 |
+
"1 3 \n",
|
777 |
+
"\n",
|
778 |
+
" Vejo-me como alguém que Gosta de refletir, brincar com as ideias \\\n",
|
779 |
+
"0 5 \n",
|
780 |
+
"1 3 \n",
|
781 |
+
"\n",
|
782 |
+
" Vejo-me como alguém que Tem poucos interesses artísticos \\\n",
|
783 |
+
"0 1 \n",
|
784 |
+
"1 3 \n",
|
785 |
+
"\n",
|
786 |
+
" Vejo-me como alguém que Gosta de cooperar com os outros \\\n",
|
787 |
+
"0 4 \n",
|
788 |
+
"1 3 \n",
|
789 |
+
"\n",
|
790 |
+
" Vejo-me como alguém que É facilmente distraído \\\n",
|
791 |
+
"0 4 \n",
|
792 |
+
"1 3 \n",
|
793 |
+
"\n",
|
794 |
+
" Vejo-me como alguém que É sofisticado em artes, música ou literatura \n",
|
795 |
+
"0 4 \n",
|
796 |
+
"1 3 \n",
|
797 |
+
"\n",
|
798 |
+
"[2 rows x 46 columns]"
|
799 |
+
]
|
800 |
+
},
|
801 |
+
"execution_count": 32,
|
802 |
+
"metadata": {},
|
803 |
+
"output_type": "execute_result"
|
804 |
+
}
|
805 |
+
],
|
806 |
+
"source": [
|
807 |
+
"panda_df"
|
808 |
+
]
|
809 |
+
}
|
810 |
+
],
|
811 |
+
"metadata": {
|
812 |
+
"kernelspec": {
|
813 |
+
"display_name": "Python 3",
|
814 |
+
"language": "python",
|
815 |
+
"name": "python3"
|
816 |
+
},
|
817 |
+
"language_info": {
|
818 |
+
"codemirror_mode": {
|
819 |
+
"name": "ipython",
|
820 |
+
"version": 3
|
821 |
+
},
|
822 |
+
"file_extension": ".py",
|
823 |
+
"mimetype": "text/x-python",
|
824 |
+
"name": "python",
|
825 |
+
"nbconvert_exporter": "python",
|
826 |
+
"pygments_lexer": "ipython3",
|
827 |
+
"version": "3.10.11"
|
828 |
+
}
|
829 |
+
},
|
830 |
+
"nbformat": 4,
|
831 |
+
"nbformat_minor": 2
|
832 |
+
}
|
datasets/dicas.csv
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
id,tipo,titulo,constructo,dicas
|
2 |
+
1,"Escalas de Motivação","Motivação","Interesse (Orientação a metas intrínsecas, Orientação a metas extrínsecas, Valorização da atividade e Controle do aprendizado)","Leia rapidamente a lista com os conteúdos do seu material didático ou o programa da disciplina. / Faça uma lista dos três tópicos que mais te interessam e dos três tópicos que menos te interessam. / Preste atenção a esses tópicos em particular. / O que nos três tópicos mais interessantes faz com que você goste tanto deles? / O que faz os três outros tópicos desinteressantes? / Você encontra alguma característica dos três tópicos mais interessantes nos tópicos menos interessantes? / Se você conseguir identificar o quê, nos três tópicos mais interessantes, faz com que você goste deles, talvez você seja capaz de aplicar o que encontrou aos três menos interessantes. / E talvez você descubra que os tópicos desinteressantes não são tão desinteressantes assim!"
|
3 |
+
2,"Escalas de Motivação","Motivação","Expectativa de Sucesso","Avalie como você aborda as tarefas da disciplina sob diferentes pontos de vista. / Descreva a eficácia e a ineficácia da sua abordagem a partir do seu ponto de vista. / Imagine como um colega de classe avaliaria a sua abordagem. / Ao analisar a forma como você lida com uma tarefa, você pode ser capaz de descobrir o que está fazendo certo e o que está fazendo errado e então pode mudar a sua abordagem. / A sua confiança em ter um bom desempenho pode aumentar ao compreender melhor a forma como você estuda, o que funciona e o que não funciona."
|
4 |
+
3,"Escalas de Motivação","Motivação","Ansiedade em testes","Desenvolver boas habilidades de estudo resulta em menor ansiedade. / Prepare-se bem para as aulas e tente terminar as tarefas pontualmente. / Não espere até o último minuto para realizar as tarefas ou para se preparar para uma prova. / Isso ajudará você a se tornar confiante em situações de teste e talvez reduza a sua ansiedade. / Ao fazer uma prova, concentre-se em um item de cada vez; se estiver com dificuldades em uma questão, siga em frente e volte a essa questão depois. / Lembre-se de que se você está bem preparado; se não conseguir responder algumas questões, tudo bem, você ainda será capaz de responder as outras."
|
5 |
+
4,"Escalas de Estratégias de Aprendizagem","Estratégia Cognitiva","Ensaio (memorização)","Liste os termos e tópicos importantes da disciplina. / Defina-os e os repita em voz alta. / Divida essa lista em listas menores compostas de termos que se relacionam. / Construa imagens ou rimas que te ajudarão a lembrar dessas listas. / Faça perguntas que ajudarão você a avaliar se você se lembra delas ou não."
|
6 |
+
5,"Escalas de Estratégias de Aprendizagem","Estratégia Cognitiva","Elaboração","Parafraseie e resuma as informações importantes. / Use suas próprias palavras para descrever o conteúdo visto durante as aulas ou em leituras específicas. / Faça de conta que você é o professor e está tentando explicar a matéria para os alunos. / Tente descobrir como cada tópico da matéria se relaciona com os outros. / Quais são as relações entre o que você ouviu em sala de aula, conversou em discussões e leu no livro?"
|
7 |
+
6,"Escalas de Estratégias de Aprendizagem","Estratégia Cognitiva","Organização","Faça um resumo do seu material da disciplina e identifique onde seu texto e a aula se sobrepõem e não se sobrepõem. / Isso vai dar a você um ponto departida para estabelecer conexões entre ideias apresentadas em dois contextos diferentes. / Faça gráficos, diagramas ou tabelas dos conceitos importantes. / Organogramas ou diagramas de árvore geralmente são bastante úteis para ajudar a entender como as ideias se reúnem diferentemente."
|
8 |
+
7,"Escalas de Estratégias de Aprendizagem","Autorregulação Metacognitiva","Autorregulação Metacognitiva","Leia rapidamente seu material antes de começar a ver como ele está organizado. / Olhe para os títulos e subtítulos do texto para ter uma ideia de como as coisas se relacionam umas com as outras. / Enquanto estiver lendo, faça perguntas a si mesmo sobre o parágrafo que acabou de ler e escreva palavras-chave nas margens do livro ou em um caderno. / Tente determinar quais conceitos você não compreende bem. / Apesar de esse método demorar bastante no início, você tem mais chance de se lembrar do que leu. / Isso economizará seu tempo depois quando estudar para a prova."
|
9 |
+
8,"Escalas de Estratégias de Aprendizagem","Administração dos estudos","Tempo e Ambiente de Estudo","Acompanhe o que você faz no seu tempo de estudo durante uma semana. / Escreva seus objetivos para cada período de estudo e anote o que você realmente cumpriu durante esse tempo. / Analise o resultado ao final de uma semana. / Talvez você precise mudar seu local de estudo, o período de estudo ou com quem você estuda. / Tente criar uma agenda que funcione bem para você."
|
10 |
+
9,"Escalas de Estratégias de Aprendizagem","Administração dos estudos","Administração de Esforços","Faça uma lista dos tópicos que você deixa para estudar no outro dia. / Tente analisar por que você adia estudar esses tópicos conversando com outros alunos. / Ao falar com eles, talvez você considere uma abordagem que te ajude a agir mais rapidamente ao invés de demorar a estudar o material."
|
datasets/mslq.csv
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
id_questao,tipo,constructo,dsc_questao
|
2 |
+
"q1","Escalas de Motivacao","Orientação a Metas Intrínsecas","Prefiro um trabalho de classe desafiador em que eu possa aprender coisas novas."
|
3 |
+
"q2","Escalas de Motivacao","Orientação a Metas Intrínsecas","Costumo escolher tópicos de assuntos dos quais aprenderei algo, mesmo que exijam mais trabalhos."
|
4 |
+
"q3","Escalas de Motivacao","Orientação a Metas Extrínsecas","Comparado com outros alunos desta turma, espero ter sucesso."
|
5 |
+
"q4","Escalas de Motivacao","Orientação a Metas Extrínsecas","Eu acho que vou receber uma boa nota nesta aula."
|
6 |
+
"q5","Escalas de Motivacao","Valorização da Atividade","É importante para mim aprender o que está sendo ensinado na aula."
|
7 |
+
"q6","Escalas de Motivacao","Valorização da Atividade","Gosto do que estou aprendendo na aula."
|
8 |
+
"q7","Escalas de Motivacao","Valorização da Atividade","Acho que vou poder usar o que aprendi nesta aula em outras aulas."
|
9 |
+
"q8","Escalas de Motivacao","Valorização da Atividade","Acho que o que estou aprendendo nesta aula é útil para meu aprendizado."
|
10 |
+
"q9","Escalas de Motivacao","Valorização da Atividade","Eu acho que o que estamos aprendendo nesta aula é interessante."
|
11 |
+
"q10","Escalas de Motivacao","Valorização da Atividade","Entender esse assunto é importante para mim."
|
12 |
+
"q11","Escalas de Motivacao","Controle do Aprendizado","Comparado com os outros alunos, acho que sou um bom aluno."
|
13 |
+
"q12","Escalas de Motivacao","Controle do Aprendizado","Minhas habilidades de estudo são excelentes em comparação com outras pessoas nesta classe."
|
14 |
+
"q13","Escalas de Motivacao","Controle do Aprendizado","Comparado com outros alunos desta turma, acho que sei bastante sobre o conteúdo."
|
15 |
+
"q14","Escalas de Motivacao","Autoeficácia para Aprendizado","Estou certo de que posso entender as ideias ensinadas neste curso."
|
16 |
+
"q15","Escalas de Motivacao","Autoeficácia para Aprendizado","Espero me sair muito bem nesta aula."
|
17 |
+
"q16","Escalas de Motivacao","Autoeficácia para Aprendizado","Tenho certeza de que posso fazer um excelente trabalho nos problemas e tarefas atribuídos a esta classe."
|
18 |
+
"q17","Escalas de Motivacao","Autoeficácia para Aprendizado","Eu sei que poderei aprender o material para esta aula."
|
19 |
+
"q18","Escalas de Motivacao","Ansiedade em Testes","Fico tão nervoso durante uma prova que não consigo lembrar dos assuntos que aprendi."
|
20 |
+
"q19","Escalas de Motivacao","Ansiedade em Testes","Sinto uma sensação desconfortável e chateada quando faço uma prova."
|
21 |
+
"q20","Escalas de Motivacao","Ansiedade em Testes","Preocupo-me muito com testes."
|
22 |
+
"q21","Escalas de Motivacao","Ansiedade em Testes","Quando faço uma prova, penso em como estou mal."
|
23 |
+
"q22","Escalas de Motivacao","Ansiedade em Testes","Quando estudo para uma prova, tento lembrar o máximo de fatos que consigo."
|
24 |
+
"q23","Escalas de Estratégias de aprendizagem","Ensaio (memorização)","Quando faço a lição de casa, tento lembrar o que o professor disse em sala de aula para que eu possa responder as perguntas corretamente."
|
25 |
+
"q24","Escalas de Estratégias de aprendizagem","Ensaio (memorização)","Trabalho em exercícios práticos e respondo às perguntas do final do capítulo, mesmo quando não precise."
|
26 |
+
"q25","Escalas de Estratégias de aprendizagem","Ensaio (memorização)","Quando estudo para uma prova, pratico, repetindo os fatos importantes repetidamente para eu mesmo."
|
27 |
+
"q26","Escalas de Estratégias de aprendizagem","Ensaio (memorização)","Uso o que aprendi com as tarefas de casa antigas e o livro didático para fazer novas atribuições."
|
28 |
+
"q27","Escalas de Estratégias de aprendizagem","Ensaio (memorização)","Quando leio os materiais para esta aula, digo repetidamente as palavras para mim mesmo para que me ajude a lembrar."
|
29 |
+
"q28","Escalas de Estratégias de aprendizagem","Elaboração","Quando estudo para uma prova, tento reunir as informações da aula em um caderno."
|
30 |
+
"q29","Escalas de Estratégias de aprendizagem","Elaboração","Ao ler, tento conectar as coisas sobre as quais estou lendo com o que já conheço."
|
31 |
+
"q30","Escalas de Estratégias de aprendizagem","Organização","É difícil para mim decidir quais são as principais ideias no que leio."
|
32 |
+
"q31","Escalas de Estratégias de aprendizagem","Organização","Ao estudar, faço anotações para me lembrar do assunto que estudei."
|
33 |
+
"q32","Escalas de Estratégias de aprendizagem","Organização","Descrevo os capítulos do meu livro para me ajudar a estudar."
|
34 |
+
"q33","Escalas de Estratégias de aprendizagem","Pensamento Crítico","Quando estudo, coloco ideias importantes em minhas próprias palavras."
|
35 |
+
"q34","Escalas de Estratégias de aprendizagem","Autorregulação Metacognitiva","Faço perguntas para ter certeza de que conheço o material que tenho estudado."
|
36 |
+
"q35","Escalas de Estratégias de aprendizagem","Autorregulação Metacognitiva","Costumo achar que sei sobre o assunto da aula, mas não sei do que se trata. (Reversa)."
|
37 |
+
"q36","Escalas de Estratégias de aprendizagem","Autorregulação Metacognitiva","Acho que quando o professor está falando, penso em outras coisas e realmente não ouço o que ele está dizendo. (Reversa)."
|
38 |
+
"q37","Escalas de Estratégias de aprendizagem","Autorregulação Metacognitiva","Quando estou estudando um conteúdo, tento fazer com que tudo se encaixe."
|
39 |
+
"q38","Escalas de Estratégias de aprendizagem","Autorregulação Metacognitiva","Quando estou lendo, paro de vez em quando e repito o que li."
|
40 |
+
"q39","Escalas de Estratégias de aprendizagem","Tempo e Ambiente de Estudo","Antes de começar a estudar, penso nas coisas que precisarei fazer para aprender."
|
41 |
+
"q40","Escalas de Estratégias de aprendizagem","Administração de Esforços","Mesmo quando vou mal em uma prova, tento aprender com meus erros."
|
42 |
+
"q41","Escalas de Estratégias de aprendizagem","Administração de Esforços","Quando o trabalho é difícil, desisto ou estudo apenas as partes fáceis. (Reversa)."
|
43 |
+
"q42","Escalas de Estratégias de aprendizagem","Administração de Esforços","Eu sempre tento entender o que o professor está dizendo, mesmo que isso não faça sentido."
|
44 |
+
"q43","Escalas de Estratégias de aprendizagem","Administração de Esforços","Mesmo quando os materiais de estudo são monótonos e desinteressantes, continuo fazendo a tarefa até terminar."
|
45 |
+
"q44","Escalas de Estratégias de aprendizagem","Administração de Esforços","Trabalho duro para obter uma boa nota, mesmo quando não gosto de uma aula."
|
46 |
+
|
47 |
+
|
48 |
+
|
google/autenticacao.py
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from __future__ import print_function
|
2 |
+
|
3 |
+
from googleapiclient import discovery
|
4 |
+
from httplib2 import Http
|
5 |
+
from oauth2client import file, client, tools
|
6 |
+
|
7 |
+
SCOPES = [ 'https://www.googleapis.com/auth/classroom.courses',
|
8 |
+
'https://www.googleapis.com/auth/drive.readonly.metadata',
|
9 |
+
'https://www.googleapis.com/auth/classroom.announcements',
|
10 |
+
'https://www.googleapis.com/auth/classroom.courses',
|
11 |
+
'https://www.googleapis.com/auth/classroom.coursework.me',
|
12 |
+
'https://www.googleapis.com/auth/classroom.coursework.students',
|
13 |
+
'https://www.googleapis.com/auth/classroom.courseworkmaterials',
|
14 |
+
'https://www.googleapis.com/auth/classroom.guardianlinks.students',
|
15 |
+
'https://www.googleapis.com/auth/classroom.profile.emails',
|
16 |
+
'https://www.googleapis.com/auth/classroom.profile.photos',
|
17 |
+
'https://www.googleapis.com/auth/classroom.push-notifications',
|
18 |
+
'https://www.googleapis.com/auth/classroom.rosters',
|
19 |
+
'https://www.googleapis.com/auth/classroom.rosters.readonly',
|
20 |
+
'https://www.googleapis.com/auth/classroom.topics']
|
21 |
+
|
22 |
+
store = file.Storage('token.json')
|
23 |
+
creds = store.get()
|
24 |
+
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
|
25 |
+
creds = tools.run_flow(flow, store)
|
26 |
+
|
27 |
+
Classroom = discovery.build('classroom', 'v1', http=creds.authorize(Http()))
|
28 |
+
|
google/base_test.py
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright 2018 Google LLC
|
2 |
+
#
|
3 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4 |
+
# you may not use this file except in compliance with the License.
|
5 |
+
# You may obtain a copy of the License at
|
6 |
+
#
|
7 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8 |
+
#
|
9 |
+
# Unless required by applicable law or agreed to in writing, software
|
10 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12 |
+
# See the License for the specific language governing permissions and
|
13 |
+
# limitations under the License.
|
14 |
+
|
15 |
+
from __future__ import print_function
|
16 |
+
|
17 |
+
import sys
|
18 |
+
import unittest
|
19 |
+
|
20 |
+
import httplib2
|
21 |
+
from googleapiclient import errors
|
22 |
+
from googleapiclient.discovery import build
|
23 |
+
from oauth2client.client import GoogleCredentials
|
24 |
+
|
25 |
+
SCOPES = 'https://www.googleapis.com/auth/classroom.courses'
|
26 |
+
|
27 |
+
|
28 |
+
class BaseTest(unittest.TestCase):
|
29 |
+
@classmethod
|
30 |
+
def setUpClass(cls):
|
31 |
+
cls.credentials = cls.create_credentials()
|
32 |
+
http = cls.credentials.authorize(httplib2.Http())
|
33 |
+
cls.credentials.refresh(http)
|
34 |
+
cls.service = build('classroom', 'v1', http=http)
|
35 |
+
cls.stdout = sys.stdout
|
36 |
+
sys.stdout = None
|
37 |
+
|
38 |
+
@classmethod
|
39 |
+
def tearDownClass(cls):
|
40 |
+
# Restore STDOUT.
|
41 |
+
sys.stdout = cls.stdout
|
42 |
+
|
43 |
+
@classmethod
|
44 |
+
def create_credentials(cls):
|
45 |
+
cls.credentials = GoogleCredentials.get_application_default()
|
46 |
+
scope = ['https://www.googleapis.com/auth/drive']
|
47 |
+
return cls.credentials.create_scoped(scope)
|
48 |
+
|
49 |
+
def setUp(self):
|
50 |
+
self.courses_to_delete = []
|
51 |
+
print("Meow" + str(self.courses_to_delete))
|
52 |
+
|
53 |
+
def tearDown(self):
|
54 |
+
for course_id in self.courses_to_delete:
|
55 |
+
try:
|
56 |
+
self.service.courses().delete(id=course_id).execute()
|
57 |
+
except errors.HttpError:
|
58 |
+
print('Unable to delete file %s' % course_id)
|
59 |
+
|
60 |
+
def delete_course_on_cleanup(self, course_id):
|
61 |
+
self.courses_to_delete.append(course_id)
|
62 |
+
|
63 |
+
|
64 |
+
if __name__ == '__main__':
|
65 |
+
unittest.main()
|
google/classroom_create_coursework.py
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from __future__ import print_function
|
2 |
+
|
3 |
+
import google.auth
|
4 |
+
from googleapiclient.discovery import build
|
5 |
+
from googleapiclient.errors import HttpError
|
6 |
+
from oauth2client import file, client, tools
|
7 |
+
|
8 |
+
def classroom_create_coursework(course_id):
|
9 |
+
|
10 |
+
"""
|
11 |
+
Creates the coursework the user has access to.
|
12 |
+
Load pre-authorized user credentials from the environment.
|
13 |
+
TODO(developer) - See https://developers.google.com/identity
|
14 |
+
for guides on implementing OAuth2 for the application.
|
15 |
+
"""
|
16 |
+
|
17 |
+
SCOPES = 'https://www.googleapis.com/auth/classroom.courses'
|
18 |
+
store = file.Storage('storage.json')
|
19 |
+
creds = store.get()
|
20 |
+
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
|
21 |
+
creds = tools.run_flow(flow, store)
|
22 |
+
|
23 |
+
# creds, _ = google.auth.default()
|
24 |
+
# pylint: disable=maybe-no-member
|
25 |
+
|
26 |
+
try:
|
27 |
+
service = build('classroom', 'v1', credentials=creds)
|
28 |
+
coursework = {
|
29 |
+
'title': 'Ant colonies',
|
30 |
+
'description': '''Read the article about ant colonies
|
31 |
+
and complete the quiz.''',
|
32 |
+
'materials': [
|
33 |
+
{'link': {'url': 'http://example.com/ant-colonies'}},
|
34 |
+
{'link': {'url': 'http://example.com/ant-quiz'}}
|
35 |
+
],
|
36 |
+
'workType': 'ASSIGNMENT',
|
37 |
+
'state': 'PUBLISHED',
|
38 |
+
}
|
39 |
+
coursework = service.courses().courseWork().create(
|
40 |
+
courseId=course_id, body=coursework).execute()
|
41 |
+
print(f"Assignment created with ID {coursework.get('id')}")
|
42 |
+
return coursework
|
43 |
+
|
44 |
+
except HttpError as error:
|
45 |
+
print(f"An error occurred: {error}")
|
46 |
+
return error
|
47 |
+
|
48 |
+
|
49 |
+
if __name__ == '__main__':
|
50 |
+
# Put the course_id of course whose coursework needs to be created,
|
51 |
+
# the user has access to.
|
52 |
+
classroom_create_coursework("617087903681")
|
google/drive_list.py
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from __future__ import print_function
|
2 |
+
|
3 |
+
from googleapiclient import discovery
|
4 |
+
from httplib2 import Http
|
5 |
+
from oauth2client import file, client, tools
|
6 |
+
|
7 |
+
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
|
8 |
+
store = file.Storage('storage.json')
|
9 |
+
creds = store.get()
|
10 |
+
if not creds or creds.invalid:
|
11 |
+
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
|
12 |
+
creds = tools.run_flow(flow, store)
|
13 |
+
|
14 |
+
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
|
15 |
+
|
16 |
+
files = DRIVE.files().list().execute().get('files', [])
|
17 |
+
for f in files:
|
18 |
+
print(f['name'], f['mimeType'])
|
google/get_course.py
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""
|
2 |
+
Copyright 2022 Google LLC
|
3 |
+
|
4 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
5 |
+
you may not use this file except in compliance with the License.
|
6 |
+
You may obtain a copy of the License at
|
7 |
+
|
8 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
9 |
+
|
10 |
+
Unless required by applicable law or agreed to in writing, software
|
11 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
12 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13 |
+
See the License for the specific language governing permissions and
|
14 |
+
limitations under the License.
|
15 |
+
|
16 |
+
"""
|
17 |
+
|
18 |
+
# [START classroom_get_course]
|
19 |
+
from __future__ import print_function
|
20 |
+
|
21 |
+
import google.auth
|
22 |
+
from googleapiclient.discovery import build
|
23 |
+
from googleapiclient.errors import HttpError
|
24 |
+
|
25 |
+
|
26 |
+
def classroom_get_course(course_id):
|
27 |
+
|
28 |
+
"""
|
29 |
+
Prints the name of the with specific course_id.
|
30 |
+
Load pre-authorized user credentials from the environment.
|
31 |
+
TODO(developer) - See https://developers.google.com/identity
|
32 |
+
for guides on implementing OAuth2 for the application.
|
33 |
+
"""
|
34 |
+
|
35 |
+
creds, _ = google.auth.default()
|
36 |
+
# pylint: disable=maybe-no-member
|
37 |
+
course = None
|
38 |
+
try:
|
39 |
+
service = build('classroom', 'v1', credentials=creds)
|
40 |
+
course = service.courses().get(id=course_id).execute()
|
41 |
+
print(f"Course found : {course.get('name')}")
|
42 |
+
except HttpError as error:
|
43 |
+
print(f"An error occurred: {error}")
|
44 |
+
print(f"Course not found: {course_id}")
|
45 |
+
return error
|
46 |
+
return course
|
47 |
+
|
48 |
+
|
49 |
+
if __name__ == '__main__':
|
50 |
+
# Put the course_id of course whose information needs to be fetched.
|
51 |
+
classroom_get_course('course_id')
|
52 |
+
|
53 |
+
# [END classroom_get_courses]
|
google/modulo_consultar_respostas_atividade.py
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from __future__ import print_function
|
2 |
+
|
3 |
+
import google.auth
|
4 |
+
from googleapiclient.discovery import build
|
5 |
+
from googleapiclient.errors import HttpError
|
6 |
+
|
7 |
+
from google.auth.transport.requests import Request
|
8 |
+
from google.oauth2.credentials import Credentials
|
9 |
+
from google_auth_oauthlib.flow import InstalledAppFlow
|
10 |
+
from googleapiclient.discovery import build
|
11 |
+
from googleapiclient.errors import HttpError
|
12 |
+
import os.path
|
13 |
+
|
14 |
+
# If modifying these scopes, delete the file token.json.
|
15 |
+
SCOPES = [ 'https://www.googleapis.com/auth/classroom.courses',
|
16 |
+
'https://www.googleapis.com/auth/drive.readonly.metadata',
|
17 |
+
'https://www.googleapis.com/auth/classroom.announcements',
|
18 |
+
'https://www.googleapis.com/auth/classroom.courses',
|
19 |
+
'https://www.googleapis.com/auth/classroom.coursework.me',
|
20 |
+
'https://www.googleapis.com/auth/classroom.coursework.students',
|
21 |
+
'https://www.googleapis.com/auth/classroom.courseworkmaterials',
|
22 |
+
'https://www.googleapis.com/auth/classroom.guardianlinks.students',
|
23 |
+
'https://www.googleapis.com/auth/classroom.profile.emails',
|
24 |
+
'https://www.googleapis.com/auth/classroom.profile.photos',
|
25 |
+
'https://www.googleapis.com/auth/classroom.push-notifications',
|
26 |
+
'https://www.googleapis.com/auth/classroom.rosters',
|
27 |
+
'https://www.googleapis.com/auth/classroom.rosters.readonly',
|
28 |
+
'https://www.googleapis.com/auth/classroom.topics']
|
29 |
+
|
30 |
+
def carregar_credenciais():
|
31 |
+
creds = None
|
32 |
+
# The file token.json stores the user's access and refresh tokens, and is
|
33 |
+
# created automatically when the authorization flow completes for the first
|
34 |
+
# time.
|
35 |
+
if os.path.exists('token.json'):
|
36 |
+
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
|
37 |
+
# If there are no (valid) credentials available, let the user log in.
|
38 |
+
if not creds or not creds.valid:
|
39 |
+
if creds and creds.expired and creds.refresh_token:
|
40 |
+
creds.refresh(Request())
|
41 |
+
else:
|
42 |
+
flow = InstalledAppFlow.from_client_secrets_file(
|
43 |
+
'credentials.json', SCOPES)
|
44 |
+
creds = flow.run_local_server(port=0)
|
45 |
+
# Save the credentials for the next run
|
46 |
+
with open('token.json', 'w') as token:
|
47 |
+
token.write(creds.to_json())
|
48 |
+
return creds
|
49 |
+
|
50 |
+
|
51 |
+
def classroom_list_submissions(creds, course_id, coursework_id):
|
52 |
+
|
53 |
+
submissions = []
|
54 |
+
page_token = None
|
55 |
+
|
56 |
+
try:
|
57 |
+
service = build('classroom', 'v1', credentials=creds)
|
58 |
+
while True:
|
59 |
+
coursework = service.courses().courseWork()
|
60 |
+
response = coursework.studentSubmissions().list(
|
61 |
+
pageToken=page_token,
|
62 |
+
courseId=course_id,
|
63 |
+
courseWorkId=coursework_id,
|
64 |
+
pageSize=10).execute()
|
65 |
+
submissions.extend(response.get('studentSubmissions', []))
|
66 |
+
page_token = response.get('nextPageToken', None)
|
67 |
+
if not page_token:
|
68 |
+
break
|
69 |
+
|
70 |
+
if not submissions:
|
71 |
+
print('No student submissions found.')
|
72 |
+
|
73 |
+
print('Student Submissions:')
|
74 |
+
for submission in submissions:
|
75 |
+
print(f"Submitted at:"
|
76 |
+
f"{(submission.get('id'), submission.get('creationTime'))}")
|
77 |
+
|
78 |
+
except HttpError as error:
|
79 |
+
print(f"An error occurred: {error}")
|
80 |
+
submissions = None
|
81 |
+
return submissions
|
82 |
+
|
83 |
+
|
84 |
+
if __name__ == '__main__':
|
85 |
+
classroom_list_submissions(carregar_credenciais(), 453686957652, 466086979658)
|
google/modulo_criar_atividade.py
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright 2018 Google LLC
|
2 |
+
#
|
3 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4 |
+
# you may not use this file except in compliance with the License.
|
5 |
+
# You may obtain a copy of the License at
|
6 |
+
#
|
7 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8 |
+
#
|
9 |
+
# Unless required by applicable law or agreed to in writing, software
|
10 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12 |
+
# See the License for the specific language governing permissions and
|
13 |
+
# limitations under the License.
|
14 |
+
|
15 |
+
# [START classroom_quickstart]
|
16 |
+
from __future__ import print_function
|
17 |
+
|
18 |
+
import os.path
|
19 |
+
|
20 |
+
from google.auth.transport.requests import Request
|
21 |
+
from google.oauth2.credentials import Credentials
|
22 |
+
from google_auth_oauthlib.flow import InstalledAppFlow
|
23 |
+
from googleapiclient.discovery import build
|
24 |
+
from googleapiclient.errors import HttpError
|
25 |
+
|
26 |
+
SCOPES = [ 'https://www.googleapis.com/auth/classroom.courses',
|
27 |
+
'https://www.googleapis.com/auth/drive.readonly.metadata',
|
28 |
+
'https://www.googleapis.com/auth/classroom.announcements',
|
29 |
+
'https://www.googleapis.com/auth/classroom.courses',
|
30 |
+
'https://www.googleapis.com/auth/classroom.coursework.me',
|
31 |
+
'https://www.googleapis.com/auth/classroom.coursework.students',
|
32 |
+
'https://www.googleapis.com/auth/classroom.courseworkmaterials',
|
33 |
+
'https://www.googleapis.com/auth/classroom.guardianlinks.students',
|
34 |
+
'https://www.googleapis.com/auth/classroom.profile.emails',
|
35 |
+
'https://www.googleapis.com/auth/classroom.profile.photos',
|
36 |
+
'https://www.googleapis.com/auth/classroom.push-notifications',
|
37 |
+
'https://www.googleapis.com/auth/classroom.rosters',
|
38 |
+
'https://www.googleapis.com/auth/classroom.rosters.readonly',
|
39 |
+
'https://www.googleapis.com/auth/classroom.topics']
|
40 |
+
|
41 |
+
def carregar_credenciais():
|
42 |
+
creds = None
|
43 |
+
# The file token.json stores the user's access and refresh tokens, and is
|
44 |
+
# created automatically when the authorization flow completes for the first
|
45 |
+
# time.
|
46 |
+
if os.path.exists('token.json'):
|
47 |
+
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
|
48 |
+
# If there are no (valid) credentials available, let the user log in.
|
49 |
+
if not creds or not creds.valid:
|
50 |
+
if creds and creds.expired and creds.refresh_token:
|
51 |
+
creds.refresh(Request())
|
52 |
+
else:
|
53 |
+
flow = InstalledAppFlow.from_client_secrets_file(
|
54 |
+
'credentials.json', SCOPES)
|
55 |
+
creds = flow.run_local_server(port=0)
|
56 |
+
# Save the credentials for the next run
|
57 |
+
with open('token.json', 'w') as token:
|
58 |
+
token.write(creds.to_json())
|
59 |
+
return creds
|
60 |
+
|
61 |
+
def criar_atividade(creds, course_id):
|
62 |
+
|
63 |
+
try:
|
64 |
+
service = build('classroom', 'v1', credentials=creds)
|
65 |
+
coursework = {
|
66 |
+
'title': 'Tarefa 3',
|
67 |
+
'description': '''Tarefa 3.''',
|
68 |
+
'materials': [
|
69 |
+
{'link': {'url': 'http://example.com/ant-colonies'}},
|
70 |
+
{'link': {'url': 'http://example.com/ant-quiz'}},
|
71 |
+
{'link': {'url': 'https://docs.google.com/forms/d/e/1FAIpQLSeUSDBh0czeWRazc4Ymw-bhKV5clhzQSBPnRU6z6NQiJSuzDg/viewform'}}
|
72 |
+
],
|
73 |
+
'workType': 'ASSIGNMENT',
|
74 |
+
'state': 'PUBLISHED',
|
75 |
+
}
|
76 |
+
coursework = service.courses().courseWork().create(courseId=course_id, body=coursework).execute()
|
77 |
+
print(f"Assignment created with ID {coursework.get('id')}")
|
78 |
+
|
79 |
+
except HttpError as error:
|
80 |
+
print('An error occurred: %s' % error)
|
81 |
+
|
82 |
+
|
83 |
+
if __name__ == '__main__':
|
84 |
+
creds = carregar_credenciais()
|
85 |
+
criar_atividade(creds, "617087903681")
|
86 |
+
|
google/quickstart.py
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright 2018 Google LLC
|
2 |
+
#
|
3 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4 |
+
# you may not use this file except in compliance with the License.
|
5 |
+
# You may obtain a copy of the License at
|
6 |
+
#
|
7 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8 |
+
#
|
9 |
+
# Unless required by applicable law or agreed to in writing, software
|
10 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12 |
+
# See the License for the specific language governing permissions and
|
13 |
+
# limitations under the License.
|
14 |
+
|
15 |
+
# [START classroom_quickstart]
|
16 |
+
from __future__ import print_function
|
17 |
+
|
18 |
+
import os.path
|
19 |
+
|
20 |
+
from google.auth.transport.requests import Request
|
21 |
+
from google.oauth2.credentials import Credentials
|
22 |
+
from googleapiclient.discovery import build
|
23 |
+
from googleapiclient.errors import HttpError
|
24 |
+
|
25 |
+
# If modifying these scopes, delete the file token.json.
|
26 |
+
SCOPES = ['https://www.googleapis.com/auth/classroom.courses.readonly']
|
27 |
+
|
28 |
+
|
29 |
+
def main():
|
30 |
+
"""Shows basic usage of the Classroom API.
|
31 |
+
Prints the names of the first 10 courses the user has access to.
|
32 |
+
"""
|
33 |
+
creds = None
|
34 |
+
# The file token.json stores the user's access and refresh tokens, and is
|
35 |
+
# created automatically when the authorization flow completes for the first
|
36 |
+
# time.
|
37 |
+
if os.path.exists('token.json'):
|
38 |
+
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
|
39 |
+
# If there are no (valid) credentials available, let the user log in.
|
40 |
+
if not creds or not creds.valid:
|
41 |
+
if creds and creds.expired and creds.refresh_token:
|
42 |
+
creds.refresh(Request())
|
43 |
+
else:
|
44 |
+
flow = InstalledAppFlow.from_client_secrets_file(
|
45 |
+
'credentials.json', SCOPES)
|
46 |
+
creds = flow.run_local_server(port=0)
|
47 |
+
# Save the credentials for the next run
|
48 |
+
with open('token.json', 'w') as token:
|
49 |
+
token.write(creds.to_json())
|
50 |
+
|
51 |
+
try:
|
52 |
+
service = build('classroom', 'v1', credentials=creds)
|
53 |
+
|
54 |
+
# Call the Classroom API
|
55 |
+
results = service.courses().list(pageSize=10).execute()
|
56 |
+
courses = results.get('courses', [])
|
57 |
+
|
58 |
+
if not courses:
|
59 |
+
print('No courses found.')
|
60 |
+
return
|
61 |
+
# Prints the names of the first 10 courses.
|
62 |
+
print('Courses:')
|
63 |
+
for course in courses:
|
64 |
+
print(course['name'])
|
65 |
+
|
66 |
+
except HttpError as error:
|
67 |
+
print('An error occurred: %s' % error)
|
68 |
+
|
69 |
+
|
70 |
+
if __name__ == '__main__':
|
71 |
+
main()
|
72 |
+
# [END classroom_quickstart]
|
img/escalas1.jpg
ADDED
![]() |
img/escalas2.jpg
ADDED
![]() |
pages/02_Dashboard.py
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import numpy as np
|
3 |
+
import matplotlib.pyplot as plt
|
4 |
+
|
5 |
+
st.title("Dashboard da turma")
|
6 |
+
st.divider()
|
7 |
+
|
8 |
+
if "df_estudantes" not in st.session_state:
|
9 |
+
st.error("Volte para a tela principal faça login e carregue uma turma!")
|
10 |
+
else:
|
11 |
+
|
12 |
+
st.markdown('### Métricas da turma')
|
13 |
+
df_estudantes = st.session_state["df_estudantes"]
|
14 |
+
st.metric(label="Total de Alunos", value=len(df_estudantes))
|
15 |
+
|
16 |
+
#col1, col2, col3 = st.columns(3)
|
17 |
+
#category_names = ['Discodo totalmente', 'Discordo',
|
18 |
+
# 'indiferente', 'Concordo', 'Concordo totalmente']
|
19 |
+
# results = {
|
20 |
+
# 'Extroversão': [1, 0, 0, 0, 1],
|
21 |
+
# 'Amababilidade': [1, 0, 0, 0, 1],
|
22 |
+
# 'Conscienciosidade': [1, 0, 0, 0, 1],
|
23 |
+
# 'Estabilidade Emocional': [1, 0, 0, 0, 1],
|
24 |
+
# 'Abertura a experiencias': [1, 0, 0, 0, 1],
|
25 |
+
# }
|
26 |
+
|
27 |
+
# def survey(results, category_names):
|
28 |
+
# """
|
29 |
+
# Parameters
|
30 |
+
# ----------
|
31 |
+
# results : dict
|
32 |
+
# A mapping from question labels to a list of answers per category.
|
33 |
+
# It is assumed all lists contain the same number of entries and that
|
34 |
+
# it matches the length of *category_names*.
|
35 |
+
# category_names : list of str
|
36 |
+
# The category labels.
|
37 |
+
# """
|
38 |
+
# labels = list(results.keys())
|
39 |
+
# data = np.array(list(results.values()))
|
40 |
+
# data_cum = data.cumsum(axis=1)
|
41 |
+
# category_colors = plt.get_cmap('RdYlGn')(
|
42 |
+
# np.linspace(0.15, 0.85, data.shape[1]))
|
43 |
+
|
44 |
+
# fig, ax = plt.subplots(figsize=(9.2, 5))
|
45 |
+
# ax.invert_yaxis()
|
46 |
+
# ax.xaxis.set_visible(False)
|
47 |
+
# ax.set_xlim(0, np.sum(data, axis=1).max())
|
48 |
+
|
49 |
+
# for i, (colname, color) in enumerate(zip(category_names, category_colors)):
|
50 |
+
# widths = data[:, i]
|
51 |
+
# starts = data_cum[:, i] - widths
|
52 |
+
# ax.barh(labels, widths, left=starts, height=0.5,
|
53 |
+
# label=colname, color=color)
|
54 |
+
# xcenters = starts + widths / 2
|
55 |
+
|
56 |
+
# r, g, b, _ = color
|
57 |
+
# text_color = 'white' if r * g * b < 0.5 else 'darkgrey'
|
58 |
+
# for y, (x, c) in enumerate(zip(xcenters, widths)):
|
59 |
+
# ax.text(x, y, str(int(c)), ha='center', va='center',
|
60 |
+
# color=text_color)
|
61 |
+
# ax.legend(ncol=len(category_names), bbox_to_anchor=(0, 1),
|
62 |
+
# loc='lower left', fontsize='small')
|
63 |
+
|
64 |
+
# return fig, ax
|
65 |
+
|
66 |
+
|
67 |
+
# survey(results, category_names)
|
68 |
+
# #plt.show()
|
69 |
+
|
70 |
+
# st.pyplot(plt)
|
pages/03_Perfil.py
ADDED
@@ -0,0 +1,584 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from googleapiclient.discovery import build
|
3 |
+
import numpy as np
|
4 |
+
import matplotlib.pyplot as plt
|
5 |
+
from google.oauth2.credentials import Credentials
|
6 |
+
import pandas as pd
|
7 |
+
|
8 |
+
st.title("Perfil dos alunos")
|
9 |
+
st.divider()
|
10 |
+
|
11 |
+
if "id_curso_selecionado" not in st.session_state:
|
12 |
+
st.error("Volte para a tela principal faça login e carregue uma turma!")
|
13 |
+
else:
|
14 |
+
limite = st.session_state["limite"]
|
15 |
+
id_curso_selecionado = st.session_state["id_curso_selecionado"]
|
16 |
+
df_estudantes = st.session_state["df_estudantes"]
|
17 |
+
aluno_selecionado = st.selectbox("Aluno", df_estudantes["nome"])
|
18 |
+
df_estudante_selecionado = df_estudantes[df_estudantes["nome"] == aluno_selecionado].iloc[0]
|
19 |
+
nome_estudante_selecionado = df_estudante_selecionado["nome"]
|
20 |
+
id_estudante_selecionado = df_estudante_selecionado["userId"]
|
21 |
+
email_estudante_selecionado = df_estudante_selecionado["email"]
|
22 |
+
|
23 |
+
autorregulacao, bigfive,dicas = st.tabs(["Autorregulação", "Bigfive", "Recomendação"])
|
24 |
+
|
25 |
+
with bigfive:
|
26 |
+
analise_big_five, grafico_big_five, dados_big_five = st.tabs(["Análise", "Gráfico", "Dados"])
|
27 |
+
with dados_big_five:
|
28 |
+
df_quest_reg_big_five = st.session_state["df_respostas_big_five"]
|
29 |
+
if len (df_quest_reg_big_five[df_quest_reg_big_five["Endereço de e-mail"] == email_estudante_selecionado]) > 0:
|
30 |
+
df_quest_reg_big_five_s = df_quest_reg_big_five[df_quest_reg_big_five["Endereço de e-mail"] == email_estudante_selecionado]
|
31 |
+
st.dataframe(df_quest_reg_big_five_s.T[2:],
|
32 |
+
column_config={"": "Pergunta", "3": "Resposta"})
|
33 |
+
|
34 |
+
|
35 |
+
else:
|
36 |
+
st.warning("Aluno ainda não respondeu ao questionário do Big Five.")
|
37 |
+
with grafico_big_five:
|
38 |
+
df_respostas_big_five = st.session_state["df_respostas_big_five"]
|
39 |
+
if len (df_respostas_big_five[df_respostas_big_five["Endereço de e-mail"] == email_estudante_selecionado]) > 0:
|
40 |
+
dfbf = df_respostas_big_five[df_respostas_big_five["Endereço de e-mail"] == email_estudante_selecionado].iloc[0]
|
41 |
+
extroversao = np.mean([dfbf.iloc[2], 6 - dfbf.iloc[7], dfbf.iloc[12], dfbf.iloc[17], 6 - dfbf.iloc[22], dfbf.iloc[27], 6 - dfbf.iloc[32], dfbf.iloc[37]])
|
42 |
+
amababilidade = np.mean([6 - dfbf.iloc[3], dfbf.iloc[8], 6 - dfbf.iloc[13], dfbf.iloc[18], dfbf.iloc[23], 6 - dfbf.iloc[28], dfbf.iloc[33], 6 - dfbf.iloc[38], dfbf.iloc[43]])
|
43 |
+
conscienciosidade = np.mean([dfbf.iloc[4], 6 - dfbf.iloc[9], dfbf.iloc[14], 6 - dfbf.iloc[19], 6 - dfbf.iloc[24], dfbf.iloc[29], dfbf.iloc[34], dfbf.iloc[39], 6 - dfbf.iloc[44]])
|
44 |
+
estabilidade_emocional = np.mean([6 - dfbf.iloc[5], dfbf.iloc[10], 6 - dfbf.iloc[15], 6 - dfbf.iloc[20], dfbf.iloc[25], 6 - dfbf.iloc[30], dfbf.iloc[35], 6- dfbf.iloc[40]])
|
45 |
+
abertura_a_experiencias = np.mean([dfbf.iloc[6], dfbf.iloc[11], dfbf.iloc[16], dfbf.iloc[21], dfbf.iloc[26], dfbf.iloc[31], 6- dfbf.iloc[36], dfbf.iloc[41], 6 - dfbf.iloc[42], dfbf.iloc[45]])
|
46 |
+
st.success("Perfil do Bigfive")
|
47 |
+
fig, ax = plt.subplots()
|
48 |
+
constructors = ["Extroversao", "Amababilidade", "Conscienciosidade", "Estabilidade Emocional", "Abertura a experiencias"]
|
49 |
+
counts = [extroversao, amababilidade, conscienciosidade,estabilidade_emocional, abertura_a_experiencias]
|
50 |
+
graf1 = ax.barh(constructors, counts, color='#909090')
|
51 |
+
ax.bar_label(graf1, fmt="%.01f", size=10, label_type="edge")
|
52 |
+
ax.set_xlabel('Resposta')
|
53 |
+
ax.set_xticks([1,2,3,4,5])
|
54 |
+
st.pyplot(plt)
|
55 |
+
else:
|
56 |
+
st.warning("Aluno ainda não respondeu ao questionário Big Five.")
|
57 |
+
|
58 |
+
with analise_big_five:
|
59 |
+
df_respostas_big_five = st.session_state["df_respostas_big_five"]
|
60 |
+
if len (df_respostas_big_five[df_respostas_big_five["Endereço de e-mail"] == email_estudante_selecionado]) > 0:
|
61 |
+
dfbf = df_respostas_big_five[df_respostas_big_five["Endereço de e-mail"] == email_estudante_selecionado].iloc[0]
|
62 |
+
extroversao = np.mean([dfbf.iloc[2], 6 - dfbf.iloc[7], dfbf.iloc[12], dfbf.iloc[17], 6 - dfbf.iloc[22], dfbf.iloc[27], 6 - dfbf.iloc[32], dfbf.iloc[37]])
|
63 |
+
amababilidade = np.mean([6 - dfbf.iloc[3], dfbf.iloc[8], 6 - dfbf.iloc[13], dfbf.iloc[18], dfbf.iloc[23], 6 - dfbf.iloc[28], dfbf.iloc[33], 6 - dfbf.iloc[38], dfbf.iloc[43]])
|
64 |
+
conscienciosidade = np.mean([dfbf.iloc[4], 6 - dfbf.iloc[9], dfbf.iloc[14], 6 - dfbf.iloc[19], 6 - dfbf.iloc[24], dfbf.iloc[29], dfbf.iloc[34], dfbf.iloc[39], 6 - dfbf.iloc[44]])
|
65 |
+
estabilidade_emocional = np.mean([6 - dfbf.iloc[5], dfbf.iloc[10], 6 - dfbf.iloc[15], 6 - dfbf.iloc[20], dfbf.iloc[25], 6 - dfbf.iloc[30], dfbf.iloc[35], 6- dfbf.iloc[40]])
|
66 |
+
abertura_a_experiencias = np.mean([dfbf.iloc[6], dfbf.iloc[11], dfbf.iloc[16], dfbf.iloc[21], dfbf.iloc[26], dfbf.iloc[31], 6- dfbf.iloc[36], dfbf.iloc[41], 6 - dfbf.iloc[42], dfbf.iloc[45]])
|
67 |
+
col1, col2, col3 = st.columns(3)
|
68 |
+
col4, col5, col6 = st.columns(3)
|
69 |
+
|
70 |
+
def get_slider_name_extroversao(v):
|
71 |
+
if v == 5:
|
72 |
+
return 'Extrovertido'
|
73 |
+
elif v == 4:
|
74 |
+
return 'Parcialmente Extrovertido'
|
75 |
+
elif v == 3:
|
76 |
+
return 'Neutro'
|
77 |
+
elif v == 2:
|
78 |
+
return 'Parcialmente Introvertido'
|
79 |
+
elif v == 1:
|
80 |
+
return 'Introvertido'
|
81 |
+
|
82 |
+
def get_slider_name_conscienciosidade(v):
|
83 |
+
if v == 5:
|
84 |
+
return 'Consciencioso'
|
85 |
+
elif v == 4:
|
86 |
+
return 'Parcialmente Consciencioso'
|
87 |
+
elif v == 3:
|
88 |
+
return 'Neutro'
|
89 |
+
elif v == 2:
|
90 |
+
return 'Parcialmente Desorganizado'
|
91 |
+
elif v == 1:
|
92 |
+
return 'Desorganizado'
|
93 |
+
|
94 |
+
def get_slider_name_abertura_experiencias(v):
|
95 |
+
if v == 5:
|
96 |
+
return 'Aberto a Exper.'
|
97 |
+
elif v == 4:
|
98 |
+
return 'Parcialmente Aberto a Exper.'
|
99 |
+
elif v == 3:
|
100 |
+
return 'Neutro'
|
101 |
+
elif v == 2:
|
102 |
+
return 'Parcialmente Convencional'
|
103 |
+
elif v == 1:
|
104 |
+
return 'Convencional'
|
105 |
+
|
106 |
+
def get_slider_name_amabilidade(v):
|
107 |
+
if v == 5:
|
108 |
+
return 'Amáveis'
|
109 |
+
elif v == 4:
|
110 |
+
return 'Parcialmente Amáveis'
|
111 |
+
elif v == 3:
|
112 |
+
return 'Neutro'
|
113 |
+
elif v == 2:
|
114 |
+
return 'Parcialmente Antagonista'
|
115 |
+
elif v == 1:
|
116 |
+
return 'Antagonista'
|
117 |
+
|
118 |
+
def get_slider_name_estabilidade_emocional(v):
|
119 |
+
if v == 5:
|
120 |
+
return 'Estável Emoc.'
|
121 |
+
elif v == 4:
|
122 |
+
return 'Parcialmente Estável Emoc.'
|
123 |
+
elif v == 3:
|
124 |
+
return 'Neutro'
|
125 |
+
elif v == 2:
|
126 |
+
return 'Parcialmente Instável Emoc.'
|
127 |
+
elif v == 1:
|
128 |
+
return 'Instável Emoc.'
|
129 |
+
|
130 |
+
st.write("### Extroversão")
|
131 |
+
col1b, col2b = st.columns(2)
|
132 |
+
with col1b:
|
133 |
+
st.write("""Porque é importante?
|
134 |
+
* Melhora habilidades interpessoais
|
135 |
+
* Maior dominância social
|
136 |
+
* Maior expressão emocional""")
|
137 |
+
with col2b:
|
138 |
+
st.write("""O que afeta?
|
139 |
+
* Desempenho melhor(trabalho em equipe)
|
140 |
+
* Liderança aumentada
|
141 |
+
* Maior satisfação na vida e no trabalho""")
|
142 |
+
st.select_slider(
|
143 |
+
label="Extroversao",
|
144 |
+
key="sextroversao",
|
145 |
+
options=['Introvertido', 'Parcialmente Introvertido', 'Neutro', 'Parcialmente Extrovertido', 'Extrovertido'],
|
146 |
+
value=(get_slider_name_extroversao(round(extroversao)),get_slider_name_extroversao(round(extroversao))),
|
147 |
+
#disabled=True,
|
148 |
+
label_visibility ="hidden"
|
149 |
+
)
|
150 |
+
col1b, col2b = st.columns(2)
|
151 |
+
with col1b:
|
152 |
+
st.write("Introvertido = (reservado, tímido, quieto, sóbrio)")
|
153 |
+
with col2b:
|
154 |
+
st.write("Extrovertido = (agregador, assertivo, sociável, falador, expansivo)")
|
155 |
+
st.divider()
|
156 |
+
|
157 |
+
st.write("### Amababilidade / Socialização")
|
158 |
+
col1b, col2b = st.columns(2)
|
159 |
+
with col1b:
|
160 |
+
st.write("""Porque é importante?
|
161 |
+
* Mais "amado"
|
162 |
+
* Menos contestador e mais conformado""")
|
163 |
+
with col2b:
|
164 |
+
st.write("""O que afeta?
|
165 |
+
* Melhora desempenho (trabalho em equipe)
|
166 |
+
* Níveis menores de desvios de comportamento no trabalho
|
167 |
+
""")
|
168 |
+
st.select_slider(
|
169 |
+
label="Ambabilidade",
|
170 |
+
key="samababilidade",
|
171 |
+
options=['Antagonista', 'Parcialmente Antagonista', 'Neutro', 'Parcialmente Amáveis', 'Amáveis'],
|
172 |
+
value=(get_slider_name_amabilidade(round(amababilidade)),get_slider_name_amabilidade(round(amababilidade))),
|
173 |
+
#disabled=True,
|
174 |
+
label_visibility ="hidden"
|
175 |
+
)
|
176 |
+
col1b, col2b = st.columns(2)
|
177 |
+
with col1b:
|
178 |
+
st.write("Antagonista = (frio, desagradável, confrontador, crítico, frio, inamistoso)")
|
179 |
+
with col2b:
|
180 |
+
st.write("Amáveis = (cooperativo, receptivo, confiável, solidário, gentil, grato)")
|
181 |
+
st.divider()
|
182 |
+
|
183 |
+
st.write("### Conscienciosidade / Realização")
|
184 |
+
col1b, col2b = st.columns(2)
|
185 |
+
with col1b:
|
186 |
+
st.write("""Porque é importante?
|
187 |
+
* Maior esforço e persistência
|
188 |
+
* Naus energia e disciplina
|
189 |
+
* Mais organizado e planejador""")
|
190 |
+
with col2b:
|
191 |
+
st.write("""O que afeta?
|
192 |
+
* Melhor desempenho
|
193 |
+
* Lidernaça aumentada
|
194 |
+
* Maior longevidade
|
195 |
+
""")
|
196 |
+
st.select_slider(
|
197 |
+
label="Conscienciosidade",
|
198 |
+
key="sconscienciosidade",
|
199 |
+
options=['Desorganizado', 'Parcialmente Desorganizado', 'Neutro', 'Parcialmente Consciencioso', 'Consciencioso'],
|
200 |
+
value=(get_slider_name_conscienciosidade(round(conscienciosidade)),get_slider_name_conscienciosidade(round(conscienciosidade))),
|
201 |
+
#disabled=True,
|
202 |
+
label_visibility ="hidden"
|
203 |
+
)
|
204 |
+
col1b, col2b = st.columns(2)
|
205 |
+
with col1b:
|
206 |
+
st.write("Desorganizado = (distraído, desorganizado, pouco confiável, descuidado, impulsivo)")
|
207 |
+
with col2b:
|
208 |
+
st.write("Consciencioso = (responsável, organizado, confiável, persistente, cuidadoso, disciplinado)")
|
209 |
+
st.divider()
|
210 |
+
|
211 |
+
st.write("### Estabilidade Emocional (Neuroticismo)")
|
212 |
+
col1b, col2b = st.columns(2)
|
213 |
+
with col1b:
|
214 |
+
st.write("""Porque é importante?
|
215 |
+
* Menos pensamentos e emoções negativos
|
216 |
+
* menor hipervigilância""")
|
217 |
+
with col2b:
|
218 |
+
st.write("""O que afeta?
|
219 |
+
* Maior satisfação pessoal e no trabalho
|
220 |
+
* Menores níveis de estresse
|
221 |
+
""")
|
222 |
+
st.select_slider(
|
223 |
+
label="Estabilidade Emocional",
|
224 |
+
key="sestabilidade_emocional",
|
225 |
+
options=['Instável Emoc.', 'Parcialmente Instável Emoc.', 'Neutro', 'Parcialmente Estável Emoc.', 'Estável Emoc.'],
|
226 |
+
value=(get_slider_name_estabilidade_emocional(round(estabilidade_emocional)), get_slider_name_estabilidade_emocional(round(estabilidade_emocional))),
|
227 |
+
#disabled=True,
|
228 |
+
label_visibility ="hidden"
|
229 |
+
)
|
230 |
+
col1b, col2b = st.columns(2)
|
231 |
+
with col1b:
|
232 |
+
st.write("Instável Emoc. = (nervoso, ansioso, deprimido, inseguro, tenso)")
|
233 |
+
with col2b:
|
234 |
+
st.write("Estável Emoc. = (calmo, autoconfiante, seguro, estável)")
|
235 |
+
st.divider()
|
236 |
+
|
237 |
+
st.write("### Abertura a experiências")
|
238 |
+
col1b, col2b = st.columns(2)
|
239 |
+
with col1b:
|
240 |
+
st.write("""Porque é importante?
|
241 |
+
* Aumento do nível de aprendizagem
|
242 |
+
* Mais criatividade
|
243 |
+
* Maior flexibilidade e autonomia""")
|
244 |
+
with col2b:
|
245 |
+
st.write("""O que afeta?
|
246 |
+
* Desempenho no treinamento
|
247 |
+
* Liderança aumentada
|
248 |
+
* Mais adaptável a mudanças
|
249 |
+
""")
|
250 |
+
st.select_slider(
|
251 |
+
label="Abertura",
|
252 |
+
key="sabertura_a_experiencias",
|
253 |
+
options=['Convencional', 'Parcialmente Convencional', 'Neutro', 'Parcialmente Aberto a Exper.', 'Aberto a Exper.'],
|
254 |
+
value=(get_slider_name_abertura_experiencias(round(abertura_a_experiencias)), get_slider_name_abertura_experiencias(round(abertura_a_experiencias))),
|
255 |
+
#disabled=True,
|
256 |
+
label_visibility ="hidden"
|
257 |
+
)
|
258 |
+
col1b, col2b = st.columns(2)
|
259 |
+
with col1b:
|
260 |
+
st.write("Convencional = (convencional, conservador, prefere coisas familiares, conformista, prático)")
|
261 |
+
with col2b:
|
262 |
+
st.write("Aberto a Exper. = (criativo, curioso, sensível artisiticamente, independente, imaginativo)")
|
263 |
+
else:
|
264 |
+
st.warning("Aluno ainda não respondeu ao questionário.")
|
265 |
+
|
266 |
+
with autorregulacao:
|
267 |
+
analise, grafico, dados = st.tabs(["Análise", "Gráfico", "Dados"])
|
268 |
+
|
269 |
+
with dados:
|
270 |
+
df_quest_reg = st.session_state["df_respostas"]
|
271 |
+
if len (df_quest_reg[df_quest_reg["Endereço de e-mail"] == email_estudante_selecionado]) > 0:
|
272 |
+
df_quest_reg_s = df_quest_reg[df_quest_reg["Endereço de e-mail"] == email_estudante_selecionado]
|
273 |
+
st.dataframe(df_quest_reg_s.T[2:], column_config={"": "Pergunta", "3": "Resposta"})
|
274 |
+
else:
|
275 |
+
st.warning("Aluno ainda não respondeu ao questionário.")
|
276 |
+
|
277 |
+
with analise:
|
278 |
+
df_quest_reg = st.session_state["df_respostas"]
|
279 |
+
if len (df_quest_reg[df_quest_reg["Endereço de e-mail"] == email_estudante_selecionado]) > 0:
|
280 |
+
dfreg = df_quest_reg[df_quest_reg["Endereço de e-mail"] == email_estudante_selecionado].iloc[0]
|
281 |
+
media_orientacao_metas_intrinsecas = np.mean([dfreg.iloc[2], dfreg.iloc[3]])
|
282 |
+
media_orientacao_metas_extrinsicas = np.mean([dfreg.iloc[4], dfreg.iloc[5]])
|
283 |
+
media_valorizacao_da_atividade = np.mean([dfreg.iloc[6], dfreg.iloc[7], dfreg.iloc[8], dfreg.iloc[9], dfreg.iloc[10], dfreg.iloc[11]])
|
284 |
+
controle_do_aprendizado = np.mean([dfreg.iloc[12], dfreg.iloc[13], dfreg.iloc[14]])
|
285 |
+
autoeficacia_para_aprendizado = np.mean([dfreg.iloc[15], dfreg.iloc[16], dfreg.iloc[17], dfreg.iloc[18]])
|
286 |
+
ansiedade_em_testes = np.mean([dfreg.iloc[19], dfreg.iloc[20], dfreg.iloc[21], dfreg.iloc[22], dfreg.iloc[23]])
|
287 |
+
|
288 |
+
st.success("Escalas de Motivação")
|
289 |
+
col1, col2, col3 = st.columns(3)
|
290 |
+
col4, col5, col6 = st.columns(3)
|
291 |
+
|
292 |
+
help_intrisica = """
|
293 |
+
A orientação a metas intrínsecas diz respeito ao grau em que o aluno percebe
|
294 |
+
estar participando de uma tarefa por razões como desafio, curiosidade e domínio.
|
295 |
+
"""
|
296 |
+
col1.metric("Orientação a Metas Intrínsecas ", round(media_orientacao_metas_intrinsecas, 1), "-BAIXA" if (round(media_orientacao_metas_intrinsecas, 1) < limite) else "ALTA", help = help_intrisica)
|
297 |
+
|
298 |
+
help_extrinsica = """
|
299 |
+
A orientação extrínseca complementa a orientação intrínseca e diz respeito ao grau
|
300 |
+
em que o aluno percebe estar participando de uma tarefa por razões como notas, recompensas, desempenho, avaliação e competição.
|
301 |
+
"""
|
302 |
+
col2.metric("Orientação a Metas Extrínsicas ", round(media_orientacao_metas_extrinsicas, 1), "-BAIXA" if (round(media_orientacao_metas_extrinsicas, 1) < limite) else "ALTA", help= help_extrinsica)
|
303 |
+
|
304 |
+
help_valorizacao = """
|
305 |
+
A valorização da atividade, difere da orientação a metas, pois ela refere-se à
|
306 |
+
avaliação do aluno sobre quão interessante, importante e útil é a atividade, enquanto a orientação
|
307 |
+
a metas associa-se aos motivos pelos quais o aluno está participando da atividade.
|
308 |
+
"""
|
309 |
+
col3.metric("Valorização da Atividade ", round(media_valorizacao_da_atividade, 1), "-BAIXA" if (round(media_valorizacao_da_atividade, 1) < limite) else "ALTA", help = help_valorizacao)
|
310 |
+
|
311 |
+
help_controle = """
|
312 |
+
O controle do aprendizado, se refere às crenças dos alunos
|
313 |
+
de que seus esforços para aprender resultarão em resultados positivos, onde os resultados dependem do próprio esforço.
|
314 |
+
"""
|
315 |
+
col4.metric("Controle do Aprendizado ", round(controle_do_aprendizado, 1), "-BAIXA" if (round(controle_do_aprendizado, 1) < limite) else "ALTA", help = help_controle)
|
316 |
+
|
317 |
+
help_expectativa = """
|
318 |
+
Os itens que compõem esta escala avaliam dois aspectos da expectativa, a
|
319 |
+
expectativa de sucesso e a autoeficácia. A expectativa de sucesso refere-se
|
320 |
+
às expectativas de desempenho e especificamente ao desempenho da atividade,
|
321 |
+
enquanto a autoeficácia é uma autoavaliação da capacidade de dominar uma tarefa.
|
322 |
+
Essa é uma medida da sua percepção quanto ao seu potencial de sucesso nas
|
323 |
+
disciplinas e da sua autoconfiança para entender o conteúdo da disciplina.
|
324 |
+
Uma pontuação alta significa que você acha que terá bom desempenho na disciplina
|
325 |
+
e está confiante que será capaz de dominar todo o conteúdo.
|
326 |
+
"""
|
327 |
+
col5.metric("Expectativa de Sucess e Autoeficacia para Aprendizado ", round(autoeficacia_para_aprendizado,1), "-BAIXA" if (round(autoeficacia_para_aprendizado, 1) < limite) else "ALTA", help = help_expectativa)
|
328 |
+
|
329 |
+
help_ansiedade = """A ansiedade em testes possui dois componentes, o componente preocupação, que são os pensamentos negativos dos alunos que
|
330 |
+
atrapalham o desempenho, e o componente emocional, que se refere a aspectos de excitação afetiva e fisiológica da ansiedade.
|
331 |
+
A preocupação cognitiva e a preocupação com o desempenho são as maiores fontes de redução do desempenho, por isso,
|
332 |
+
o treinamento no uso de estratégias eficazes de aprendizado e nas habilidades para fazer testes deve ajudar a reduzir
|
333 |
+
o grau de ansiedade. Essa é uma medida do quanto você se preocupa com as avaliações e quão frequentemente você
|
334 |
+
se distrai ao realizar uma prova. Ao contrário das outras escalas, nessa escala, uma pontuação alta significa
|
335 |
+
que você fica ansioso em situações de teste."""
|
336 |
+
col6.metric("Ansiedade em testes ", round(ansiedade_em_testes, 1), "-BAIXA" if (round(ansiedade_em_testes, 1) < limite) else "ALTA", help=help_ansiedade)
|
337 |
+
|
338 |
+
st.divider()
|
339 |
+
st.success("Escalas de Estratégias de aprendizagem")
|
340 |
+
col7, col8, col9 = st.columns(3)
|
341 |
+
col10, col11, col12 = st.columns(3)
|
342 |
+
col13, col14, col15 = st.columns(3)
|
343 |
+
|
344 |
+
ensaio_memorizacao = np.mean([dfreg.iloc[24], dfreg.iloc[25], dfreg.iloc[26], dfreg.iloc[27], dfreg.iloc[28]])
|
345 |
+
elaboracao = np.mean([dfreg.iloc[29], dfreg.iloc[30]])
|
346 |
+
organizacao = np.mean([dfreg.iloc[31], dfreg.iloc[32], dfreg.iloc[33]])
|
347 |
+
pensamento_critico = np.mean([dfreg.iloc[34]])
|
348 |
+
autorregulacao_metacognitiva = np.mean([dfreg.iloc[35], dfreg.iloc[36], dfreg.iloc[37], dfreg.iloc[38], dfreg.iloc[39]])
|
349 |
+
tempo_e_ambiente_de_estudo = np.mean([dfreg.iloc[40]])
|
350 |
+
administracao_de_esforcos = np.mean([dfreg.iloc[41], dfreg.iloc[42], dfreg.iloc[43], dfreg.iloc[44], dfreg.iloc[45]])
|
351 |
+
|
352 |
+
help_ensaio = """
|
353 |
+
Esta escala mede o quanto você utiliza estratégias de estudo, como releitura
|
354 |
+
de anotações da aula e de textos sobre a matéria e decora listas com palavras-chave e conceitos.
|
355 |
+
Uma alta pontuação significa que você usa essas estratégias com frequência.
|
356 |
+
"""
|
357 |
+
col7.metric("Ensaio memorização ", round(ensaio_memorizacao, 1), "-BAIXA" if (round(ensaio_memorizacao, 1) < limite) else "ALTA", help = help_ensaio)
|
358 |
+
|
359 |
+
help_elaboracao = """
|
360 |
+
Esta escala mede o quanto você tenta resumir ou parafrasear (colocar nas
|
361 |
+
suas próprias palavras) o que você lê em seus livros-texto e o quanto você tenta relacionar
|
362 |
+
esse material com o que já sabe ou aprendeu. Uma pontuação alta significa que você usa essas estratégias
|
363 |
+
com frequência. Essas estratégias normalmente têm melhores resultados do que a estratégia de decorar.
|
364 |
+
"""
|
365 |
+
col8.metric("Elaboração ", round(elaboracao, 1), "-BAIXA" if (round(elaboracao, 1) < limite) else "ALTA", help = help_elaboracao)
|
366 |
+
|
367 |
+
help_organizacao = """
|
368 |
+
Esta escala se refere à sua capacidade de selecionar as ideias principais do que você lê,
|
369 |
+
assim como sua capacidade de organizar e reunir tudo que precisa aprender em determinada disciplina.
|
370 |
+
"""
|
371 |
+
col9.metric("Organização ", round(organizacao, 1), "-BAIXA" if (round(organizacao, 1) < limite) else "ALTA", help = help_organizacao)
|
372 |
+
|
373 |
+
# está faltando
|
374 |
+
col10.metric("Pensamento crítico ", round(pensamento_critico, 1), "-BAIXA" if (round(pensamento_critico, 1) < limite) else "ALTA")
|
375 |
+
|
376 |
+
help_autorregulacao_meta = """
|
377 |
+
Esta é uma medida da frequência com que você pensa sobre o que está lendo
|
378 |
+
ou estudando quando realiza suas tarefas de estudo. Por exemplo, você monitora sua atenção
|
379 |
+
quando lê ou geralmente descobre que leu dez páginas de um livro e não se lembra de nada do que leu?
|
380 |
+
Você ajusta sua velocidade de leitura quando está lendo algo difícil, se comparado a ler jornal?
|
381 |
+
Uma pontuação alta significa que você tenta planejar seu trabalho e confere se entendeu a disciplina.
|
382 |
+
"""
|
383 |
+
col11.metric("Autorregulacao Metacognitiva ", round(autorregulacao_metacognitiva, 1), "-BAIXA" if (round(autorregulacao_metacognitiva, 1) < limite) else "ALTA", help = help_autorregulacao_meta)
|
384 |
+
|
385 |
+
help_tempo = """
|
386 |
+
Essa escala mede quão bem você administra seu tempo e sua agenda, como
|
387 |
+
também seu uso de um ambiente de estudo. Uma pontuação alta significa que você possui um método
|
388 |
+
para administrar sua agenda e tenta estudar em um local onde você possa terminar suas tarefas de estudo.
|
389 |
+
"""
|
390 |
+
col12.metric("Tempo e ambiente de estudo ", round(tempo_e_ambiente_de_estudo, 1), "-BAIXA" if (round(tempo_e_ambiente_de_estudo, 1) < limite) else "ALTA", help = help_tempo)
|
391 |
+
|
392 |
+
help_admesforcos = """
|
393 |
+
Esta escala se refere à sua vontade de fazer suas tarefas de estudo, mesmo
|
394 |
+
quando o trabalho é difícil. Uma pontuação alta significa que você se esforça bastante em seus estudos.
|
395 |
+
"""
|
396 |
+
col13.metric("Administração de esforços ", round(administracao_de_esforcos,1), "-BAIXA" if (round(administracao_de_esforcos, 1) < limite) else "ALTA", help = help_admesforcos)
|
397 |
+
else:
|
398 |
+
st.warning("Aluno ainda não respondeu ao questionário.")
|
399 |
+
|
400 |
+
with grafico:
|
401 |
+
df_quest_reg = st.session_state["df_respostas"]
|
402 |
+
if len (df_quest_reg[df_quest_reg["Endereço de e-mail"] == email_estudante_selecionado]) > 0:
|
403 |
+
dfreg = df_quest_reg[df_quest_reg["Endereço de e-mail"] == email_estudante_selecionado].iloc[0]
|
404 |
+
media_orientacao_metas_intrinsecas = np.mean([dfreg.iloc[2], dfreg.iloc[3]])
|
405 |
+
media_orientacao_metas_extrinsicas = np.mean([dfreg.iloc[4], dfreg.iloc[5]])
|
406 |
+
media_valorizacao_da_atividade = np.mean([dfreg.iloc[6], dfreg.iloc[7], dfreg.iloc[8], dfreg.iloc[9], dfreg.iloc[10], dfreg.iloc[11]])
|
407 |
+
controle_do_aprendizado = np.mean([dfreg.iloc[12], dfreg.iloc[13], dfreg.iloc[14]])
|
408 |
+
autoeficacia_para_aprendizado = np.mean([dfreg.iloc[15], dfreg.iloc[16], dfreg.iloc[17], dfreg.iloc[18]])
|
409 |
+
ansiedade_em_testes = np.mean([dfreg.iloc[19], dfreg.iloc[20], dfreg.iloc[21], dfreg.iloc[22], dfreg.iloc[23]])
|
410 |
+
ensaio_memorizacao = np.mean([dfreg.iloc[24], dfreg.iloc[25], dfreg.iloc[26], dfreg.iloc[27], dfreg.iloc[28]])
|
411 |
+
elaboracao = np.mean([dfreg.iloc[29], dfreg.iloc[30]])
|
412 |
+
organizacao = np.mean([dfreg.iloc[31], dfreg.iloc[32], dfreg.iloc[33]])
|
413 |
+
pensamento_critico = np.mean([dfreg.iloc[34]])
|
414 |
+
autorregulacao_metacognitiva = np.mean([dfreg.iloc[35], dfreg.iloc[36], dfreg.iloc[37], dfreg.iloc[38], dfreg.iloc[39]])
|
415 |
+
tempo_e_ambiente_de_estudo = np.mean([dfreg.iloc[40]])
|
416 |
+
administracao_de_esforcos = np.mean([dfreg.iloc[41], dfreg.iloc[42], dfreg.iloc[43], dfreg.iloc[44], dfreg.iloc[45]])
|
417 |
+
|
418 |
+
st.success("Escalas de Motivação")
|
419 |
+
fig, ax = plt.subplots()
|
420 |
+
constructors = ["Orientação a metas intrinsecas", "Orientação a metas extrinsicas", "Valorização da atividade", "Controle doaprendizado",
|
421 |
+
"Autoeficacia para aprendizado", "Ansiedade em testes"]
|
422 |
+
counts = [media_orientacao_metas_intrinsecas, media_orientacao_metas_extrinsicas, media_valorizacao_da_atividade,controle_do_aprendizado, autoeficacia_para_aprendizado, ansiedade_em_testes]
|
423 |
+
graf1 = ax.barh(constructors, counts, color='#909090')
|
424 |
+
ax.bar_label(graf1, fmt="%.01f", size=10, label_type="edge")
|
425 |
+
ax.set_xlabel('Resposta')
|
426 |
+
ax.set_xticks([1,2,3,4,5,6,7])
|
427 |
+
|
428 |
+
st.pyplot(plt)
|
429 |
+
st.divider()
|
430 |
+
st.success("Escalas de Estratégias de aprendizagem")
|
431 |
+
fig, ax = plt.subplots()
|
432 |
+
constructors = ["Ensaio memorização","Elaboração","Organização","Pensamento crítico","Autorregulacao Metacognitiva","Tempo e ambiente de estudo","Administração de esforços"]
|
433 |
+
counts = [ensaio_memorizacao,elaboracao,organizacao,pensamento_critico,autorregulacao_metacognitiva,tempo_e_ambiente_de_estudo,administracao_de_esforcos]
|
434 |
+
graf1 = ax.barh(constructors, counts, color='#909090')
|
435 |
+
ax.bar_label(graf1, fmt="%.01f", size=10, label_type="edge")
|
436 |
+
ax.set_xlabel('Resposta')
|
437 |
+
ax.set_xticks([1,2,3,4,5,6,7])
|
438 |
+
st.pyplot(plt)
|
439 |
+
else:
|
440 |
+
st.warning("Aluno ainda não respondeu ao questionário.")
|
441 |
+
with dicas:
|
442 |
+
dicas_do_professor, dicas_automaticas = st.tabs(["Recomendação personalizada", "Recomendação automática"])
|
443 |
+
with dicas_do_professor:
|
444 |
+
st.success("Enviar uma recomendação personalizada para este aluno")
|
445 |
+
txt_titulo_dica_prof = st.text_input(label="Título", key="txt_titulo_dica_prof", value="Recomendação individual para {}".format(nome_estudante_selecionado))
|
446 |
+
txt_desc_dica_prof = st.text_area(height=180,
|
447 |
+
label="Descrição", key="txt_desc_dica_prof", value="""Prezado {}, percebemos que o seu desempenho foi satisfatório
|
448 |
+
para o tópico <nome do tópico>, contido no assunto <nome do assunto>, cujo valor de
|
449 |
+
rendimento foi igual a <coeficiente desempenho>, mas vimos que você não interagiu com
|
450 |
+
todos os recursos, sugerimos que interaja com os recursos <recursos não utilizados> para que
|
451 |
+
possa finalizar o módulo com aproveitamento apropriado, pois seu rendimento de interação
|
452 |
+
é <coeficiente interação>, abaixo do esperado que é 60%""".format(nome_estudante_selecionado))
|
453 |
+
btn_enviar_dica_professor = st.button("Enviar", key ="btndicaprofessor")
|
454 |
+
|
455 |
+
def enviar_dica_professor(student_id, titulo, descricao):
|
456 |
+
token = st.session_state['token']
|
457 |
+
classroom = build('classroom', 'v1', credentials=Credentials(token=token.get("access_token")))
|
458 |
+
dica = {
|
459 |
+
'title': titulo,
|
460 |
+
'description': descricao,
|
461 |
+
'state': 'PUBLISHED',
|
462 |
+
"assigneeMode": "INDIVIDUAL_STUDENTS",
|
463 |
+
"individualStudentsOptions": { "studentIds": [student_id] }
|
464 |
+
}
|
465 |
+
dica_enviada = classroom.courses().courseWorkMaterials().create(courseId=id_curso_selecionado, body=dica).execute()
|
466 |
+
(f"Diva enviada para o sala de aula do estudante: {dica_enviada.get('id')}")
|
467 |
+
|
468 |
+
if btn_enviar_dica_professor:
|
469 |
+
enviar_dica_professor(id_estudante_selecionado, txt_titulo_dica_prof, txt_desc_dica_prof)
|
470 |
+
|
471 |
+
with dicas_automaticas:
|
472 |
+
st.success("Recomendações automáticas identificadas pela análise do perfil de autorregulação")
|
473 |
+
|
474 |
+
df_quest_reg = st.session_state["df_respostas"]
|
475 |
+
if len (df_quest_reg[df_quest_reg["Endereço de e-mail"] == email_estudante_selecionado]) > 0:
|
476 |
+
|
477 |
+
dfreg = df_quest_reg[df_quest_reg["Endereço de e-mail"] == email_estudante_selecionado].iloc[0]
|
478 |
+
|
479 |
+
media_orientacao_metas_intrinsecas = np.mean([dfreg.iloc[2], dfreg.iloc[3]])
|
480 |
+
media_orientacao_metas_extrinsicas = np.mean([dfreg.iloc[4], dfreg.iloc[5]])
|
481 |
+
media_valorizacao_da_atividade = np.mean([dfreg.iloc[6], dfreg.iloc[7], dfreg.iloc[8], dfreg.iloc[9], dfreg.iloc[10], dfreg.iloc[11]])
|
482 |
+
controle_do_aprendizado = np.mean([dfreg.iloc[12], dfreg.iloc[13], dfreg.iloc[14]])
|
483 |
+
autoeficacia_para_aprendizado = np.mean([dfreg.iloc[15], dfreg.iloc[16], dfreg.iloc[17], dfreg.iloc[18]])
|
484 |
+
ansiedade_em_testes = np.mean([dfreg.iloc[19], dfreg.iloc[20], dfreg.iloc[21], dfreg.iloc[22], dfreg.iloc[23]])
|
485 |
+
ensaio_memorizacao = np.mean([dfreg.iloc[24], dfreg.iloc[25], dfreg.iloc[26], dfreg.iloc[27], dfreg.iloc[28]])
|
486 |
+
elaboracao = np.mean([dfreg.iloc[29], dfreg.iloc[30]])
|
487 |
+
organizacao = np.mean([dfreg.iloc[31], dfreg.iloc[32], dfreg.iloc[33]])
|
488 |
+
pensamento_critico = np.mean([dfreg.iloc[34]])
|
489 |
+
autorregulacao_metacognitiva = np.mean([dfreg.iloc[35], dfreg.iloc[36], dfreg.iloc[37], dfreg.iloc[38], dfreg.iloc[39]])
|
490 |
+
tempo_e_ambiente_de_estudo = np.mean([dfreg.iloc[40]])
|
491 |
+
administracao_de_esforcos = np.mean([dfreg.iloc[41], dfreg.iloc[42], dfreg.iloc[43], dfreg.iloc[44], dfreg.iloc[45]])
|
492 |
+
|
493 |
+
df_dicas = st.session_state["df_dicas"]
|
494 |
+
option = st.selectbox(
|
495 |
+
'Tipo Tarefa',
|
496 |
+
('Simulado', 'Participação em Fórum'))
|
497 |
+
st.divider()
|
498 |
+
if (media_orientacao_metas_intrinsecas <= limite) or (media_orientacao_metas_extrinsicas <= limite) or (media_valorizacao_da_atividade <= limite) or (controle_do_aprendizado <= limite):
|
499 |
+
st.write("### Motivo: baixa capacidade de Orientação à metas intrínsecas")
|
500 |
+
st.text_input(key="rec1", value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título" )
|
501 |
+
st.write("Descrição")
|
502 |
+
for l in str(df_dicas["dicas"].iloc[0]).split(" / "):
|
503 |
+
st.success(l)
|
504 |
+
st.divider()
|
505 |
+
if autoeficacia_para_aprendizado <= limite:
|
506 |
+
st.write("### Motivo: baixa capacidade de autoeficácia no aprendizado")
|
507 |
+
st.text_input(key="rec2",value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título")
|
508 |
+
st.write("Descrição")
|
509 |
+
for l in str(df_dicas["dicas"].iloc[1]).split(" / "):
|
510 |
+
st.success(l)
|
511 |
+
st.divider()
|
512 |
+
if ansiedade_em_testes <= limite:
|
513 |
+
st.markdown("### Motivo: baixa ansiedade em testes")
|
514 |
+
st.text_input(key="rec3",value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título")
|
515 |
+
st.write("Descrição")
|
516 |
+
for l in str(df_dicas["dicas"].iloc[2]).split(" / "):
|
517 |
+
st.success(l)
|
518 |
+
st.divider()
|
519 |
+
if ensaio_memorizacao <= limite:
|
520 |
+
st.write("### Motivo: baixa memorização")
|
521 |
+
st.text_input(key="rec4",value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título")
|
522 |
+
st.write("Descrição")
|
523 |
+
for l in str(df_dicas["dicas"].iloc[3]).split(" / "):
|
524 |
+
st.success(l)
|
525 |
+
st.divider()
|
526 |
+
if elaboracao <= limite:
|
527 |
+
st.write("### Motivo: baixa elaboração")
|
528 |
+
st.text_input(key="rec5",value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título")
|
529 |
+
st.write("Descrição")
|
530 |
+
for l in str(df_dicas["dicas"].iloc[4]).split(" / "):
|
531 |
+
st.success(l)
|
532 |
+
st.divider()
|
533 |
+
if organizacao <= limite:
|
534 |
+
st.write("### Motivo: baixa organização")
|
535 |
+
st.text_input(key="rec6",value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título")
|
536 |
+
st.write("Descrição")
|
537 |
+
for l in str(df_dicas["dicas"].iloc[5]).split(" / "):
|
538 |
+
st.success(l)
|
539 |
+
st.divider()
|
540 |
+
#if pensamento_critico <= 3:
|
541 |
+
# st.write(df_dicas["dicas"].iloc[2])
|
542 |
+
if autorregulacao_metacognitiva <= limite:
|
543 |
+
st.write("### Motivo: baixa autorregulação metacognitiva")
|
544 |
+
st.text_input(key="rec7",value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título")
|
545 |
+
st.write("Descrição")
|
546 |
+
for l in str(df_dicas["dicas"].iloc[6]).split(" / "):
|
547 |
+
st.success(l)
|
548 |
+
st.divider()
|
549 |
+
if tempo_e_ambiente_de_estudo <= limite:
|
550 |
+
st.write("### Motivo: baixo tempo e ambiente de estudo")
|
551 |
+
st.text_input(key="rec8",value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título")
|
552 |
+
st.write("Descrição")
|
553 |
+
for l in str(df_dicas["dicas"].iloc[7]).split(" / "):
|
554 |
+
st.success(l)
|
555 |
+
st.divider()
|
556 |
+
if administracao_de_esforcos <= limite:
|
557 |
+
st.write("### Motivo: baixo administração de esforços")
|
558 |
+
st.text_input(key="rec9",value="Recomendação individual para {}".format(nome_estudante_selecionado), label="Título")
|
559 |
+
st.write("Descrição")
|
560 |
+
for l in str(df_dicas["dicas"].iloc[8]).split(" / "):
|
561 |
+
st.success(l)
|
562 |
+
st.divider()
|
563 |
+
btn_enviar_dica_automaticas = st.button("Enviar todas", key ="btndicaautomatica")
|
564 |
+
if btn_enviar_dica_automaticas:
|
565 |
+
if media_orientacao_metas_intrinsecas <= 4 or media_orientacao_metas_extrinsicas <= 3 or media_valorizacao_da_atividade <= 3 or controle_do_aprendizado <= 3:
|
566 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[0], df_dicas["dicas"].iloc[0])
|
567 |
+
if autoeficacia_para_aprendizado <= 4:
|
568 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[1], df_dicas["dicas"].iloc[1])
|
569 |
+
if ansiedade_em_testes <= 4:
|
570 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[2], df_dicas["dicas"].iloc[2])
|
571 |
+
if ensaio_memorizacao <= 4:
|
572 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[3], df_dicas["dicas"].iloc[3])
|
573 |
+
if elaboracao <= 4:
|
574 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[4], df_dicas["dicas"].iloc[4])
|
575 |
+
if organizacao <= 4:
|
576 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[5], df_dicas["dicas"].iloc[5])
|
577 |
+
if autorregulacao_metacognitiva <= 4:
|
578 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[6], df_dicas["dicas"].iloc[6])
|
579 |
+
if tempo_e_ambiente_de_estudo <= 4:
|
580 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[7], df_dicas["dicas"].iloc[7])
|
581 |
+
if administracao_de_esforcos <= 4:
|
582 |
+
enviar_dica_professor(id_estudante_selecionado, "Dica: " + df_dicas["constructo"].iloc[8], df_dicas["dicas"].iloc[8])
|
583 |
+
else:
|
584 |
+
st.warning("Aluno ainda não respondeu ao questionário.")
|
pages/04_Enviar_recomendacoes.py
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
|
3 |
+
from google.oauth2.credentials import Credentials
|
4 |
+
from googleapiclient.discovery import build
|
5 |
+
from googleapiclient.discovery import build
|
6 |
+
|
7 |
+
st.title("Enviar recomendações personalizadas para todos os alunos")
|
8 |
+
st.divider()
|
9 |
+
|
10 |
+
if "df_estudantes" not in st.session_state:
|
11 |
+
st.error("Volte para a tela principal faça login e carregue uma turma!")
|
12 |
+
else:
|
13 |
+
|
14 |
+
df_estudantes = st.session_state["df_estudantes"]
|
15 |
+
id_curso_selecionado = st.session_state["id_curso_selecionado"]
|
16 |
+
|
17 |
+
st.write("Dados dos alunos")
|
18 |
+
|
19 |
+
st.dataframe(df_estudantes, hide_index=True,
|
20 |
+
column_config={"userId": "ID do usuário",
|
21 |
+
"nome": "Nome",
|
22 |
+
"email": "E-mail"} )
|
23 |
+
|
24 |
+
st.write("Dicas para todos os alunos")
|
25 |
+
txt_titulo_dica_prof = st.text_input("Título", key="txt_titulo_dica_prof")
|
26 |
+
txt_desc_dica_prof = st.text_area("Descrição", key="txt_desc_dica_prof")
|
27 |
+
btn_enviar_dica_professor_todos = st.button("Enviar", key ="btndicaprofessor")
|
28 |
+
|
29 |
+
def enviar_dica_professor(titulo, descricao):
|
30 |
+
|
31 |
+
token = st.session_state['token']
|
32 |
+
classroom = build('classroom', 'v1', credentials=Credentials(token=token.get("access_token")))
|
33 |
+
|
34 |
+
dica = {
|
35 |
+
'title': titulo,
|
36 |
+
'description': descricao,
|
37 |
+
'state': 'PUBLISHED',
|
38 |
+
}
|
39 |
+
|
40 |
+
# Enviar mensagem
|
41 |
+
dica_enviada = classroom.courses().courseWorkMaterials().create(courseId=id_curso_selecionado, body=dica).execute()
|
42 |
+
(f"Diva enviada para todos os alunos do sala de aula: {dica_enviada.get('id')}")
|
43 |
+
|
44 |
+
if btn_enviar_dica_professor_todos:
|
45 |
+
enviar_dica_professor(txt_titulo_dica_prof, txt_desc_dica_prof)
|
46 |
+
|
47 |
+
|
48 |
+
|
49 |
+
|
50 |
+
|
51 |
+
|
52 |
+
|
53 |
+
|
pages/05_Listar_questionario.py
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import streamlit as st
|
3 |
+
|
4 |
+
st.title("Lista das perguntas do questionário de autorregulação")
|
5 |
+
st.divider()
|
6 |
+
|
7 |
+
if "id_curso_selecionado" not in st.session_state:
|
8 |
+
st.error("Volte para a tela principal faça login e carregue uma turma!")
|
9 |
+
else:
|
10 |
+
|
11 |
+
df_mslq = pd.read_csv("datasets/mslq.csv", names=["id_questao","Tipo","Constructo","Questão"], header=0 , usecols=["Tipo","Constructo","Questão"])
|
12 |
+
st.dataframe(df_mslq, hide_index=True)
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
|
pages/06_Listar_recomendacoes.py
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
|
4 |
+
|
5 |
+
|
6 |
+
st.title("Lista das recomendacões automáticas de autorregulação")
|
7 |
+
st.divider()
|
8 |
+
|
9 |
+
if "id_curso_selecionado" not in st.session_state:
|
10 |
+
st.error("Volte para a tela principal faça login e carregue uma turma!")
|
11 |
+
else:
|
12 |
+
df_dicas = pd.read_csv("datasets/dicas.csv", names=["ID", "Tipo", "Título", "Constructo", "Dicas"], header=0 , usecols=["Tipo", "Título", "Constructo", "Dicas"])
|
13 |
+
df_dicas
|
pages/07_Listar_cursos.py
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
|
3 |
+
st.title("Lista dos cursos do sala de aula")
|
4 |
+
st.divider()
|
5 |
+
|
6 |
+
if "df_cursos" not in st.session_state:
|
7 |
+
st.error("Volte para a tela principal faça login e carregue uma turma!")
|
8 |
+
else:
|
9 |
+
|
10 |
+
df_cursos = st.session_state['df_cursos']
|
11 |
+
df_cursos
|
pages/08_Listar_alunos.py
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
from google.oauth2.credentials import Credentials
|
4 |
+
from googleapiclient.discovery import build
|
5 |
+
|
6 |
+
|
7 |
+
st.title(f"Lista dos alunos do sala de aula.")
|
8 |
+
st.divider()
|
9 |
+
|
10 |
+
if "id_curso_selecionado" not in st.session_state:
|
11 |
+
st.error("Volte para a tela principal faça login e carregue uma turma!")
|
12 |
+
else:
|
13 |
+
|
14 |
+
token = st.session_state['token']
|
15 |
+
classroom = build('classroom', 'v1', credentials=Credentials(token=token.get("access_token")))
|
16 |
+
|
17 |
+
id_curso_selecionado = st.session_state["id_curso_selecionado"]
|
18 |
+
|
19 |
+
st.write(f"Curso selecionado: {id_curso_selecionado}")
|
20 |
+
|
21 |
+
# carrregar estudantes daquele curso
|
22 |
+
results = classroom.courses().students().list(courseId=id_curso_selecionado).execute()
|
23 |
+
estudantes = results.get("students", [])
|
24 |
+
lista_estudante = list()
|
25 |
+
for estudante in estudantes:
|
26 |
+
lista_estudante.append([estudante['userId'], estudante["profile"]["name"]["fullName"], estudante["profile"]["emailAddress"]])
|
27 |
+
|
28 |
+
df_estudantes = pd.DataFrame(lista_estudante, columns=["userId", "nome", "email"])
|
29 |
+
st.session_state["df_estudantes"] = df_estudantes
|
30 |
+
df_estudantes
|
pages/09_Configuracoes.py
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
|
3 |
+
st.title("Configurações")
|
4 |
+
st.divider()
|
5 |
+
|
6 |
+
if "id_curso_selecionado" not in st.session_state:
|
7 |
+
st.error("Volte para a tela principal faça login e carregue uma turma!")
|
8 |
+
else:
|
9 |
+
|
10 |
+
st.header("Questionários")
|
11 |
+
st.write("Questionário Autorregulação 1.2 - [link](https://docs.google.com/forms/d/e/1FAIpQLSdPd0MY4UEUj3nmPB0yWE5njMdxIVmaVF6WYMzis5MDeMsubw/viewform)")
|
12 |
+
st.write("Questionário BigFive 1.2 - [link](https://docs.google.com/forms/d/e/1FAIpQLSdClNlfFq6D-6OPI8T-qeRZGScNd2aog_Pdu_3yfQHVI8T-Pg/viewform)")
|
13 |
+
st.divider()
|
14 |
+
|
15 |
+
st.header("Documentação")
|
16 |
+
|
17 |
+
#st.write("Questionário Autorregulação 1.1 - [link](https://docs.google.com/forms/d/e/1FAIpQLSfGXe0yUZve0ecQBCoUU7W7rQr4XQ6B9jDW1cKpG6gJt6c5YA/viewform)")
|
18 |
+
#st.write("Questionário BigFive 1.1 - [link](https://docs.google.com/forms/d/e/1FAIpQLSfnb-IOWP2ZdXbdBcO4dAzmc_6sQt6--TxywxJUaIfK-K3RqA/viewform)")
|
19 |
+
#st.write("Questionário de autorregulação X.0 - [link](https://docs.google.com/forms/d/e/1FAIpQLSeCw4dC2bJnr69qf2HkvOpFAAumkYq1hHvmYAO-N0CMERYyKg/viewform)")
|
20 |
+
|
21 |
+
st.write("Big Five - [link](https://edisciplinas.usp.br/pluginfile.php/5081564/mod_resource/content/1/Exercicio%20de%20Avaliacao%20de%20Personalidade_Big%20Five_v%202018%2010%2022_v4.pdf)")
|
22 |
+
st.write("Autorregulação - [link](https://drive.google.com/file/d/1Y3daYu1N1GpK29tkF3L5zocDLFI57yZI/view?usp=drive_link)")
|
23 |
+
st.divider()
|
24 |
+
|
25 |
+
st.header("Parametrização do sistema")
|
26 |
+
valor = st.session_state["limite"]
|
27 |
+
limite = st.slider('Qual o limite da Autorregulação?', 0, 7, valor)
|
28 |
+
st.session_state["limite"] = limite
|
29 |
+
|
pages/10_Sobre.py
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
|
3 |
+
st.title("Sobre o NEOAVA")
|
4 |
+
|
5 |
+
st.divider()
|
6 |
+
|
7 |
+
st.write("""
|
8 |
+
* Esse AVA apresenta o perfil de autorregulação e bigfive dos estudantes!
|
9 |
+
* Recomendações são geradas para o estudante de acordo com o perfil de autorregulação e bigfive!
|
10 |
+
* O momento de envio das dicas fica a cargo do professor!
|
11 |
+
* Prova de conceito para o Doutorado de Alana Viana Borges Neo (email: viana.alana@gmail.com)
|
12 |
+
* Este AVA é construído baseado no Livro [Estratégias para recomendações de técnicas de autorregulação da aprendizagem](https://www.amazon.com/Estrat%C3%A9gias-recomenda%C3%A7%C3%B5es-t%C3%A9cnicas-autorregula%C3%A7%C3%A3o-aprendizagem-ebook/dp/B0CJWVN1VW/ref=sr_1_10?crid=FZTC9AFISN9N&keywords=autorregula%C3%A7%C3%A3o&qid=1696803151&sprefix=autorregula%C3%A7%C3%A3o%2Caps%2C172&sr=8-10), Alana Neo, 1ª Edição, (2023)
|
13 |
+
* Para acesso é necessário autorização. Envie um email para viana.alana@gmail.com com a solicitação para efetuar login.
|
14 |
+
""")
|
15 |
+
|
16 |
+
|
17 |
+
st.divider()
|
18 |
+
|
19 |
+
st.write("""
|
20 |
+
* Vá em configuração e preenha o questionário!
|
21 |
+
* Depois, na opção "Alunos" visualize o seu perfil!
|
22 |
+
* Se for professor da turma do sala de aula vc consegue ver o perfil de Todos os alunos!
|
23 |
+
""")
|
requirements.txt
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
streamlit
|
2 |
+
matplotlib
|
3 |
+
pandas
|
4 |
+
google-auth
|
5 |
+
google-api-python-client
|
6 |
+
oauth2client
|
7 |
+
protobuf
|
8 |
+
httpx-oauth
|
9 |
+
python-dotenv
|
10 |
+
typing_extensions
|
11 |
+
streamlit_oauth
|
todo.md
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Arquivo TODO
|
2 |
+
|
3 |
+
## TODO: Enviar dica para o aluno
|
4 |
+
## TODO: Exibir as atividades do classrrom
|
5 |
+
|
6 |
+
## Para um novo usuário é necessário: incluir no sala de aula, incluir no google cloud e dar permissão na planilha
|