28 lines
909 B
Markdown
28 lines
909 B
Markdown
# 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 service
|
|
- `AbsenceManager`: Manages absence data retrieval and caching
|
|
- `CalendarService`: Handles calendar generation and processing
|
|
|
|
## Recent Improvements
|
|
|
|
- Added proper domain model for `Absence` to 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) |