Triaxo Solutions

Need a product team for your next release? Talk to Triaxo Solutions

Send mail: sales@triaxo.com

Triaxo Solutions builds AI-first software, custom platforms, and product engineering for startups and enterprises.

Contact Info

Follow Us

Battle of Bands — Mobile Music Battle & Voting Platform

Triaxo Solutions delivered a cross-platform Flutter app where bands upload tracks, compete head-to-head, earn votes, and climb genre-based leaderboards on iOS and Android.

Battle of Bands case study infographic showing mobile app features, head-to-head battles, leaderboards, song upload, and push notifications.
Client:

Battle of Bands Platform

Industry:

Music & Entertainment

Deliverables:

iOS & Android Mobile App · ASP.NET Core REST API · SQL Server Database · Admin Panel · Push Notifications · Audio Upload & Hosting

Website:

Not publicly disclosed

What we’ve accomplished together

Independent musicians and listeners needed a dedicated space to showcase short performances, compare tracks fairly, and build reputation through community voting—not scattered social posts or opaque contests. The client wanted a mobile-first platform where users could register, upload genre-tagged songs, battle rivals, and track wins, losses, and leaderboard standing in one polished experience backed by a production API.

To make that vision real, the platform had to deliver:

Secure account registration, login, password recovery, and profile management on iOS and Android

Genre-organized song uploads with in-app audio trimming before publish

Head-to-head battle screens with playback controls and one-tap voting

Live leaderboards and personal statistics for uploads, battles, and wins

A hosted ASP.NET Core API with admin governance, media storage, and push notifications

“We wanted listeners to hear two songs side by side and vote in seconds—without leaving the app or guessing who was winning.”

Project Overview

Flutter Mobile App → REST API → Entity Framework Core → SQL Server → Static File Storage → FCM Push Notifications

Triaxo Solutions architected Battle of Bands as a Flutter application for iOS and Android using the BLoC pattern with flutter_bloc to manage authentication, home data, battles, song libraries, and upload flows. The app communicates with a hosted ASP.NET Core 7 REST API for account management, genre retrieval, song CRUD, voting, dashboard statistics, and multipart audio uploads. Local state persists through shared_preferences, keeping users signed in across sessions via a splash-screen routing gate.

The core product loop centers on genre-filtered competition. Users select a genre, upload a trimmed audio clip (WAV, MP3, or Opus) with metadata including title, performer or band name, and optional external URL, then enter battles where two songs are presented with synchronized playback, seek sliders, and forward/back controls powered by just_audio. Voting confirms through a dialog and posts to the Song/Vote endpoint, recording winner and loser song IDs while updating artist battle statistics.

On the server side, Triaxo built an ASP.NET Core Web API serving both the mobile app and administrative back end. Mobile app users (AppUsers) and back-office administrators (AspNetUsers) authenticate through separate ASP.NET Core Identity flows. Weekly battle matchmaking returns randomized opponent tracks by genre, vote integrity records both winning and losing songs, and Firebase Cloud Messaging delivers platform-specific push notifications to registered devices.

Four Battle of Bands iPhone screens showing dashboard, head-to-head battle voting, song upload and audio trim, and weekly leaderboard.
Mobile App — Compete, vote, and climb the charts

Native Flutter experience. Battle of Bands ships as a native-feeling Flutter app with a four-tab bottom navigation: Home, Battles, My Songs, and Profile. The dark-themed UI uses Montserrat typography and gold-accent branding consistent across splash, auth, and main flows. Users move from signup or login through a timed splash screen into the main shell without friction.

Battles & voting. The Battles tab is the product centerpiece. After choosing a genre, users begin a battle that loads two competing songs, displays performer metadata, and offers play/pause, ±10-second skip, seekbar scrubbing, and a “Click to Vote” action with confirmation. Empty states guide users when no songs are available for a selected genre.

Upload & profile. Upload Song walks users through file selection (file_picker), waveform trimming (easy_audio_trimmer), FFmpeg-based AAC export, preview playback, and metadata entry before multipart upload. Song detail screens provide full playback and vote counts, while the profile tab shows avatar, email, editable profile, change-password flow, and a statistics grid fed by Dashboard/GetStatistics.

Battle of Bands backend and infrastructure diagram with ASP.NET Core REST API, SQL Server, audio storage, battle matchmaking, FCM notifications, and admin portal.
Backend API & Admin — Operate competitions with full control

REST API layer. Triaxo integrated the mobile client with a centralized API covering Account endpoints (SignUp, Login, ForgetPassword, ChangePassword, ProfileUpdate), Genre/GetAllGenre, Song operations (AddSong, GetAllMySongs, GetAllSongByGenreId, Vote), and Dashboard services (GetStatistics, GetLeaderboard). Audio and profile images are served from the platform host with multipart form posts and 20-second HTTP timeouts.

