Inspiration - The recent versions of Google Chrome support offline browsing though the option to easily access the cached version of any web page in hidden deep inside the settings. So this inspired us to build an offline version of Freshdesk
What it does - The agents will be able to view his/her open tickets inside our full-page app. Along with it, the agent can view all necessary ticket details and all its conversations. The agent can reply to the customer and add a private note in offline mode. And that's it! The agent can deliver uninterrupted service with our app!!
How I built it - When the app is initialized, we store all the agent's tickets and its conversations in Browser storage. And when the network connection is intermittent or completely offline, the agent will be able to view all his/her open tickets inside our full-page app. We render a ticket list page in the full-page app. Clicking on a ticket will load a modal which contains the necessary ticket details.
The modal has an input area that allows the user to reply to the customer or add a private note. When the agent replies or adds a private note, we store the content in the browser storage, when the app goes online and the agent accesses the app page during that time the failed requests stored will be retried.
Challenges I ran into - Did a lot of study on offline mode apps. We had to think of workarounds when a few things didn't work in platforms
Accomplishments that I'm proud of - We are really proud of the amount of effort and learning happened when building this app
What I learned - Progressive Web Apps, Cache API, Service Workers
What's next for Offline Support - Turn into a complete PWA and add more functionality in offline mode. Make use of IndexedDB to store large chunks of data
Log in or sign up for Devpost to join the conversation.