O Rivaly é um aplicativo de gestão esportiva universitária voltado para atléticas universitárias, funcionando como redes sociais dedicadas ao esporte. A plataforma permite que:
- Usuários comuns acompanhem campeonatos, jogos, notícias e estatísticas
- Usuários administradores criem e gerenciem atléticas de suas universidades
O sistema funciona como uma rede social esportiva onde cada Atlética atua como um hub central que gerencia:
- Times
- Torneios e Campeonatos
- Notícias
- Jogadores
- Partidas e Estatísticas
Usuário → Universidade → Atlética
↓
Atlética → Teams, Championships, News
↓
Championship → Tournaments → Matches → Results
↓
Teams → Players → Statistics
- Backend: Go 1.24 com Gin Framework
- ORM: GORM
- Banco de Dados: PostgreSQL
- Documentação: Swagger/OpenAPI
- Validação: go-playground/validator
- Configuração: godotenv
O projeto implementa um sistema de permissões baseado em roles para cada atlética:
- Owner: Criador da atlética (controle total)
- Admin: Administrador com controle total
- Moderator: Permissões limitadas (criar notícias, mas não editar torneios)
- Member: Apenas visualiza e interage (curtir, comentar)
- Campeonatos e Torneios organizados por modalidade esportiva
- Partidas com resultados em tempo real
- Estatísticas detalhadas por jogador (gols, assistências, cartões)
- Escalações e lineups para cada partida
Os usuários podem seguir diferentes atléticas e receber notificações sobre:
- Novos jogos e resultados
- Notícias importantes
- Atualizações de campeonatos
rivaly/
├── cmd/ # Aplicação principal
├── config/ # Configurações
├── docs/ # Documentação Swagger
├── internal/ # Código interno da aplicação
│ ├── models/ # Modelos de dados
│ ├── user/ # Módulo de usuários
│ ├── championship/ # Módulo de campeonatos
│ └── athletic/ # Módulo de atléticas
├── pkg/ # Pacotes reutilizáveis
│ ├── db/ # Configuração do banco
│ └── middleware/ # Middlewares
├── routes/ # Configuração de rotas
├── main.go # Ponto de entrada
├── go.mod # Dependências
└── README.md
User
- Usuários do sistemaUniversity
- Universidades cadastradasRole
- Papéis/permissões
Athletic
- Atléticas universitáriasTeam
- Times vinculados às atléticasPlayer
- Jogadores dos timesUserRoleAthletic
- Relacionamento usuário-papel-atlética
Championship
- CampeonatosTournament
- Torneios dentro dos campeonatosSport
- Modalidades esportivasPosition
- Posições por modalidade
Match
- PartidasResult
- Resultados das partidasPlayerStats
- Estatísticas por jogador/partidaLineup
- Escalações
News
- Notícias das atléticasFollow
- Relacionamento usuário-atléticaNotification
- Sistema de notificações
- Go 1.24+
- PostgreSQL
- Git
bash
git clone https://github.com/nespadoni/rivaly.git
cd rivaly
Crie um arquivo .env
na raiz do projeto:
env
# Servidor
PORT=8080
# Banco de Dados
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=sua_senha
DB_NAME=rivaly
go mod download
### 4. Execute as migrações
O sistema executa automaticamente as migrações na inicialização.
### 5. Execute a aplicação
```shell script
go run main.go
A aplicação estará disponível em http://localhost:8080
A documentação completa da API está disponível através do Swagger:
- URL:
http://localhost:8080/swagger/index.html
- Health Check:
http://localhost:8080/health
GET /api/user # Lista todos os usuários
GET /api/user/:id # Busca usuário por ID
POST /api/user # Cria novo usuário
PUT /api/user/:id # Atualiza usuário
DELETE /api/user/:id # Remove usuário
GET /api/championship # Lista campeonatos
# Execute em modo desenvolvimento
go run main.go
# Com hot reload (usando air)
air
# Build da aplicação
go build -o rivaly main.go
# Execute o binário
./rivaly
# Execute todos os testes
go test ./...
# Testes com coverage
go test -cover ./...
# Testes verbose
go test -v ./...
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature
) - Commit suas mudanças (
git commit -m 'Add: nova funcionalidade'
) - Push para a branch (
git push origin feature/AmazingFeature
) - Abra um Pull Request
Add: nova funcionalidade
Fix: correção de bug
Update: atualização/melhoria
Remove: remoção de código
Docs: documentação
- Sistema de autenticação JWT
- Upload de imagens para times e atléticas
- Sistema de chat em tempo real
- Notificações push
- App mobile
- Dashboard analytics
- Sistema de ranking
- API de estatísticas avançadas
- Implementação de autenticação pendente
- Sistema de roles ainda em desenvolvimento
- Falta validação de permissões em alguns endpoints
- Desenvolvedor Backend: [Seu Nome]
- Projeto: Sistema de Gestão Esportiva Universitária
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- Email: contato@rivaly.com
- GitHub: github.com/nespadoni/rivaly
⭐ Se este projeto foi útil para você, considere dar uma estrela!