adminScheduler App: Powered by Electron, Vue.js, and Fullcalendar.io

adminScheduler

adminScheduler is an application leveraging Vue.js to create lightning fast UI, Electron for cross platform compatibility, and fullcalendar.io to deliver a premium calendar interface. fullcalendar is a JavaScript event calendar, customizable and open source which allows display a full-size drag-n-drop event calendar, leveraging jQuery.

With Electron you can build cross platform desktop apps with JavaScript, HTML, and CSS.

Watch adminScheduler in action: adminScheduler video

Features

  • separate client/admin classes
  • admin can accept/reject requests
  • client can make requests to different admins
  • client receives updates regarding appointment status
  • admin can cancel events including accepted requests
  • client can also cancel events but not those of admin users

Purpose

I wanted to develop a desktop application that had the potential to prove useful in a variety of use cases. In its current form adminScheduler is setup to handle to tasks of scheduling a doctor’s office. Users are patients or doctors who can request appointments and accept/reject them based on their associated privileges. However although this project has been set up to handle the needs of a doctor’s office, it can be used in other situations with just a few modifications. The application could be used to manage the appointments of a law office or it could be used to schedule meetings between a tutor and their students. adminScheduler can be used in almost any scenario involving a client and admin relationship.

Setup

To run this application you have to follow a number of steps, the app is currently configured to work with a postgres db. However it could be reconfigured to work with other databases.

Initial step: Clone the repository then go to adminScheduler/clean_server/ and run npm install, them go to adminScheduler/scurrent_clean/ and run npm install and lastly go to adminScheduler/clean_server/createUserTable and again run npm install.

Database Setup steps:

  1. Create postgres databases named ‘seq’ and ‘doctor’
  2. Find sequelize.js in adminScheduler/clean_server/createUserTable/app/sequelize.js
  3. Configure sequelize.js to connect with your database
  4. Find setupPg.js in adminScheduler/clean_server/resources/app/setupPg.js
  5. Configure the connectionString in setupPg.js
  6. find setupPg.js again and run ‘node setupPg.js'
  7. go to adminScheduler/clean_server/createUserTable and run ‘node setup.js’

Final Steps:

Run the server by going to adminScheduler/clean_server/resources/app and running node servertest3.js. Finally run the application by going to adminScheduler/scurrent_clean/ and running npm run dev

Client Admin Relationship

If you are using this application for a different kind of client/admin relationship, for example a law office or tutoring service you may need to make some simple changes. So if you have a law office you would make some adjustments changing the users with doctor priveledges into lawyers and users with patient priveledges would become clients. Lawyers would now accept or reject appointment requests from clients and clients view the schedules of different lawyers before choosing the lawyer they would like to schedule an appointment with. In essence you would only have to change the names of some popups, buttons, and edit a couple lines of server code to change this application from one set-up for a Doctor's office to one for a law office to any sort of business involving a admin/client relationship.

Interested in using adminScheduler in one of your projects? Head to its repository and give it a go.