Build a Blazor website to view screenshots and user activity

Build a Blazor website to view screenshots and user activity

Build a Blazor website to view screenshots and user activity

Upwork

Upwork

Remoto

14 hours ago

No application

About

We need an experienced Microsoft Visual Studio programmer to build a Blazor Server website in C# with MVVM pattern with DevExpress controls. The site will access a MSSQL database through Dapper to pull out data related to user behavior we’ve collected in a database and file system on our servers such as active/idle time, clicks/keystrokes, statistics, and screenshots. The primary features include 1. Screenshot Viewer Webpage to scroll through screenshots or thumbnails from a shared folder and allow filters based on dates, users, teams, and other criteria. Ability to re-arrange the page so that screenshots could be compared either horizontally (side-by-side) or vertically. Can be searched/filtered by metadata from the database such as timestamps, user name, server name, disposition (on break, end of day, meeting, outside of normal hours, etc.), etc. Note that some screenshots are of a single monitor, while others are of dual monitor setups, so it needs to be able to handle this. Needs a feature to view the full screenshots (most are dual monitors so 1920x1080 times 2) with zoom and scroll and a next/previous feature when in that view state. Feature to mark selected thumbnails/screenshots for a saved report to be viewed later or exported to PDF. Filter to skip screenshots and only show 1 per 5 minutes or 1 per 10 minutes, etc. By default, we have 1 screenshot per person per minute. The primary goal of the screenshot viewer is for the manager to quickly do a visual inspection to make sure the user is on track and not using a mouse jiggler or macro to fool the system into thinking they’re active or to see what they were doing during a period of time. Advanced OCR and other features to recognize content will come at a later phase. 2. Screenshot Viewer enhancements Note that we’ve deleted redundant screenshots so you’ll use the database to fill in those gaps so instead of scrolling through 60 of the same screenshots when they’ve walked away, the website will insert something to indicate the same screenshot continued for 60 minutes. 6 main alerts such as colored borders around screenshots in question or some other marker will indicate either points of concern where we can tell they weren’t working or primary events like they’re on break or ended their shift. Examples. A. They logged in for the day on time but didn’t do anything for 10 minutes because the screenshot didn’t change (e.g. of clocking in and then leaving to get coffee instead of working). B. They clocked out and in for at 60 minute lunch but their screenshots show they didn’t actually do any work for 90 minutes. C. They logged out on time but the previous 10 screenshots don’t show they did anything at the end of their day so they must have stopped working early. D. Screenshots of activity outside of their normal work hours. E. We need markers in the screenshots when expected events happen such as the employee marked they are on break, started their shift, were on lunch, or ended their day. F. We need markers in the screenshots when unexpected events happen such as RDP disconnects. 3. Utilization Viewer We’ve collected behavioral data such as mouse clicks/keystrokes, idle/active time, breaks, logins/logouts, etc. and we need to calculate staff member’s true utilization for the “work day” and deviations like if they came in late, left early, worked longer, or took a longer lunch than expected. Note that some staff might have more than one shift per day or a shift that spans over midnight, so you’ll go off of a schedule in the database to determine those hours, their lunch breaks, their start/end times, etc. so when we run a report, “work day” means all shifts within a designated period. The Utilization metric will compare the data that was collected (logins/logouts, idle/active time, clicks/keystrokes, etc.) with what their work schedule says they should be working and thresholds they should be meeting such as 85% activity. We’ll also include breaks, meetings, manager adjustments, etc. to come up with a daily, weekly, monthly, etc. scorecard for the individual, team, and side-by-side customizable comparisons between teammates. Needs the ability for the manager to create dynamic views with options like employee, team, project, date ranges, etc. they can quickly run. Then more advanced things like a filter to show unexpected behavior like people who started their day late, took a longer lunch, or left early, are below expectations for their utilization. 4. Click/Keystroke Count Viewer Filters to view clicks/keystroke counts based off of time periods like broken down into 10-minute chunks, 30 minutes, 60 minutes, or even “work day”, with a graph to show the trend and ability to click a point on that graph to view the accompanying screenshots. Currently we’re taking screenshots every minute for every user. This graph could have a second line that compares the same time period with the idle/active counters. So although the user might have a high active counter, if we don’t show any clicks/keystrokes, they might be using a jiggler or watching a video. 5. Manager interactions with staff A. Manager can add Active or Idle time to someone’s schedule and put a reason such as Offline work, Meeting, extended lunch, etc. B. Ability to send a message to one or more users and mark it as discreet or full screen and with an acknowledge button that keeps track of when they’ve acknowledged it. C. Ability to set a banner message with an expiration date/time such as “Windows Updates happening on Saturday at 1pm MST” There may be other phases to this project as time permits, such as a manager dashboard, permissions, project tracking, analytics, fraud and illegal/unauthorized activity alerts, creating thresholds, etc. Requirements: Expert developing Blazor Server websites in Visual Studio with the MVVM pattern and C#. You will interact with other programmers who are handling the Windows desktop application that takes the screenshots and gathers the data. Database: MSSQL with Dapper (we can provide the queries as needed but there shouldn’t be many) Work Environment: You’ll need a Windows 11 computer to install our VPN client so you can RDP into our server to do your coding in Visual Studio. Two monitors are preferable. If you’re an agency, please to not apply. Depending on the candidate’s resume, we may give a hands-on virtual proficiency test to determine your comfort level with Blazor Server before we hire. This could potentially lead to other long-term projects.