Vector é um aplicativo open source feito por universitários e para universitários, com foco em acessibilidade, segurança e inclusão no transporte estudantil.
O projeto nasceu em um hackathon com a missão de reduzir desigualdades no acesso ao ensino superior, oferecendo caronas seguras, econômicas e colaborativas.
- 🚗 Carona Solidária – Sistema de caronas gratuitas ou a baixo custo para estudantes em vulnerabilidade.
- ❤️ Comunidade Segura – Avaliação de motoristas, chat direto e hubs de encontro seguro.
- 🤝 Open Source – Código aberto para que qualquer pessoa possa auditar, contribuir e expandir.
- 💸 Baixo Custo Real – Preços acessíveis, pensados para a realidade financeira de estudantes.
- 🏆 Gamificação (futuro) – Pontos e recompensas para motoristas e usuários ativos.
- Repositório GitHub: https://github.com/claudio-asj/hackathona
- Deploy (Vercel): https://hackatona.vercel.app/
- Deploy de Teste (Vercel Dev): https://hackaton-dev.vercel.app/
- ⚡ Vite – Bundler rápido e moderno
- ⚛️ React com TypeScript
- 🎨 Shadcn/UI – Componentes acessíveis e estilizados
- 🔥 Firebase – Autenticação, banco de dados e hosting
- 🎭 Tailwind CSS – Estilização responsiva
- Ia generativa - Modelos open-source
Clone o repositório e instale as dependências:
cd hackathona
npm install
Crie um arquivo .env na raiz do projeto e adicione as chaves do Firebase:
VITE_API_KEY="AIzaS...."
VITE_AUTH_DOMAIN="hack..."
VITE_PROJECT_ID="hackatonamob4"
VITE_STORAGE_BUCKET="hack..."
VITE_MESSAGING_SENDER_ID="50..."
VITE_APP_ID="1:507969476135:web:1a2..."
VITE_MEASUREMENT_ID="G-X..."
Importante: nunca exponha suas próprias chaves de produção em repositórios públicos.
As chaves acima são de exemplo para rodar o projeto localmente.
npm run dev
O app ficará disponível em:
http://localhost:5173
Este é um projeto open source. Toda contribuição é bem-vinda!
- Faça um fork
- Crie uma branch (git checkout -b minha-feature)
- Commit suas alterações (git commit -m "feat: minha nova feature")
- Faça um push (git push origin minha-feature)
- Abra um Pull Request 🚀
IMPORT PANDAS 🐼
- Claudio Jr.
- Nicolas Macedo
- Bernardo Lopes
- Juan Perri
Backend Flask para o chatbot usando transformers e pipeline.
chat/
├── app.py # Aplicação principal Flask
├── run.py # Script para executar o servidor
├── wsgi.py # WSGI para produção
├── requirements.txt # Dependências Python
├── env.example # Exemplo de variáveis de ambiente
├── README.md # Esta documentação
├── config/ # Configurações
│ ├── __init__.py
│ └── settings.py
├── models/ # Modelos de ML
│ ├── __init__.py
│ └── chat_model.py
├── routes/ # Rotas da API
│ ├── __init__.py
│ └── chat_routes.py
├── services/ # Serviços
│ ├── __init__.py
│ └── chat_service.py
└── utils/ # Utilitários
├── __init__.py
└── validators.py
- Instale as dependências:
cd chat
pip install -r requirements.txt- Configure as variáveis de ambiente:
cp env.example .env
# Edite o arquivo .env com suas configurações- Execute o servidor:
python run.py- GET
/api/chat/health - Verifica se a API está funcionando
- GET
/api/chat/model/info - Retorna informações sobre o modelo carregado
- POST
/api/chat/session/create - Cria uma nova sessão de chat
- Resposta:
{
"session_id": "uuid-da-sessao",
"message": "Sessão criada com sucesso"
}- POST
/api/chat/session/{session_id}/message - Envia uma mensagem e recebe resposta
- Body:
{
"message": "Sua mensagem aqui",
"max_length": 1000,
"temperature": 0.7
}- Resposta:
{
"response": "Resposta do modelo",
"session_id": "uuid-da-sessao",
"timestamp": "2024-01-01T12:00:00",
"model": "microsoft/DialoGPT-medium"
}- GET
/api/chat/session/{session_id}/history - Retorna o histórico de mensagens da sessão
- DELETE
/api/chat/session/{session_id}/clear - Limpa o histórico da sessão
- POST
/api/chat/session/{session_id}/stream - Envia mensagem e recebe resposta em streaming
- Usa Server-Sent Events (SSE)
SECRET_KEY: Chave secreta do FlaskDEBUG: Modo debug (True/False)PORT: Porta do servidor (padrão: 5000)DEFAULT_MODEL: Modelo a ser usado (padrão: microsoft/DialoGPT-medium)MAX_MESSAGE_LENGTH: Comprimento máximo da mensagemDEFAULT_TEMPERATURE: Temperatura para geração (0.0-2.0)CORS_ORIGINS: Origens permitidas para CORS
python run.pyPara configurar todo o ambiente (virtualenv, dependências, criação de .env, download antecipado do modelo e opção 8-bit), use o script na raiz do projeto:
bash scripts/setup_local_llm.shOpções disponíveis:
--model <NOME>: força um modelo (ex:Qwen/Qwen1.8B-Chat)--simple: usarequirements_simple.txt(sem transformers) – útil para apenas API sem geração--8bit: tenta instalarbitsandbytese ativa carregamento 8-bit (GPU necessária)--python <bin>: especifica binário Python (ex:python3.11)
Exemplos:
# Setup padrão
bash scripts/setup_local_llm.sh
# Modelo específico maior
bash scripts/setup_local_llm.sh --model Qwen/Qwen1.8B-Chat
# Ambiente leve + 8-bit
bash scripts/setup_local_llm.sh --simple --8bit --model Qwen/Qwen1.5-0.5B-Chat
# Usando Python 3.11
bash scripts/setup_local_llm.sh --python python3.11Depois de rodar:
source .venv/bin/activate
python chat/run.pygunicorn chat.wsgi:appcurl http://localhost:5000/api/chat/health
curl -X POST http://localhost:5000/api/chat/session/create
curl -X POST http://localhost:5000/api/chat/session/{session_id}/message \
-H "Content-Type: application/json" \
-d '{"message": "Olá, como você está?"}'As rotas da API seguem o padrão RESTful e retornam JSON.
Este projeto é licenciado sob a MIT License.
Sinta-se livre para usar, modificar e compartilhar.