Skip to content

Improve site architecture and add features (GSoC 2021)

Dmitry Volodin edited this page Aug 21, 2021 · 3 revisions

GSoC 2021 Deliverables

blogs delivered:-

Pull requests:-

PR #59 (https://github.com/orcasound/orcasite/pull/59)

  • Update seeds file for creating dummy records for detections and candidates so that the admin dashboard doesn’t remain empty when setting up a new project.

PR #60 (https://github.com/orcasound/orcasite/pull/60)

  • Implemented API endpoint for triggering listener email notification.
  • Implemented local adapter to support the feature of sending automated mail to moderators on the creation of any candidate and wrote logic to query and send mail to all the moderators present in the users table.

Library used for creating mail adapter:- Bamboo (https://hexdocs.pm/bamboo/readme.html)

PR #61 (https://github.com/orcasound/orcasite/pull/61)

  • Integrated webhook with the admin panel to onboard notifications on Slack, Twitter, and Facebook along with a notify button to trigger a POST request having hydrophone location as data.
  • Implemented a confirm dialog to avoid accidental triggers.
  • Implemented notification_events table with fields candidate_id, notified_at, notified_by having candidate_id as the foreign key referencing from candidates table and wrote mutations in GraphQL for it.
  • Implemented logic to record data back in notification_events table.
  • Added security to queries and mutations for notification_events table.
  • Joined the candidates and notification_events table to display within the candidates tab.

PR #62 (https://github.com/orcasound/orcasite/pull/62)

  • Implemented feature of change role by admin within users tab.
  • Made change admin button disable for the current user to avoid accidental admin change of current user.

PR #64 (https://github.com/orcasound/orcasite/pull/64)

  • Resolved issues related to running previous tests (resolved errors in making connection with test database).
  • Fixed test case failures by updating them to align with updated column attributes.
  • Write tests for notification_events table and mail adapter.