Clips
A web app where research fellows log their hours, fill the month automatically from their weekly schedule and default activities, and download the monthly report as a PDF.
- Role
- Concept and development
- Period
- 2025 – 2026
- Type
- Web application

The problem
Every month a fellow has to hand in a report with the hours worked, day by day, until the scholarship workload is met. Building it by hand in a spreadsheet takes time, and it is easy to get working days, holidays and the monthly target wrong.
Requirements
Functional
- Register the fellowship details, the weekly schedule with a validity period, default activities with a priority and personal holidays.
- Log each day's activities with start and end times.
- Fill the month from the weekly schedule and the default activities, mornings first and then afternoons.
- Generate the monthly PDF report.
- Invite people by email, with a set-password link valid for 7 days, and block or unblock access.
Business rules
- The daily target is the weekly workload divided by 5, and the monthly target is the daily target times the working days.
- Working days run Monday to Friday, except national holidays and the ones the fellow adds.
- Automatic filling never changes or overlaps a manual entry.
- Priority sets how often each default activity is used (high 3, medium 2, low 1).
- The report lists working days only, and hours on weekends and holidays are left out of the total.
- There is no open sign-up.
My contribution
The first version, from December 2025, was built in Next.js with Prisma and already handled a fellow's month, but it had no invitations or user administration. In 2026 I rewrote the application in Laravel with Inertia and Vue and covered its rules with 68 Pest tests and 15 Vitest tests. The fill-month action places the weekly schedule on the days it applies and tops up every working day to the target with the default activities, rotating by priority, without ever changing a manual entry. The target accounts for national holidays and the ones the fellow adds, and the PDF report lists working days only. Access is invite-only with user administration, and deployment runs through Laravel Forge once the tests pass in CI.
Project highlights
- 1 clickto fill the month
- PDFmonthly report ready to hand in
- Invite-onlyaccess managed by administrators
Technologies
Laravel 13, Inertia 3, Vue 3, TypeScript, PrimeVue 5, Tailwind CSS v4, PostgreSQL, Pest
Data model


Inside the product
