Skip to content

Accounting system to calculate and display revenue splits to song contributors

License

Notifications You must be signed in to change notification settings

invaderjmusic/royalties

Repository files navigation

royalties

A webapp to calculate and display revenue splits to my song contributors.

Frontend

  • Written in HTML and vanilla JS.
  • Users can log in to view various details of the royalties owed to them, populated from the backend.
  • Stores key data in session storage so it can be accessed quickly on page load.
  • Users sign up / can reset their password using a URL with a randomly generated key.
  • Admin accounts can also input new information, delete erroneous information and create new users using simple HTML forms with custom handlers.
  • Uses responsive CSS to display well on mobile. (work in progress)

Backend

  • Written in Node.JS, using Express as the server.
  • Serves routes only to those who have permission to access them, using a session cookie for authentication.
  • Validates data from frontend in user-facing API endpoints before performing database operations with it.
  • Keeps track of the USD-GBP exchange rate every day using a Cron job.

Database

  • My first time using EdgeDB, a database software based on Postgres which does the work of an ORM more efficiently

Areas for improvement

  • Comment every large block and any hard-to-understand logic. Very few comments currently exist in the project.
  • Ensure database queries are correctly designed and don't overcomplicate the task.
  • Data validation for admin API endpoints (considered not to be necessary as I will be the only admin / the frontend prevents bad data being submitted.)

About

Accounting system to calculate and display revenue splits to song contributors

Topics

Resources

License

Stars

Watchers

Forks