Improve & Revamp Browser Extension

Job ID: 39647161

Budget: $750 – $1,500 USD

Overview


We have a browser extension for Chrome and Firefox written in JavaScript that needs fixing and updating. The extension allows users to comment and vote on any site (indexed by URL). It allows users to follow other users to find their comments and has a direct message (DM) and group chat features. It pairs with a backend server that it connects to, written in C# .NET that has an admin panel for information and moderation. The precise issues and milestones are shown below.

Milestone 1:
Fixing the Settings Screen:
The Issue: Users can't update their Nickname, Password or Bio on the settings screen.
Technical Hypothesis: Possibly a missing Authorization header in the request sent by settings.js.
Solving the Disappearing Avatars:
The Issue: User avatars sometimes get lost after being uploaded.
Technical Hypothesis: We believe this is a server-side issue. Possibly an issue with the correct folder (wwwroot/images/avatars/) not being automatically created.
Making the Leaderboard Accurate:
The Issue: The leaderboard sometimes breaks at the end of the month.
Technical Hypothesis: Update the back-end to handle vote aggregation and time-boundary calculations properly.
Investigating the Ad Feature:
The Issue: The opt-in ads are broken.
Technical Hypothesis: Find a replacement for the third-party domain used for this feature or remove it if that is not possible.


Fixing ICO Site Extension API:
The Extension server needs to query our ICO site to get the user’s XCV balance and recently the ICO site API server has begun failing. We have other freelancers working on fixing the API, but if for some reason they are unable to accomplish this, it needs to be done here.
This milestone will be removed if the problem is fixed before milestone 1 is completed.

Milestone 2:
Fixing Auto-Login:
The Issue: The "remember me" login feature is unreliable. It does log you in without the password if you click on the login button, but it doesn’t show that it will do that and it should log you in automatically.
Technical Hypothesis: The issue is likely related to the Manifest V3 service worker lifecycle. The recommended approach is to move the JWT from cookies into chrome.storage.local, which is the modern, accepted practice and should make the silent login flow much more reliable.

Improving Chat & Saving Drafts:
The Issue: Users lose their work if they click away from the extension, and the chat doesn't behave like other modern apps.
Technical Hypothesis: This appears to be entirely client-side. Use local sessionStorage to automatically save drafts of comments and DMs, and add a simple key handler to implement the "Enter to send / Shift+Enter for new line" functionality.
Cleaning Up Group Chat UI:
The Issue: A non-functional "heart" icon appears in group DMs.
Technical Hypothesis: This is a minor UI fix. The front-end templating already includes an isGroup flag that we can use to conditionally hide the icon.
Improving Social Login:
The Issue: We aren't capturing user emails on social sign-up. Users instead get a random unknown name.
Technical Hypothesis: The front-end will need a new prompt after the OAuth callback. On the back-end, the primary task is to create and run a new database migration using Entity Framework to add a unique email column to the user table.

Milestone 3:
Building User Search:
The Goal: Allow users to search for each other.
The Plan: Implement a front end UI and proper database indexes for the /api/Users/Search endpoint.
Creating a Notifications System:
The Goal: A new page for users to see notifications and manage their preferences.
The Plan: This is the most significant new build. The plan involves creating the UI on the client and, on the back-end, building out a full CRUD API for the existing Notification entity, then connecting it to the existing SignalR setup for real-time alerts.
Update the back end from .NET Core 3.1 to a modern LTS version like .NET 8.
The Goal: Update the back end version to a version with active support without loss of any features
The Plan: Update to the new version and fix any issues that arise.
Skills required
Javascript
C# and the .NET framework
Fantastic attention to detail
Detailed Quality Assurance