This was a project that required estimation. The client was a manager for many singers (artists), and he needed to track his singers' profits. The client was selling music by his artists on different sites such as Spotify, YouTube, and Instagram, and at the end of each month, he received income CSVs from all of them. As a result, the client needs to track everything by himself manually so I have designed the solution for it.
So, in Django's default admin panel, I developed the code to calculate and manage revenue by artist and aggregate that data by month, and while calculating revenue, I also integrated the custom formula (including tax and commission) shared by the client. Once the calculation was completed, I created a record in the table and also maintained the independent records in a separate table because the structure of the CSVs differed depending on the platform.
Later, I integrated other front-end libraries, such as Highcharts, to visualize the data as required by the client added those reports to Django's admin panel, and made a dynamic Dashboard with useful insights (like who is the top singer, which song is in demand). Later, I created APIs for the Web Dashboard and Mobile App using the Django REST Framework.
To process a CSV with more than 80-85 K records in the Foreground is quite complicated and time-consuming, and it frequently gives a time-out error after 3-4 hours, thus I integrated Celery and RabitMQ to execute the same task in the Background.
In addition, I integrated the PayPal payment gateway so that the client can pay his artist straight from the Dashboard, and invoices are automatically generated and shared with the artist. Additionally, I've developed a function for managing the artist's contracts and other information.
Tech Stack: - Django, Django REST Framework, PostgreSQL, Celery, RabitMQ, PayPal Payment Gateway, JIRA, AWS (ec2 and s3), Bitbucket