Mural UnB¶
Sobre¶
O Mural UnB é uma plataforma digital projetada para centralizar e recomendar oportunidades acadêmicas e profissionais dentro da Universidade de Brasília (UnB).
O objetivo é criar uma experiência personalizada, onde os estudantes possam facilmente descobrir oportunidades alinhadas aos seus interesses e histórico acadêmico. Ao analisar o perfil do usuário, a plataforma recomenda as opções mais relevantes e envia notificações sobre novas vagas.
Inclui oportunidades como:
Empresas juniores
Laboratórios de pesquisa
Equipes de Competição
Em resumo, o Mural UnB funciona como um mural virtual, que vai além de apenas listar oportunidades — ele ajuda os estudantes a se conectarem com as oportunidades certas, no momento certo.
Equipe¶
Tiago Bittencourt SM • ML & Agent Developer |
João Gonzaga PO • Backend Developer |
Luan Ludry Frontend Developer |
Lucas Fujimoto Backend Developer |
Maria Canuto Frontend Developer |
Matheus Saraiva Backend Developer |
Como Funciona¶
- Listagem de Oportunidades (Feed) → O usuário tem acesso a uma página com grande parte das oportunidades na UnB.
- Análise de perfil → O sistema identifica interesses e habilidades que o usuário quer ser recomendado por meio de Tags.
- Recomendações personalizadas → O estudante recebe oportunidades alinhadas ao seu perfil (tags).
Motivação¶
A falta de um canal centralizado dificulta o acesso dos estudantes às oportunidades dentro da UnB.
Atualmente, informações estão dispersas em murais físicos, e-mails institucionais e redes sociais, o que leva muitos alunos a perderem prazos importantes.
O Mural UnB surge como resposta a esse problema, oferecendo eficiência, transparência.
Tecnologias Utilizadas¶
Frontend¶
- React – https://reactjs.org/
- TypeScript – https://www.typescriptlang.org/
- Tailwind CSS – https://tailwindcss.com/
Dados¶
- Python – https://www.python.org/
- API - Gemini – https://docs.gemini.com/rest-api/
- JSON – https://www.json.org/json-en.html
- Pandas – https://pandas.pydata.org/
- GitHub Actions – https://docs.github.com/en/actions
Outros¶
- Git – https://git-scm.com/
- GitHub – https://github.com/
- GitHub Pages – https://pages.github.com/
- MkDocs – https://www.mkdocs.org/
Manual de instalção¶
Scripts de Backend e ETL¶
Esta pasta contém os scripts Python responsáveis pela extração, transformação e carregamento (ETL) dos dados, além das integrações com IA (Google Gemini).
Configuração Inicial¶
Antes de executar qualquer script, certifique-se de estar na raiz do projeto:
-
Ative o ambiente virtual:
source venv/bin/activate # Windows: venv\Scripts\activate -
Instale as dependências:
pip install -r requirements.txt pip install -r requirements-EJ.txt -
Configuração de API (Gemini): Para os scripts de IA funcionarem, crie um arquivo
.envna raiz do projeto contendo sua chave:GOOGLE_API_KEY="sua_chave_aqui"
Pipelines de Execução¶
Os comandos abaixo devem ser executados a partir da raiz do projeto.
- Pipeline de Laboratórios (FGA) Responsável por baixar o portfólio, extrair textos e buscar imagens na web.
# 1. Baixar o PDF oficial da UnB
python scripts/labs_pdf.py
# 2. Extrair dados, buscar imagens na web e gerar CSV
python scripts/extrair_labs_fga.py
Saída: data/Labs/labs_fga.csv e imagens em data/images/labs/.
- Pipeline de Empresas Juniores (EJs) Extrai dados dos editais e portfólios das EJs.
python scripts/extrair_empresas_juniores.py
3. Pipeline de Inteligência Artificial (Embeddings)¶
Gera vetores semânticos para permitir a busca inteligente e categorização.
# 1. Gerar embeddings para as tags base
python scripts/generate_embeddings_gemini.py
# 2. Alocar tags aos laboratórios baseado em similaridade semântica
python scripts/alocar_tags_embeddings.py
Testes e Qualidade¶
O projeto utiliza pytest para testes unitários (com mocks de rede/arquivos) e pylint para análise estática.
# Rodar todos os testes unitários
```bash
# 1. Clone o repositório
git clone https://github.com/unb-mds/2025-2-Mural-UnB.git
# 2. Configuração do Backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 3. Configuração do Frontend
cd site
npm install
npm run dev