v4.0.0
v4.0.0
Dashboard
- Added bar chart for completed activities (last 6 months)
- Added donut chart for completed vs pending ratio
- Added recent activities section
- Fixed upcoming activities fields (title, date)
- Fixed activity_chart to group by month instead of daily UserActivityLog
- Added PostgreSQL compatibility for month grouping
Global Search
- New GET /api/search?q= endpoint
- Searches clients, contacts and activities using LIKE
- Results limited to 5 per type, respects ownership rules
- Frontend component in topbar with debounce 300ms
- Dropdown with grouped results and direct navigation
- Updated OpenAPI documentation
Contacts
- Complete CRUD overhaul
- New avatar list design with initials colored by first letter
- Modal for creating contacts (with client selector)
- Modal pre-selects client when opened from client view
- Added position field to create and edit forms
- Added delete button to global contacts list
- Smart redirect after edit (?from=contacts)
- Removed ContactCreatePage in favour of modal
Clients
- New card grid layout with colored initials avatar
- Modal for creating clients
- Pagination changed to 6 items per page
- Removed ClientCreatePage in favour of modal
Activities
- Modal for creating activities
- Fixed date format in list (removed ISO timestamp)
- Removed ActivityCreatePage in favour of modal
Auth
- Login, Register and Welcome pages now always render in dark mode
regardless of user theme preference
README
- Complete rewrite with full stack documentation
- Added live demo URLs, screenshots, tech stack tables
- Added frontend installation instructions
- Added deployment section for Render
- Added Git workflow section
Tests
101 passing, 238 assertions