Work Calendar
A PHP application for managing work calendar and absences.
Project Structure
The project follows a clean architecture pattern with the following components:
- Model: Contains domain models like
Absence - Service: Contains service classes for business logic
AbsenceClient: Handles API communication with the absence.io serviceAbsenceManager: Manages absence data retrieval and cachingCalendarService: Handles calendar generation and processing
Recent Improvements
- Added proper domain model for
Absenceto encapsulate absence data and behavior - Improved service classes with better separation of concerns
- Added caching for improved performance
- Improved error handling in API client
- Removed code duplication
- Added early returns for cleaner code flow
Requirements
- PHP 8.1 or higher
- Composer
- Absence.io API credentials (KEY and ID)
Description
Languages
PHP
84.3%
Twig
12.5%
Dockerfile
3.2%