How carcanne/clockout works
ClockOut lets an employee submit a timecard image and receive a calculated clock-out time. The Vue view accepts a selected or pasted image, sends it to the FastAPI endpoint, and displays the returned time; the backend decodes and saves the image, extracts clock times with OCR, then calculates the result using target hours and a lunch-break allowance. The backend also exposes menu retrieval and transport lookup. Those capabilities are documented or present in the API source, though the sampled frontend does not show them being used. Edges reflect shown calls or documented API behavior.
Main entry points: main.py FastAPI endpoints · clockoutView.vue Clock-out view · main.ts Vue entry · App.vue App shell
Components 10
Web interface
- Vue entry
vue-frontend-clockout/src/main.ts - App shell
vue-frontend-clockout/src/App.vue - Clock-out view
vue-frontend-clockout/src/views/clockoutView.vue
Backend API
- FastAPI endpoints
python_backend/main.py
Time processing
- Image OCR
python_backend/ocr.py - Time calculation
python_backend/func.py
External integrations
- Menu retrieval
python_backend/get_menus.py
Other components
- Employee
- Eurest menu site
- Transport API
Connections 10
- Employee → Vue entry: uses
README.md - Vue entry → App shell: mounts
vue-frontend-clockout/src/main.ts - App shell → Clock-out view: renders
vue-frontend-clockout/src/App.vue - Clock-out view → FastAPI endpoints: posts image
vue-frontend-clockout/src/views/clockoutView.vue - FastAPI endpoints → Clock-out view: returns time
vue-frontend-clockout/src/views/clockoutView.vue - FastAPI endpoints → Image OCR: calls OCR
python_backend/main.py - FastAPI endpoints → Time calculation: calculates time
python_backend/main.py - FastAPI endpoints → Menu retrieval: fetches menus
python_backend/main.py - Menu retrieval → Eurest menu site: scrapes menus
python_backend/get_menus.py - FastAPI endpoints → Transport API: requests connections
python_backend/main.py