Employee absence management system. Stack: React + Node.js (Express) + TypeScript + Prisma + PostgreSQL.
npm run install:all
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
createdb admin_panel
cd backend && npm run prisma:generate && npm run prisma:migrate
cd .. && npm run devusers— employees and admins (relations topositions,projects,entitlements,work_logs,absences,settings_change_logs,technologies)positions— job title directoryprojects— projectswork_logs— time tracking by day and projectabsences+absence_files— absences and attached filesentitlements— balances for vacation/sick/day offtechnologies+user_technologies+project_technologies— user/project tech stacksettings+settings_change_logs— global accrual rules and history
npm run seed(backend/src/seed.ts) — creates globalsettings, theWeb Developmentproject, two users (admin/employee), and their entitlements. Default logins:admin@example.com/password123,employee@example.com/password123.npm run seed:technologies(backend/src/seed-technologies.ts) — populatestechnologiesand skips existing records.
There is one record with id = "global" — global accrual settings.
vacationFutureAccrueDays— vacation days accrued per month (float)sickLeaveWithoutCertificateLimit— sick leave limit without certificate (days)sickLeaveWithCertificateLimit— sick leave limit with certificate (days)vacationCarryoverLimit— how many vacation days can be carried over (days)createdAt,updatedAt— system timestamps