Backend only (using Ruby with Hanami), following TDD
Generate reports with historical booking data
Fine-tune bookings are included in the report by allowing them to apply multiple types of filters and joining them in complex logical expressions (e.g. bookings that check-in in the next 7 days that are either fully paid or the guest verified their identity)
Select which booking fields are included for each reservation
Sort the bookings by one or multiple fields
Export the reports as CSV files
Progress
Defined the structure of a report (configuration)
Created an endpoint for serving the report configurations for an account
Familiarised myself with and extended an endpoint that filters bookings based on passed filter parameters to support AND/OR logical operations and nested expressions (e.g. COND1 AND (COND2 OR COND3))
Implemented a new type of filter - NOT IN (e.g. booking status NOT IN "checked_in", "confirmed")
Added support for relative date filters (e.g. in the next/past N days) which will also play a key role in a future report scheduling functionality
Added support for a few calendar date ranges (e.g. this year, next month, past week)
Implemented a few new filters (e.g. booking channel, booking property)
What's left?
Add support for numerical type of filters (e.g. less than/greater than/equals)
Report configuration CRUD endpoints
Add CSV export functionality
Implement pagination on the report results endpoint