A RaquetMatch API é o backend do aplicativo mobile RaquetMatch, uma plataforma de intermediação entre alunos e professores de esportes de raquete. Esta API gerencia o cadastro de usuários, perfis de professores, buscas geoespaciais, agendamentos de aulas e muito mais.
- Gerenciamento de usuários (alunos e professores)
- Perfis detalhados de professores com especialidades e disponibilidade
- Sistema de busca por proximidade
- Agendamento de aulas
- Autenticação e autorização via JWT
- Node.js - Ambiente de execução JavaScript
- Fastify - Framework web de alta performance
- MongoDB - Banco de dados NoSQL com suporte a consultas geoespaciais
- Docker - Conteinerização para ambiente consistente
- JWT - Autenticação e autorização
git clone https://github.com/cordeiroe/API_RaquetApp.git
cd raquet-api
- Crie um arquivo
.env
baseado no.env.example
:
cp .env.example .env
- Edite o arquivo
.env
com suas configurações:
PORT=3000
NODE_ENV=development
# Configurações do MongoDB
MONGO_USER=seu_usuario
MONGO_PASSWORD=sua_senha
MONGO_HOST=localhost
MONGO_PORT=27017
MONGO_DB=raquetdb
# Configurações do Mongo Express
MONGO_EXPRESS_USER=seu_usuario
MONGO_EXPRESS_PASSWORD=sua_senha
# JWT
JWT_SECRET=sua_chave_secreta_muito_segura
.env
com valores reais ou faça commit dele no repositório.
- Inicie os containers do MongoDB e Mongo Express:
docker-compose up -d
- Aguarde os containers estarem prontos e então inicie a aplicação:
npm install
npm run dev
Se preferir usar um MongoDB já instalado em sua máquina:
- Ajuste as configurações no
.env
para apontar para sua instalação do MongoDB - Instale as dependências e inicie a aplicação:
npm install
npm run dev
A documentação completa da API está disponível via Swagger UI:
- URL do Swagger: http://localhost:3000/docs
Esta documentação interativa permite explorar todos os endpoints, parâmetros e testar as funcionalidades da API diretamente pelo navegador.
- Autenticação:
/auth/login
- Usuários:
/users
- Perfis de Professores:
/teachers
- Busca de Professores:
/teachers/search
src/
├── models/ # Modelos do MongoDB
├── plugins/ # Plugins do Fastify
├── routes/ # Rotas da API
│ ├── auth/ # Autenticação
│ ├── users/ # Gerenciamento de usuários
│ └── teachers/ # Perfis de professores
├── schemas/ # Schemas comuns
└── app.js # Configuração principal
- Implementar sistema de agendamentos
- Adicionar busca geoespacial para encontrar professores próximos
- Desenvolver sistema de avaliações de professores
- Implementar notificações
- Implementar sistema de pagamentos
- Desenvolver testes automatizados (em breve)
Os testes automatizados serão desenvolvidos em breve. Por enquanto, você pode testar manualmente usando o Swagger ou ferramentas como Insomnia/Postman.
# Quando disponíveis, os testes poderão ser executados com:
npm test
Esta API serve como backend para o aplicativo mobile RaquetMatch, disponível para Android e iOS, que facilita a conexão entre alunos e professores de esportes de raquete.
Desenvolvido por Emerson Marques © 2025