Skip to content

Zendesk Dashboard using Express that updates whenever a ticket is solved or assigned.

Notifications You must be signed in to change notification settings

tcampb/Zendesk-Dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Calendly Zendesk Dashboard version 1.0

Coded by Tyler Campbell and Rich Oswald

Released: December 20, 2017

To: Calendly

Deployed: December 20, 2017

Languages and Technologies used

  • Node.js
  • Express
  • JavaScript
  • jQuery
  • HTML
  • CSS
  • Google Firebase
  • Amazon Web Services (AWS)

Purpose

This app was written as a front-end project for DigitalCrafts 16-week Full-Stack Immersion Bootcamp. The idea was presented to Tyler Campbell by Calendly employee, Joelle Waksman. Joelle wished for a dashboard to display her teams realtime progress on support requests for the day. Joelle's reaction to the finished project is captured in this quote from a LinkedIn message:

Dashboard

The Calendly Zendesk Dashboard (CZD) provides a realtime visual display of each team members progress on ticket requests and completions. A photo of the team member along with two progress bars provide a visually appealing, easy-to-read display. It was laid out using Bootstrap.

Progress Bars

The bars report the number of tickets received by the member and the number of tickets completed by the member. Each bar provides a visual, as well as numerical, description of the team members current work load so the team can be aware of the distribution of work and their individual progress.

Color Coded

The top bar, colored blue, displays the tickets received. The lower bar, colored green, displays the tickets completed.

Admin Login

A separate admin panel is accessed through a login page that requires a unique user name and id.

Admin Login

Admin Page

The admin page provides the supervisor with control over various items displayed in the dashboard.

to a menu on the left of the page. The menu displays the options to:

  • View Dashboard
  • Add User
  • Remove User
  • Set Goal
  • Logout

Admin Dashboard

Add user page

When adding a user, the admin will be promted to enter the team members name and a picture to use on the dashboard display.

Admin Add User

Add user picture

The picture can be uploaded by browsing in Finder and selecting the appropriate file, or drag and drop the file into the area denoted in the middle of the add user panel.

Admin Add User Picture

Remove User

Users are removed by selecting the remove user link in the task bar which brings up the remove user screen.

Remove User Dropdown Menu

When removing a user, a drop down menu displays all the current users. From this list, the member to delete is selected.

Remove User Picture Verification

The current picture along with the name of the selected team member is displayed. If the correct member has been selected, clicking the red boardered submit button at the bottom of the page will remove the team member from the Dashboard and Admin Panel display.

Set Goal Admin Screen

To set the main goal for the team, the admin selects set goal from the dropdown menu. Then the admin can enter a value and that value will be displayed in the header of the dashboard.

Logout

Clicking the logout button returns the admin to the admin login page and prevents viewing admin page without re-entering the correct user-name and password.

Form Validation and Login Error Display

There are various errors that can occur when attempting to login to the admin panel.

Poorly Formatted Email

If a user types in an email that does not contain the appropriate characters and section of a proper email address, this is noted with an error code in red.

Incorrect Email Error Message

User Not Found

If the user name is not found, an error code reading the same is displayed in red.

User Not Found Error Message

Wrong Password

If there is an error in the password entered, this error is reported to the user in red.

Wrong Password Error Message

Code for above checks

The code below handles the error checks that are described above. A general error reporting function is called for each error message returned by the server.

         // General input error code reporting function
         var errorFcn = function(errorMessage) {
             var msg = document.getElementById(errorMessage);
             var emailForm = document.getElementById("email-form");
             var pwdForm = document.getElementById("pwd-form")
             var button = document.getElementById("reset-button-line");
             msg.style.display = 'block';
             button.style.marginTop = "22px";
             $(email).on('click', function(event){
                 msg.style.display = 'none';
                 emailForm.value = '';
                 pwdForm.value = '';
                 button.style.marginTop = "70px";
             });
         };
 
         // Alerts for "Invalid email", "User not found", and "Wrong password"
         promise.catch(function(error){
             if (error.code.includes("invalid-email")) {
                 errorFcn("email-error");
             }else if (error.code.includes("user-not-found")) {
                 errorFcn("user-error");
             }else if (error.code.includes("wrong-password")) {
                 errorFcn("password-error");
             };
             console.log(error.message);
             console.log(error.code);
         });
     });

Animation Celebrations

It was requested that animations were installed that celebrated individual as well as group accomplishments for each day.

Individual Goals Met

When an individual support team member reaches a predetermined goal for tickets solved, a bouncing rainbow colored sheep appears above their progress bar and is translated from the far right of the bar to just in front of their name. The length of their name is calculated so the sheep stops at correct place no matter the name length.

Watch it here on YouTube

Team Goal Met

There is a team goal displayed at the top of the dashboard. When this goal is met, a large group of rainbow sheep, that takes up the verticle space of the screen, is translated from right to left across the screen.

Watch it here on Youtube

Challenges

  • Back-end
  • Since this was a full-stack project made after having gone through only front-end in class up to this point, it was quite the hurdle to learn and apply enough back-end tools to allow full functionality.

  • Layout
  • Laying out the dashboard for a 60inch screen first, made making it mobile responsive a difficult endevor.

  • Security
  • Since this application was going to be used in a real world situation with proprietary data, it was important to limit access to the functionality to the team manager and make sure data was cleared each day. We did not import any historical data to limit vulnerability and complexity of data management.

Stretch Goals

The Minimum Viable Product (MVP) for this project was quite extensive. But there are several things that we would like to add and/or improve.

  • Increase the complexity of the celebration animations.
  • Insert the ability to have ticket goals for each team member.
  • Correct the admin login text fields to clear after error is shown.
  • Add animation to the submit buttons on the "add user" and "remove user" windows on admin page to verify submission.
  • Clear the fields on "add user" and "remove user" after submission.

We want to sincerely thank our instructor, πŸ“Chris Aquino 🐱, for his kindness, availability, encouragement, knowledge and wisdom. Without him, this project would not be currently, or probably ever, used by Calendly.

πŸ‘πŸ»-Tyler Campbell

πŸ‘πŸ»-Rich Oswald

About

Zendesk Dashboard using Express that updates whenever a ticket is solved or assigned.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages