Skip to content

PHCavalcante/Beatfy

Repository files navigation

🎵 Beatfy - Music Player

Platform React Native Expo TypeScript License

Uma experiência musical completa e personalizada para dispositivos Android

Reproduza músicas locais, explore conteúdo online, ouça rádio ao vivo e muito mais

FuncionalidadesInstalaçãoTecnologiasContribuição


📱 Sobre o Projeto

Beatfy é um player de música moderno e intuitivo, desenvolvido com React Native e Expo, que oferece uma experiência musical completa. O aplicativo combina reprodução de músicas locais com recursos avançados de descoberta musical online, rádio digital e gerenciamento personalizado de playlists.

Screenshots

explore screen explore screen explore screen

✨ Destaques

  • 🎯 Interface Intuitiva: Design moderno e responsivo inspirado nos melhores players do mercado
  • 🔍 Busca Inteligente: Encontre suas músicas favoritas rapidamente
  • 📱 Experiência Mobile: Otimizado especificamente para dispositivos Android
  • 🎨 Personalização: Temas e configurações adaptáveis ao usuário

🚀 Funcionalidades

🎵 Player Principal

  • Reprodução de músicas locais do dispositivo
  • Controles avançados (play, pause, próxima, anterior)
  • Barra de progresso interativa com seek
  • Controle de volume integrado

🌐 Conteúdo Online

  • Busca e reprodução de músicas via API
  • Integração com serviços de streaming

📻 Rádio Digital

  • Transmissão de rádio ao vivo
  • Qualidade de áudio otimizada

📝 Recursos Avançados

  • Exibição de letras sincronizadas
  • Sistema de favoritos
  • Histórico de reprodução
  • Criação e gerenciamento de playlists personalizadas

🔍 Organização

  • Sistema de busca avançado

🛠 Stack Utilizada

Frontend Mobile

  • React Native 0.81.4 - Framework principal para desenvolvimento mobile
  • Expo ~54.0.10 - Plataforma e ferramentas de desenvolvimento
  • TypeScript 5.3.3 - Tipagem estática e melhor DX

Gerenciamento de Estado

Navegação & UI

Áudio & Media

Persistência & Database

Networking & APIs

  • Axios 1.9.0 - Cliente HTTP
  • APIs de Streaming - Integração com serviços de música online

Animações & UX


Padrões Arquiteturais

  • Component-Based Architecture: Componentes modulares e reutilizáveis
  • Custom Hooks: Lógica reutilizável encapsulada em hooks
  • State Management: Zustand para estado global
  • File-based Routing: Expo Router para navegação baseada em estrutura de arquivos

📦 Instalação

Pré-requisitos

  • Node.js >= 18.0.0
  • npm ou pnpm
  • Android Studio | Expo Go

Configuração do Ambiente

  1. Clone o repositório

    git clone https://github.com/PHCavalcante/Beatfy.git
    cd Beatfy
  2. Instale as dependências

    # Usando npm
    npm install
    
    # ou usando pnpm (recomendado)
    pnpm install

Executando o Projeto

# Inicie o servidor de desenvolvimento
npm start
# ou
pnpm start

# Para executar diretamente no Android
npm run android
# ou
pnpm android

Build para Produção

# Build de desenvolvimento
expo build:android

# Build de produção (requer configuração EAS)
eas build --platform android

📊 Estrutura do Banco de Dados

-- Músicas principais
CREATE TABLE all_musics (
    id TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    artist TEXT DEFAULT "Desconhecido(a)",
    url TEXT,
    path TEXT NOT NULL,
    duration REAL
);

-- Histórico de reprodução
CREATE TABLE recent_plays (
    id_music TEXT NOT NULL,
    quantity_plays INTEGER DEFAULT 1,
    FOREIGN KEY (id_music) REFERENCES all_musics(id)
);

-- Músicas favoritas
CREATE TABLE favorite_musics (
    id_music TEXT PRIMARY KEY,
    FOREIGN KEY (id_music) REFERENCES all_musics(id)
);

-- Sistema de playlists
CREATE TABLE playlists (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL
);

CREATE TABLE playlist_music (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    playlist_id INTEGER NOT NULL,
    music_id TEXT NOT NULL,
    FOREIGN KEY (playlist_id) REFERENCES playlists(id),
    FOREIGN KEY (music_id) REFERENCES all_musics(id)
);

🤝 Contribuição

Contribuições são sempre bem-vindas! Veja como você pode ajudar:

Como Contribuir

  1. Fork o projeto
  2. Clone seu fork: git clone https://github.com/PHCavalcante/Beatfy.git
  3. Crie uma branch para sua feature: git checkout -b feature/nova-feature
  4. Commit suas mudanças: git commit -m 'feat: adiciona nova feature'
  5. Push para a branch: git push origin feature/nova-feature
  6. Abra um Pull Request

Padrões de Commit

Utilizamos Conventional Commits:

  • feat: Nova funcionalidade
  • fix: Correção de bug
  • docs: Documentação
  • style: Formatação
  • refactor: Refatoração de código
  • chore: Tarefas de manutenção
  • ...

Reportando Issues

  • Use os templates de issue disponíveis
  • Inclua informações sobre o dispositivo e versão do Android
  • Adicione logs e screenshots quando relevante

📄 Licença

Este projeto foi desenvolvido com fins acadêmicos como parte de um projeto universitário, e está licenciado através da licença MIT.


📞 Suporte

Encontrou algum problema? Tem alguma sugestão?


About

Beatfy is a modern and intuitive music player developed with React Native and Expo.

Topics

Resources

License

Stars

Watchers

Forks

Contributors