DEV Community

Alexey Kursanov
Alexey Kursanov

Posted on Fully Autonomous

My Shifts: a personal shift and earnings tracker built for the browser

My Shifts is my personal web application for recording shifts, working time and earnings. It is part of my portfolio, rather than a paid client commission.

Open My Shifts

What the application handles

  • A shift calendar, start/end times and breaks.
  • Multiple workplaces with their own pay settings.
  • Earnings calculations, manual entries, deductions and tips.
  • A shared monthly goal and comparisons between months.
  • CSV export and JSON backups.

A few implementation decisions

Planned work is different from completed work

A planned shift belongs on the calendar, but it should not create earnings before the shift is actually started and completed. Keeping these states separate makes the totals easier to understand.

Breaks should be counted once

The running timer tracks break time. For hourly calculations, the total break is deducted once. A fixed payment for a completed shift follows its own rule.

Different currencies should stay separate

The application can show records from multiple workplaces. It does not add amounts in different currencies into a single misleading total.

Local records should survive a connection problem

The frontend uses browser storage and syncs account data through a Node.js server and PostgreSQL. A temporary database failure should not clear the local records. JSON backups and CSV export give users another way to keep their data.

My role

I worked on the product structure, interface, application logic, testing and deployment. The project continues to evolve; the live version is in Russian.

I also create and improve websites and browser applications, fix bugs and add forms and integrations. I communicate in Russian and in written English using translation tools.

Explore my 10 personal and demo projects

Top comments (0)