Competition engine. When users request battles within a genre, the API returns two randomly selected opponent tracks from the prior competition week that the voter has not yet judged. Each vote records both the winning and losing song, incrementing TotalWins, TotalLosses, and TotalBattles on artist profiles. Leaderboard queries aggregate vote counts within the weekly window, returning top performers per genre.

Admin governance. Administrators authenticate through ASP.NET Core Identity with role-based sidebar menus mapped from AspNetMenus and AspNetRoleMenus. Operations teams manage mobile users, freeze or activate accounts, perform genre CRUD, and access dashboard statistics—uploads, wins, losses, battles judged, and weekly leaderboard rankings—giving operators the data needed to moderate fair, active competitions.

Technology Stack

Layer Technologies
Mobile frameworkFlutter (Dart SDK ≥2.19), iOS & Android
State managementflutter_bloc, Equatable
Audio & mediajust_audio, easy_audio_trimmer, ffmpeg_kit_flutter, file_picker
Mobile UXshared_preferences, cached_network_image, connectivity_plus, share_plus, Material/Cupertino widgets, Montserrat
Backend APIASP.NET Core 7, C#, RESTful Controllers, Swagger/OpenAPI
DatabaseMicrosoft SQL Server, Entity Framework Core 7, Code-First Migrations
AuthenticationASP.NET Core Identity, CryptoHelper password hashing, role-based admin menus
Notifications & emailFirebase Cloud Messaging (FCM), SendGrid transactional email
File storageStatic file middleware, wwwroot audio and image hosting

Why Triaxo Solutions

Triaxo Solutions combines mobile engineering depth with media-heavy product delivery—exactly what a competitive music app demands. From FFmpeg-based trimming and dual-platform audio playback to genre-scoped API orchestration, vote integrity, and FCM engagement, Triaxo owned the full mobile experience and backend platform end to end and shipped Battle of Bands on iOS and Android.

“Fair battles, real votes, one app—built to perform on every device.”

Battle of Bands case study

Frequently Asked Questions

Common questions about the Battle of Bands platform. Have a music or entertainment app idea? Contact Triaxo Solutions to discuss mobile design, API integration, and launch planning.

Planning a music or entertainment app?

We scope Flutter mobile apps, REST APIs, and competition platforms end to end.

Triaxo built Battle of Bands as a Flutter application compiled for iOS (deployment target 12.0+) and Android (minSdk 21). The same Dart codebase powers both platforms, with platform-adaptive routing and native permissions for camera, photo library, storage, and audio file access configured in each store manifest.

Each week, the platform selects eligible songs uploaded within the current competition period for a given genre. Voters receive two randomized opponent tracks they have not yet judged and pick a winner. The API records both the winning and losing song IDs, updates artist win, loss, and battle counts, and prevents duplicate votes on the same pairing within the weekly cycle.

Users pick WAV, MP3, or Opus files from device storage, preview them in a waveform trimmer, and export a trimmed AAC segment via FFmpeg Kit before upload. Metadata—title, genre, band name, and optional URL—is sent with the audio file through a multipart POST to Song/AddSong, and successful uploads appear in My Songs and become eligible for genre battles.

Administrators authenticate through ASP.NET Core Identity and receive role-based sidebar menus at login. The admin API supports managing back-office users and roles, assigning menu permissions, listing and moderating mobile app users, freezing or activating accounts, and performing full CRUD operations on music genres that structure battles and leaderboards.

The mobile app uses Flutter with flutter_bloc, just_audio, FFmpeg Kit, and shared_preferences. The backend is ASP.NET Core 7 with Entity Framework Core and SQL Server, ASP.NET Core Identity for admin auth, CryptoHelper for mobile user passwords, static file hosting for audio uploads, SendGrid for password recovery emails, and Firebase Cloud Messaging for Android and iOS push notifications.

Fixed price model

Fixed scope · 8–24 weeks

A defined release—MVP, integration, or migration—with scope, timeline, and budget locked before build starts.

  • Scope, milestones, and delivery dates agreed upfront
  • Ideal when requirements are well defined
  • Predictable budget with change-control for scope shifts
  • Weekly demos and a working release at handover

Dedicated squad model

Ongoing · 2–6 engineers

A Triaxo team embedded in your engineering org: your board, your channels, demos on your cadence.

  • Embedded squad in your tools, rituals, and roadmap
  • Preferred for longer engagements and product evolution
  • Scales up or down as priorities change
  • Senior PM, engineers, and QA on one team
  • Best when you have a clear vision and need capacity

Hybrid & on-site model

Flexible · remote + on-site

Remote-first delivery plus on-site discovery, launch support, or co-located sprints when proximity matters.

  • Blend of remote delivery with on-site workshops or sprints
  • Helps hit deadlines with tight stakeholder alignment
  • Cost-effective when you need periodic face-to-face collaboration
  • Suited to regulated, enterprise, or multi-site rollouts
Let's talk

Tell us about your product

Share goals, timelines, and constraints—we'll respond with next steps and a suggested workshop.

Ready to scope your next release or refactor? Share your project brief