Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 35 additions & 60 deletions src/app.py
Original file line number Diff line number Diff line change
@@ -1,70 +1,45 @@
import streamlit as st
import streamlit_antd_components as sac

import menu.discord
import menu.feedbacks
import menu.home
import menu.py2020
import menu.py2021
import menu.speakers
import menu.talks
import menu.tutorials
import menu.youtube
import util
from menu import (home, py2020)

st.set_page_config(
page_title="Python Brasil",
page_icon="🐍",
layout="wide",
menu_items={"Report a bug": "https://github.com/pybropendata/pythonbrasil-opendata/issues"},
)

def main():
EVENTS = {
"Início": (menu.home, None),
"Pyhton Brasil 2020": (menu.py2020, 2020),
"Pyhton Brasil 2021": (menu.py2021, 2021),
}

PAGES = {
"Palestras": menu.talks,
"Tutoriais": menu.tutorials,
"Ministrantes": menu.speakers,
"Lives Youtube": menu.youtube,
"Discord": menu.discord,
"Feedback": menu.feedbacks,
# Exibe uma mensagem de boas-vindas ao usuário na barra lateral
st.sidebar.image("./assets/PyBrOpenData-alternativa.png")
st.sidebar.markdown("**.Dados Abertos Python Brasil.**", unsafe_allow_html=True)
# Adiciona uma divisória na barra lateral
st.sidebar.divider()

with st.sidebar:
pagina_selecionada = sac.menu([
sac.MenuItem("Início", icon="house-fill"),
sac.MenuItem('Edições', icon='box-fill', children=[
sac.MenuItem("PyBr 2020",icon="chevron-right"),
#sac.MenuItem("PyBr 2021",icon="chevron-right"),
#sac.MenuItem("PyBr 2022",icon="chevron-right"),
#sac.MenuItem("PyBr 2023",icon="chevron-right"),
#sac.MenuItem("PyBr 2024",icon="chevron-right"),
]),
sac.MenuItem(type='divider'),
sac.MenuItem('github', icon='github', href="https://github.com/pybropendata/pythonbrasil-opendata")
], open_all=True)

page_mapping = {
"Início": home.main,
"Edições": py2020.main,
"PyBr 2020": py2020.main
}

st.sidebar.write()

svg = util.svg_to_line("./assets/pylogo75.svg")
st.sidebar.write(
f"{util.parse_svg_html(svg)}",
unsafe_allow_html=True,
)

st.sidebar.title("Visualizar dados do evento")
event_select = st.sidebar.selectbox("", list(EVENTS.keys()))
event = EVENTS[event_select]
util.write_page(event[0])

if event[0].has_ok:
st.sidebar.title("Páginas")
page_selection = st.sidebar.radio("", list(PAGES.keys()))
page = PAGES[page_selection]
with st.spinner(f"Carregando {page_selection} ..."):
util.write_page(page, year=event[1])

st.sidebar.title("Contribua")
st.sidebar.info(
"Esse é um projeto de código aberto que aceita contribuições, comentários e ajuda são bem vindos. "
"Você encontra o código fonte no seguinte repositório [pythonbrasil-opendata](https://github.com/pybropendata/pythonbrasil-opendata). "
"Esse projeto também agradece a MarcSkovMadsen por manter o [awesome-streamlit](https://github.com/MarcSkovMadsen/awesome-streamlit). "
"Algumas partes de códigos e dicas vem diretamente dessa excelente curadoria, recomendamos também contribuir com esse projeto. "
)
st.sidebar.title("Sobre")
st.sidebar.info(
"""
Este é o projeto de dados abertos dos eventos da Python Brasil,tendo como base os dados de inscrições, acesso dos videos das lives do Youtube e dados de metricas dos servidor do Discord
utilizado durante o evento.
A fonte de dados é o [repositório oficial de dados do evento](https://github.com/pythonbrasil/dados/blob/main/dados/README.md).
Todos os dados utilizados aqui foram a anonimizados, além disso os mesmos as análises devem respeitar tando o [código de conduta](https://python.org.br/cdc/) quando leis vigentes no Brasil.
"""
)

page_mapping[pagina_selecionada]()


if __name__ == "__main__":
main()
main()
Empty file added src/menu/__init__.py
Empty file.
47 changes: 39 additions & 8 deletions src/menu/home.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,41 @@
import streamlit as st

import util

has_ok=False
def write(year=None):
util.write_title("- Python Brasil")
st.text("")
util.render_img("./assets/PyBrOpenData-alternativa.png", "Python Brasil Open Data")
st.text("")
def main():
st.header("Dados Abertos Python Brasil")
st.caption("Projeto de dados abertos do evento Python Brasil")

st.markdown(
"""
Este é o projeto de dados abertos dos eventos da Python Brasil,tendo como base os dados de inscrições, acesso dos videos das lives do Youtube e dados de metricas dos servidor do Discord
utilizado durante o evento.
A fonte de dados é o [repositório oficial de dados do evento](https://github.com/pythonbrasil/dados/blob/main/dados/README.md).
Todos os dados utilizados aqui foram a anonimizados, além disso os mesmos as análises devem respeitar tando o [código de conduta](https://python.org.br/cdc/) quando leis vigentes no Brasil.
"""
)
st.subheader("Contribua")
st.markdown(
"Esse é um projeto de código aberto que aceita contribuições, comentários e ajuda são bem vindos. "
"Você encontra o código fonte no seguinte repositório [pythonbrasil-opendata](https://github.com/pybropendata/pythonbrasil-opendata). "
"Esse projeto também agradece a MarcSkovMadsen por manter o [awesome-streamlit](https://github.com/MarcSkovMadsen/awesome-streamlit). "
"Algumas partes de códigos e dicas vem diretamente dessa excelente curadoria, recomendamos também contribuir com esse projeto. "
)

st.subheader("Deixe seu feedback")
#sentiment_mapping = ["1", "2", "3", "4", "5"]
#selected = st.feedback("stars")
#if selected is not None:
# st.markdown(f"Você deu {sentiment_mapping[selected]} estrela(s).")

with st.form("Diga o que você achou do projeto"):
st.markdown("Como você avalia esse projeto?")
st.feedback("stars")
st.text_input(
"✍🏻 Deixe seu comentário",
placeholder="Escreva aqui..."
)

# Every form must have a submit button.
submitted = st.form_submit_button("Submit")
if submitted:
st.success("Formulário enviado com sucesso!")
#TODO: salvar o comentário em algum lugar (banco de dados, arquivo, etc.)
39 changes: 33 additions & 6 deletions src/menu/py2020.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,36 @@
import streamlit as st
import streamlit_antd_components as sac

import util
def main():

has_ok=True
def write(year=None):
util.write_title("- PyBR2020 - ")
st.text("")
util.render_img("./assets/pybr2020-logo-colorido.png", "2020")

tabs = sac.tabs([
sac.TabsItem(label='Resumo'),
sac.TabsItem(label='Participantes'),
sac.TabsItem(label='Tutoriais'),
sac.TabsItem(label='Palestras'),
sac.TabsItem(label='Feedback'),
], align='center', use_container_width=True)

if tabs == 'Resumo':
col1, col2 = st.columns([2,1])
with col1:
st.markdown("Aqui você encontrará o resumo do evento Python Brasil 2020...LOREM IPSUM DOLOR SIT AMET, CONSETETUR SADIPSCING ELIT, SED DIAM NONUMY EIRMOD TEMPOR INVIDUNT UT LABORE ET DOLORE MAGNA ALIQUYAM ERAT, SED DIAM VOLUPTUA. AT VERO EOS ET ACCUSAMUS ET IUSTO ODIO DIGNISSIMOS DUCI MUS BLANDIT PRAESENTIUM VOLUPTATUM DELENITI ATQUE CORRUPTI QUOS DOLLORES ET QUAS MOL ESTIAS NOSTRUM ODIT FUGIT, SED QUIA CONSEQUUNTUR MAGNI DOLOR EUM FUGIAT VOLUPTAS SIT ASPERIORES REPELLENDUS AUTEM QUIA VOLUPTAS SIT ASPERIORES REPELLENDUS AUTEM QUIA VOLUPTAS SIT ASPERIORES REPELLENDUS AUTEM.")
with col2:
st.image("./assets/pybr2020-logo-colorido.png",
caption="Logo oficial da Python Brasil 2020",
use_column_width=True,
output_format="auto"
)

elif tabs == 'Participantes':
st.text("Aqui você encontrará informações sobre os participantes do evento.")

elif tabs == 'Tutoriais':
st.text("Aqui você encontrará informações sobre os tutoriais do evento.")

elif tabs == 'Palestras':
st.text("Aqui você encontrará informações sobre as palestras do evento.")

elif tabs == 'Feedback':
st.text("Aqui você encontrará informações sobre o feedback do evento.")