Business Client need Web Development
Contact person: Business Client
Phone:Show
Email:Show
Location: Pretoria, South Africa
Budget: Recommended by industry experts
Time to start: As soon as possible
Project description:
"Project: Build Phase 1 of “Needletime” – Radio Airplay Monitoring Platform (PHP/MySQL + ACRCloud)
I’m looking for an experienced PHP/MySQL developer (ideally with Laravel) to build Phase 1 of a web platform called Needletime.
Needletime uses ACRCloud to detect when songs are played on radio/online stations and provides airplay reports to:
CMOs / PROs (e.g. IMPRA – South African rights organization)
Individual artists (independent or CMO members)
Phase 1 is a working MVP with real data, not a prototype.
Tech Stack
Preferred:
Backend: PHP 8+ (Laravel preferred, but open to other modern MVC frameworks)
Database: MySQL 8+
Frontend: Blade/Twig + basic JS (and a simple chart library like [login to view URL])
Background Jobs: Cron + queue worker (Supervisor or similar)
Integration: ACRCloud (I will provide API keys & docs)
Core Functional Scope (Phase 1)
Below is the must-have feature set for this project.
1. Authentication & Roles
Email/password login
Password reset (email link)
Role-based access:
Platform Admin (my team)
Org Admin (CMO/Label admin, or Indie owner)
Member/Artist (CMO member or indie artist)
2. Organizations & Users
organizations table with:
Fields: name, type (CMO, LABEL, INDIE), contact email, logo, status
Platform Admin can:
Create/edit organizations
Assign Org Admin users
Independent artist signup:
Self-register → auto-create an INDIE organization and set them as its Org Admin
3. Stations & ACRCloud Integration
stations table with:
name, code, type (FM/ONLINE/TV), region, stream_url, is_active
Platform Admin screens to:
Create/edit/delete stations
Attach ACRCloud config (project/keys) per station (or globally)
Background worker:
Continuously read audio from station stream_url
Send chunks to ACRCloud identify endpoint
Parse the response and insert into play_logs
4. Data Model: Repertoire & Members
organization_members:
organization_id, name, membership_number, email, status
works:
organization_id, ISRC, title, artist_name, ACRID (optional), release_year
work_members (many-to-many):
work_id, organization_member_id, share_percentage (optional)
CMO Admin:
Upload CSV of members (name, membership_number, email)
Upload CSV of works (title, artist_name, ISRC, membership_number)
UI to view:
Member list & detail (with linked works)
Works list & detail (with linked members)
Independent artist:
Simple “Add Track” form:
title, artist_name (pre-filled), ISRC (optional)
Stored as works under their INDIE organization
Internally you may link them via organization_members or a simplified pattern
5. Play Logs & Mapping Logic
play_logs table:
station_id
work_id (nullable)
acrid
detected_at (DATETIME)
duration_seconds
confidence
raw_title
raw_artist
When inserting play_logs from ACRCloud:
Try to match to a work by ISRC (if returned) or ACRID
If matched → set work_id
If not, leave work_id null, but keep raw title/artist
(Aggregate tables for performance are nice-to-have; if needed we can discuss.)
6. Dashboards & Reports
6.1 Org Admin (CMOs, Labels, Indie Owners)
Org Dashboard
Stats for the current month:
Total members
Total works
Total plays
Number of stations with plays
Charts:
Top 10 works by number of plays
Top 10 stations by plays
Play Reports
Filter form:
Date range
Station (multi-select)
Member (optional)
Work (optional)
On-screen summary:
Grouped by work:
work title, main member, total plays, total duration
Export detailed CSV:
One row per play with:
work_title
work_isrc
member_name (if any)
station_name
play_date
play_time
duration_seconds
confidence
6.2 Member / Artist Portal
Member Dashboard
For that member (or indie org user) only:
Total plays in last 30 days
Number of tracks with any plays
Number of stations where their tracks got plays
Top 5 tracks by plays
My Works
List of works belonging to that member/indie:
Title, ISRC, total plays (for selected period), number of stations
Work detail:
Summary stats (total plays, total duration)
Chart: plays over time (last 30 days or selected period)
Table: plays per station (aggregated)
Export CSV:
Per-play detailed log:
station_name, play_date, play_time, duration_seconds, confidence
My Stations
Table of:
Station name, number of works played, total plays
Clicking a station:
List of works with plays on that station
7. Platform Admin Console
Global dashboard:
Total organizations by type
Total stations
Total plays (last 30 days)
Recent global play logs (last N rows)
Stations list:
Show last_detection_at per station
Basic flag if no detections within a threshold
Milestones (For Planning / Bidding)
You can propose your own structure, but roughly:
Setup & Auth
Framework setup, user/organization models, auth & roles, basic layout
Organizations & Stations
Org management, station CRUD, ACRCloud service setup
ACR + Play Logs
Stream worker, identify calls, play_logs creation, basic global recent-plays view
Members & Works
Member & works imports, linking to repertoire, indie track creation
Dashboards & Reports
Org admin dashboard + reports, member/artist dashboard + works/stations, CSV exports
Platform Admin, Polish & UAT
Global admin dashboard, basic health checks, permission hardening, bug fixes
Please include milestone-based payments in your proposal.
What I’ll Provide
ACRCloud credentials and docs
Initial station list (stream URLs)
Example CSVs for:
Member import
Works import
Brand name, basic logo & colors
What I Expect From You
Strong PHP/MySQL experience (Laravel or similar framework preferred)
Proven experience integrating with external APIs (bonus if you’ve worked with streaming or ACRCloud/Gracenote/etc.)
Ability to design clean database schemas and efficient queries
Good communication and ability to ask the right questions early
Clear documentation:
Basic setup guide (README)
Brief explanation of cron/jobs for monitoring stations
When you bid, please:
Share relevant projects: anything with APIs, streaming, reporting dashboards, etc.
Suggest how long you estimate for Phase 1 and how you’d break down milestones.
Confirm if you’re comfortable handling:
Continuous stream monitoring
ACRCloud integration
CSV imports & exports" (client-provided description)
Matched companies (7)

Haven Futures

Versasia Infosoft

WhizzAct Private Limited

Mobiweb Global Solutions

eShop Genius

B2Bcert ISO consultants in Bangalore
