Giter VIP home page Giter VIP logo

qslcontacts's Introduction

QSLContacts

About

QSLContacts was born to address the need of easily accessing the the BC Government Directory, which is exposed as XML by DataBC.

The application is written in Javascript, and uses a NodeJS backend and an Angular frontend.

Functionality

QSLContacts will fetch the XML containing the BC Government Directory and display a searchable list of contacts. Similarly to a mobile phone adrress book, the search function will perform a lookup throughout all of the contact attributes (name, email, phone, etc.) and only display the results that match all of the search terms.

It is possible to initiate a phone call or compose an email just by clicking the relevant buttons on the desired contact. Similarly, a vCard containing all of the contact's information can be downloaded using the appropriate function.

The contact list is cached in case the xml directory it becomes unavailable. The cache timeout is set by default to 60 minutes, but it can be overridden by setting the encironment variable CACHE_TTL to the desired value (in seconds).

Running the app

To run the application locally, execute the command start.sh in this directory. Once the docker containers are up and running, the application will serve at http://localhost:80

To start the application in production mode, pass the -p argument to the start script: start.sh -p. A production-ready instance of the application, using Caddy to serve the frontend, will be started. Note: ensure that the variables domain_1, domain2 in docker-compose-prod.yml are updated with your domain name(s).

To run the frontend or backend independently, or run them in development mode, please refer to the instructions in the relevant readme file.

Stopping the app

To stop the containers, run stop.sh in this directory.

qslcontacts's People

Contributors

asanchezr avatar bradhead avatar dependabot[bot] avatar devinleighsmith avatar esune avatar jeznorth avatar nickphura avatar swcurran avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

qslcontacts's Issues

Add hyperlinked organization structure to contacts

Add hyperlinked organization structure to easily navigate through the organizational reporting structure (i.e. which director reports to which exec director. The orgunit hints at this, but when more than one ED in an org-unit can't resolve.

Filter by organization

I'd argue that this is at least partially done. I've added "exact match" search capability to the application (enclose the search terms in quotes). What is missing is a queue to the user to use the quotes.

using the exact match, a user could filter by organization by enclosing the org name in quotes, while leaving the rest of their search term as is. ie: Sarah "Ministry of Agriculture"

Feature Backlog for BC Government Directory

This is the feature backlog we had in mind after delivering the MVP.

  1. Enhance VCard support to work better with popular browsers. It has some issues with Chrome
  2. Add hyperlinked organization structure to easily navigate through the organizational reporting structure (i.e. which director reports to which exec director. The orgunit hints at this, but when more than one ED in an org-unit can't resolve.
  3. Feature to bookmark either contact or organization, or org unit.
  4. Ability to ‘save search’, similar to ‘favourites, but a search with a customized label.
  5. Filter by organization
  6. Enhance search to support excluding words when zero matches found to find ‘possible matches’
  7. Enhance search to support phrases as, such as “Ministry of Finance” to avoid finding Finance departments in other ministries.
  8. Improve client-side content management to support functionality when disconnected from the Internet. - using HTML 5 local storage of the JSON.

Necessary tweaks to the XML Schema to support some of these features:

a. Of these, (2) would require a more information be supplied by the content sources.
b. Additionally, having the IDIR-like organization abbreviation “CITZ” for example.
c. Also codified roles would be useful, “ADM” for Assistant DM, “ED” for Exec. Director, and so on, as well as the human-readable job/role title.
d. Codifying the phone so we know if it’s a mobile or land line and if it can receive texts would allow us to add the ability to text the contact, as you suggested using the sms URI schme:
a. E.g. sms:+18005551212

Enhance Vcard support

Chrome for IOS and Safari have (had?) some undesirable behaviour when opening the vcards. This may already be resolved.

Feature to bookmark either contact or organization, or org unit.

I think this is 50% done. I've added a router to the application already that allows the current search to be set in the URL bar. Adding a 'save' button to the app that just creates a browser bookmark using the current search url would be an easy way to accomplish this.

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.