Skip to content

Feature Updates: User Groups, Favourites, Secondary Location & Bugsnag Integration#7

Merged
amaguire-undp merged 16 commits intomainfrom
dev
May 1, 2025
Merged

Feature Updates: User Groups, Favourites, Secondary Location & Bugsnag Integration#7
amaguire-undp merged 16 commits intomainfrom
dev

Conversation

@anduimagui
Copy link
Copy Markdown
Collaborator

@anduimagui anduimagui commented Apr 21, 2025

Summary

This PR merges several important feature additions and enhancements from the development branch to main, including collaborative signal editing via user groups, user favorites functionality, secondary country location support, and Bugsnag integration for error tracking and monitoring.

New Features

  • Added collaborative signal editing through user groups functionality
    • New user_groups tables and related database operations
    • API endpoints for group management and collaboration
    • Support for associating signals with groups and controlling edit permissions
  • Added user favourites feature to bookmark and track signals
    • New favourites table and related database operations
    • API endpoints for adding/removing signals from favourites
    • Ability to fetch a user's favourite signals
  • Added secondary location field to signals for improved geographic categorization
    • Added secondary_location column to the signals table
    • Updated signal model and API endpoints to support multiple locations
  • Integrated Bugsnag for error tracking and monitoring
    • Added configuration for error tracking via Bugsnag
    • Global exception handling and middleware integration
    • Test endpoints for verifying Bugsnag functionality
  • Updated code to support signal collaboration through user group membership
  • Added endpoints to get authenticated user's groups and associated signals
  • Added comprehensive test coverage for all new features

Bug Fixes

  • Fixed Python setup action by updating to v4 and fixing cache configuration
  • Updated app configuration to properly support Bugsnag integration
  • Various improvements to database operations and error handling

Checklist

  • I have read the contribution guidelines.
  • My code follows the style guidelines of this project.
  • I have performed a self-review of my code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added required dependencies to requirements.txt
  • I have updated the documentation (if applicable).

Additional Notes

This PR includes several significant feature additions affecting 41 files with over 4,100 new lines of code:

  1. User Groups & Collaborative Editing:

    • New entities and database operations for user groups
    • Support for multiple users to collaborate on signal editing
    • Collaborator mapping to control who can edit specific signals
    • Authentication enhancements to support group-based permissions
  2. User Favourites:

    • New functionality allowing users to bookmark signals
    • Toggle favorites on/off via API
    • Retrieve user's favorite signals sorted by when they were favorited
  3. Secondary Location:

    • Enhanced signal model with additional secondary_location field
    • Support for array of multiple geographic locations
    • Updated database schema with migration scripts
  4. Bugsnag Integration:

    • Added error tracking and monitoring configuration
    • Middleware for capturing exceptions
    • Configuration based on environment variables
    • Health check endpoints for verification
  5. Environment & Configuration:

    • Added example environment files
    • Updated Docker configuration
    • Enhanced logging configuration

The changes have been tested extensively with over 1,400 lines of new test code covering all new functionality.

Andrew Maguire added 3 commits January 14, 2025 17:45
* Feature: initial routers / methods for favourites

- add env documentation / adminer image for easier inspection of db
- create / delete favourite entry in database
- fetch list of favourites by user

* Chore: update formatting, tests

* update test methods / logging

-

* updates

* expand tests / logging
* env updates

* update example env
@anduimagui anduimagui changed the title dev -> prod: latest changes Feature Updates: User Groups, Favourites, Secondary Location & Bugsnag Integration May 1, 2025
@amaguire-undp amaguire-undp marked this pull request as ready for review May 1, 2025 16:07
@amaguire-undp amaguire-undp merged commit 1e0324f into main May 1, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants