SuperHyperInstantFutureTime / TrackShift

0 stars 0 forks source link

A music royalties data aggregator

We make releasing music easier.

We are DIY artists, label people, software developers and music consumers who are building tools to give indies superpowers in the age of big data.

"Giving indies superpowers in the age of big data."


Project layout

The directories in the project root all have their own responsibilities:

TrackShift classes

Within the class directory are namespace-organised directories. Organised within these directories are three types of classes:

Entity hierarchy

Database

Since the first version, we've switched from SQLite to MySQL. (Insert quote about "how long until you realise MySQL is the solution?").

To achieve the features we need, MySQL imports directly from CSV. This is done by altering the

Currencies

To automate currency conversion, we need to know the currency of the uploaded statements. Here's where that data lives:

The cron/exchange-rates.php script will download all exchange rates from 2010, using https://openexchangerates.org/. These are cached into dated JSON files within data/cache/currency. The closest date is used at the point of estimation.

No estimation is done on-the-fly, because that would take too much processing time. Instead, there are new fields in the UsageOfProduct table:

The user will store their currency in the Settings table. For now, default to GBP, but in the future default using their IP address.