luma-eng-interview-xingcheng-sun
v1.0.1
Published
A REST API that enables a simple scheduling system that manages doctor availabilities and allows patients to book appointments.
Downloads
6
Readme
Synopsis
A busy hospital has a list of dates that a doctor is available to see patients. Their process is manual and error prone leading to overbooking. They also have a hard time visualizing all of the available time for a doctor for specific dates.
REST API
Implement the following functionality:
- Find a doctor's working hours
- Book an doctor opening
- Create and update the list of doctor's working hours
API Reference
- Find a doctor's working hours
URL: /:doctorId/:date
METHOD: GET
PARAMS:
a. doctorId
b. date
- Book an doctor opening
URL: /:patientId/create/
METHOD: POST
PARAMS:
a. doctorId
b. date
c. duration
- Create and update the list of doctor's working hours
# Create a working hour
URL: '/:doctorId/create/'
METHOD: POST
PARAMS:
a. doctorId
b. date
c. duration
# Delete a working hour
URL: '/:doctorId/delete/'
METHOD: DELETE
PARAMS:
a. doctorId
b. date
c. duration
Installation
npm i luma-eng-interview-xingcheng-sun -S
Configuration
How to Configure
This library is using MongoDB(mLab) as database so the configuration can be loaded from an external configure file called config.json. Sample config shows below.
# DATABASE CONFIG
{
DB_URI: YOUR_MONGODB_URI,
USERNAME: YOUR_MONGODB_USERNAME,
PASSWORD: YOUR_MONGODB_PASSWORD
}
How to Use
# In your project's app.js
app = require('luma-eng-interview-xingcheng-sun');
const PORT = 8081;
app.listen(PORT, "0.0.0.0");
console.log("We are live on " + PORT);
Tests
1. How to Test
npm test