How axeldelc/timeflow works
TimeFlow is a small-business timekeeping and workforce-planning web app. Employees sign in to clock in or out, review their sessions and schedule, and submit overtime or schedule-change requests; administrators manage accounts, review attendance, and maintain schedules and restrictions. Express routes handle these workflows, with Prisma-backed PostgreSQL state and Svelte calendar views for scheduling. The graph reflects the README and sampled source; unsampled views and modules are included only where documented capabilities or the source index support them.
Main entry points: prisma.js Prisma client · app.js Express app · employee.routes.js Employee actions · admin.routes.js Admin operations
Components 17
Web application
- Express app
src/app.js
Identity and access
- Login and logout
src/routes/auth.routes.js - Initial admin setup
src/routes/setup.routes.js - Access middleware
src/middlewares/auth.middleware.js
Timekeeping
- Admin operations
src/routes/admin.routes.js - Employee actions
src/routes/employee.routes.js - Work session model
src/models/workSession.model.js
Scheduling
- Admin schedule routes
src/routes/schedule.routes.js - Schedule validation
src/services/schedule.service.js - Admin calendar
src/frontend/components/CalendarAdmin.svelte - Employee calendar
src/frontend/components/CalendarEmployee.svelte - Calendar mounting
src/frontend/main.js - Admin schedule page
src/views/admin/schedule.ejs - Employee schedule page
src/views/employee/schedule.ejs
Persistence
- Prisma client
src/db/prisma.js - PostgreSQL data
prisma/schema.prisma
Other components
- Employees and admins
Connections 26
- Employees and admins → Express app: use web app
README.md - Express app → Initial admin setup: mounts routes
src/app.js - Express app → Login and logout: mounts routes
src/app.js - Express app → Admin operations: mounts routes
src/app.js - Express app → Employee actions: mounts routes
src/app.js - Express app → Admin schedule routes: mounts routes
src/app.js - Express app → Access middleware: checks setup
src/app.js - Login and logout → Prisma client: looks up users
src/routes/auth.routes.js - Initial admin setup → Prisma client: creates admin
src/routes/setup.routes.js - Admin operations → Access middleware: requires admin
src/routes/admin.routes.js - Employee actions → Access middleware: requires auth
src/routes/employee.routes.js - Admin operations → Prisma client: queries attendance
src/routes/admin.routes.js - Employee actions → Work session model: starts and ends
src/routes/employee.routes.js - Work session model → Prisma client: reads and writes
src/models/workSession.model.js - Employee actions → Prisma client: reads schedule
src/routes/employee.routes.js - Employee actions → Prisma client: records requests
src/routes/employee.routes.js - Admin schedule routes → Access middleware: requires admin
src/routes/schedule.routes.js - Admin schedule routes → Schedule validation: validates slots
src/routes/schedule.routes.js - Admin schedule routes → Prisma client: manages schedules
src/routes/schedule.routes.js - Schedule validation → Prisma client: checks weekly hours
src/services/schedule.service.js - Admin operations → Prisma client: loads schedule
src/routes/admin.routes.js - Employee actions → Employee schedule page: renders schedule
src/routes/employee.routes.js - Admin operations → Admin schedule page: renders schedule
src/routes/admin.routes.js - Calendar mounting → Admin calendar: mounts calendar
src/frontend/main.js - Calendar mounting → Employee calendar: mounts calendar
src/frontend/main.js - PostgreSQL data → Prisma client: stores application data
README.md