Giter VIP home page Giter VIP logo

good-lly / gh-pages-help-center Goto Github PK

View Code? Open in Web Editor NEW
42.0 4.0 17.0 326 KB

πŸ’‘ Simple FAQ/Help Center that can be entirely hosted on GitHub pages.

Home Page: https://good-lly.github.io/gh-pages-help-center/

License: GNU General Public License v3.0

HTML 38.13% CSS 29.68% JavaScript 32.19%
github-pages github-page self-hosted help-center helpdesk helpdesk-ticketing faq-system faq faqs

gh-pages-help-center's Introduction

License: GPL v3 Total Lines GitHub stars Contributions welcome

πŸ’‘ Simple FAQ/Help Center hosted on GitHub Pages

This is a minimalistic responsive Help Center hosted on GitHub pages written in vanilla JS. It does not need the maintenance of any servers or databases and can be hosted entirely on ❀️ GitHub for free!

preview:

example

Includes a very few dependencies:

Feel free to customize by visual identity of your preference .) To update <head> of your Help Center is recommended to follow HEAD - A list of everything that could go in the head of your document

Inspired by Githu Pages URL shortener.

πŸ’ͺ Motivation

Well, I want to convince my teammates that 99 global problems are possible to solve with GIT (or GitHub in this case)

"See, I told You! Github!"

-- Me

Also we wanted to launch some simple FAQ, with review process and team access but the most 3rd party tools are just limiting and cost us $$$. So, why not?

πŸ‘¨β€πŸ« Demo time

Here is a living example which we use on our own project & this is (?self-)help demo πŸ€” of this project that might help you.

β˜• Features

  1. The main feature is using a "database" in the form of GitHub issues and can be entirely hosted on GitHub pages.
  • Thanks to that you don't need to hassle around with the team management and access control
  • Gives your editor the ability to create markdown(HTML)-rich issues, comment on them, etc ...
  1. Fuzzy search thanks to fuse.js (What is fuzzy search? Generally speaking, fuzzy searching (more formally known as approximate string matching) is the technique of finding strings that are approximately equal to a given pattern (rather than exactly))
  2. Very simple - dummy setup. Written in vanilla old JS to work on IE, etc ...
  3. Responsive (simple css grid layout included)
  4. Look ma, the DARK MODE!!! πŸŒ™

Please note there maybe still a few issues! Also for a full-featured help center experience, I do recommend you implement some live chat option. QAs are not enough sometimes. It also brings value to you - when you talk to customers! [thanks-captain-obvious.gif] Here is a short list of a few Live chat tools (no recommendations):

  • zoho.com/desk
  • helpscout.com
  • purechat.com
  • userlike.com
  • olark.com
  • zendesk.com
  • intercom.com
  • freshchat.com
  • and so on ...

βš™οΈ But how? Easy!

I have extracted all important variables inside index.html file. So all you have to edit to make it work is there.

  1. Fork/copy/download the repo.

  2. Set up your GitHub pages

  3. Edit endpoint var GITHUB_ISSUES_LINK to your repo issues inside the index.html. For example

var GITHUB_ISSUES_LINK =
    'https://api.github.com/repos/good-lly/gh-pages-help-center/issues';

⚠️ avoid adding / after the end of path!

  1. Edit two more self-explanatory lines under the endpoint.
var GITHUB_ACCEPTED_CREATORS = ['good-lly'];
var GITHUB_ACCEPTED_LABELS = ['approved'];

Replace 'good-lly' with the list of your editors' team. The approved label is reserved to make only those issues visible for visitors. This is good feature when you have multiple team members and you want to avoid showing FAQ/Help before it's proof-read/valid/approved by your team.

  1. Add new issue inside the GitHub. Add approved and test for example.

  2. Now you can edit the simple HTML to something like

<div class="col-4">
    <h3>This is test</h3>
    <div class="content-box" data-label="test" data-order="newest"></div>
</div>

You can use a typical 12 column grid. Each content-box should have data-label and data-order. Inside data-label you can specify multiple labels which should render. The order can be the newest and oldest for now. To list all issues as well as all uncategorized you can use reserved label names:

var UNCATEGORIZED_LABEL = 'restUncategorizedEntries';
var ALL_LABEL = 'allEntries';

For example

<h3>All popular or Recent</h3>
<div class="content-box" data-label="allEntries" data-order="newest"></div>

<h3>Uncategorized</h3>
<div
    class="content-box"
    data-label="restUncategorizedEntries"
    data-order="oldest"
></div>
  1. That's it! Have fun! πŸ₯³

gh-pages-help-center's People

Contributors

good-lly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gh-pages-help-center's Issues

Where are the dependencies?

I tried to make the whole project without any frameworks, build stacks and with minimum dependencies to have as small footprint as possible and still be useful.

Currently we use only:

How to run on my own?

It's very simple. Just download, clone or copy repo to your own main folder. And edit the index.html. The most important values are:

var GITHUB_ISSUES_LINK =
                'https://api.github.com/repos/good-lly/gh-pages-help-center/issues';
            var GITHUB_ACCEPTED_CREATORS = ['good-lly'];
            var GITHUB_ACCEPTED_LABELS = ['approved'];

You must edit GITHUB_ACCEPTED_CREATORS to your own usernames & add to your issues the "approved" label ...

Thats it I believe.

Known issues

  • avoid to adding spaces in label names
  • styles glitches here and there ... (sticky search bar)
  • accessability sucks
  • missing 404

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.