Skip to content
GustavoSilva-devPublic

About

A full stack project for a responsive truck GPS, which adapts routes for different cargo vehicles. - FEBRACE 2026

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Latest commit

 

History

54 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

🚗 RoadHelp - GPS Adaptativo para Veículos de Carga

Um projeto full stack inovador para um GPS funcional e interativo, especialmente desenvolvido para caminhões e veículos de carga. O sistema adapta rotas considerando as dimensões do veículo, oferecendo sistemas de cadastro, login e verificação automatizada de rodovias.

Participante de: FEBRACE 2026


🧠 Sobre o Projeto

RoadHelp é um projeto full stack desenvolvido como trabalho em grupo focado em inovação tecnológica. O sistema oferece:

  • ✅ Cadastro e Login Seguro - Autenticação com JWT e senhas criptografadas
  • ✅ GPS Adaptativo - Cálculo de rotas baseado nas dimensões do veículo
  • ✅ Interface Responsiva - Aplicação web progressiva (PWA)
  • ✅ Banco de Dados Robusto - Integração com MongoDB e Prisma ORM
  • ✅ Mapas Interativos - Visualização de rotas com MapLibre GL JS e TomTom API

🛠️ Tecnologias Utilizadas

Frontend:

  • HTML5 / CSS3
  • JavaScript
  • React
  • Vite
  • MapLibre GL JS
  • TomTom API

Backend:

  • Node.js
  • Express.js
  • JWT (JSON Web Tokens)
  • Bcrypt (Criptografia de senhas)
  • Prisma Client
  • MongoDB

Ferramentas:

  • Git / GitHub
  • npm

▶️ Como Executar

Pré-requisitos

Antes de começar, certifique-se de ter instalado:

  • Node.js (v14 ou superior)
  • npm (gerenciador de pacotes)
  • MongoDB (rodando localmente ou em nuvem)
  • Git

Passo a Passo

1️⃣ Clone o Repositório

git clone https://github.com/GustavoSilva-dev/RoadHelp-Project
cd RoadHelp-Project

2️⃣ Configurar Backend

# Acesse a pasta do servidor
cd "Projeto FeCEAP - Server"

# Instale as dependências
npm install

# Gere as dependências do Prisma Client
npx prisma generate

# Crie o arquivo .env (veja a seção de Configuração)
# Edite o arquivo .env com suas credenciais

# Dê permissão ao seu IP no MongoDB Atlas (se usar nuvem)

# Verifique o IP no arquivo server.js e na configuração do Frontend

# Inicie o servidor
node --watch server.js

O backend rodará em: http://localhost:3050

3️⃣ Configurar Frontend

# Abra outro terminal na raiz do projeto
cd Road-Help-Project

# Instale as dependências
npm install

# Inicie o servidor de desenvolvimento
npm run dev

O frontend rodará em: http://localhost:5173 (ou conforme indicado no terminal)


📁 Estrutura do Projeto

RoadHelp-Project/
├── Projeto FeCEAP - Server/        # Backend (Node.js + Express)
│   ├── server.js                   # Servidor principal
│   ├── .env.example                # Exemplo de variáveis de ambiente
│   ├── package.json
│   └── prisma/
│       └── schema.prisma           # Schema do banco de dados
│
├── Road-Help-Project/              # Frontend (React + Vite)
│   ├── src/
│   │   ├── components/
│   │   ├── pages/
│   │   ├── App.jsx
│   │   └── main.jsx
│   ├── package.json
│   └── vite.config.js
│
└── README.md

🔌 Endpoints da API

Autenticação

Método Endpoint Descrição Requer Autenticação
POST /login Faz login do usuário ❌
POST /users Registra um novo usuário ❌

Usuários

Método Endpoint Descrição Requer Autenticação
GET /users Lista todos os usuários ❌
GET /user/:id Obtém dados de um usuário específico ✅

Exemplo de Requisição - Registro

POST /users
Content-Type: application/json

{
  "email": "usuario@email.com",
  "name": "Nome do Usuário",
  "password": "senha123",
  "v_name": "Volvo FH16",
  "v_height": 3.5,
  "v_width": 2.6,
  "v_length": 16.5
}

Exemplo de Requisição - Login

POST /login
Content-Type: application/json

{
  "email": "usuario@email.com",
  "password": "senha123"
}

Resposta (sucesso):

{
  "exists": true,
  "existsP": true,
  "name": "Nome do Usuário",
  "v_name": "Volvo FH16",
  "v_height": 3.5,
  "v_width": 2.6,
  "v_length": 16.5,
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Exemplo de Requisição - Obter Usuário

GET /user/USER_ID
Authorization: Bearer TOKEN_JWT

⚙️ Configuração de Ambiente

Crie um arquivo .env na pasta Projeto FeCEAP - Server com as seguintes variáveis:

# Porta do backend
PORT=3050

# Chave secreta para JWT
SECRET=sua_chave_secreta_aqui

# Conexão com MongoDB
DATABASE_URL=mongodb+srv://usuario:senha@cluster.mongodb.net/roadhelp?retryWrites=true&w=majority

# CORS (URL do frontend)
FRONTEND_URL=http://localhost:5173

# TomTom API (se usar)
TOMTOM_API_KEY=sua_chave_de_api_tomtom

Configuração do Frontend

Crie um arquivo .env na pasta Road-Help-Project:

# URL da API Backend
VITE_API_URL=http://localhost:3050

# TomTom API Key 
VITE_TOMTOM_API_KEY=sua_chave_de_api_tomtom

👥 Integrantes

  • Gustavo Silva - Desenvolvedor Full Stack (Front-End + Back-End)
  • Jefferson dos Santos - Desenvolvedor Front-End
  • Thiago Paes Moreira - Desenvolvimento e Integração com APIs de Geolocalização
  • Marcos Rodrigues - Suporte de Desenvolvimento
  • Akon Nogueira - Suporte de Desenvolvimento
  • Eduardo Santos Lúcio - Pesquisa

Desenvolvido com ❤️ para FEBRACE 2026

About

A full stack project for a responsive truck GPS, which adapts routes for different cargo vehicles. - FEBRACE 2026

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages