Git Product home page Git Product logo

js-recruitment-assignment's Introduction

Docplanner Technical Test

Welcome onboard!

As you may have already seen, we really like to experiment and iterate here at Docplanner and just now we’re dealing with a new amazing feature for our users: reschedule an appointment!

So your first task with us will be to develop a fast prototype for a small app that allows our patients to reschedule an existing appointment. This is the design:

Basic design

You can see a preview of a working application with all the features at the end of the readme.

As you can see, when the users access the app they see basic data about the current appointment: the doctor and the date. As initial data, suppose you had an appointment with Dr. Simeon Molas on Friday, May 21th at 10:30.

The available slots for the next seven days are shown, starting from today. Only a few slots are initially shown but there is a button to “See more hours” under them. Some of the slots may be Taken, so they’re not available to the patient to book.

The user could explore future weeks, but not past weeks, by using the right and left arrows on the header of the calendar. Whenever he finds a slot he’d like to book, he just clicks on it and the appointment and confirm. If the reschedule is successful, the date of the appointment is updated. Since the user clicks the slot until he gets an answer, a loading spinner with crossed-out date to be changed will appear.

In order to get and manipulate the data you’ll have to use our API.

Basically the GET where you'll retrieve slots for a maximum of seven days:

And the POST with an example of the request’s body used on the endpoint:

{
  "Start": Start timestamp (string "YYYY-MM-DD HH:mm:ss"),
  "End": End timestamp (string "YYYY-MM-DD HH:mm:ss"),
  "Comments": Additional instructions for the doctor (string),
  "Patient" : {
    "Name" : Patient Name (string),
    "SecondName" : Patient SecondName (string),
    "Email" : Patient Email (string),
    "Phone" : Patient Phone (string)
  }
}

Notes

Keep in mind that this is a prototype, we don’t expect from you to get the best possible solution but the best you could do in a few hours, so your criteria is important. The solution should work for every day of the week.

Although it’s just a prototype, we’d like to see some structure on your code. Treat it more as a large-scale production application — show your best skills, so we can know you better.

We’ll look at how you use the framework/libraries, architecture, text coverage, readability, maintainability, performance, adherence to best coding practices. If you skip some of those, please provide comments, so we know what's your approach.

Animations on going forward, backward or on see more slots are not mandatory.

In order to make it easier for you, we’ll provide a boilerplate you can start the project with. Feel free to use any library that it could fit to your solution. Also, boilerplate could be outdated, don't hesitate to update it or totally remove it.

Our expectations

Use the framework you feel comfortable with.

To start from boilerplate you can execute:

yarn install && yarn serve

Preview

js-recruitment-assignment's People

Contributors

olek3t avatar

Watchers

Michał Świtoń avatar Bartłomiej Kuleszewicz avatar dan zelisko avatar  avatar Eduardo Corzo avatar Mateusz Mikulski avatar Maciej Szkamruk avatar Shahar Halutz avatar Kamil Popiński avatar Antoine Bedex avatar Patryk Jachowski avatar Pollyanna Rigon Valente avatar Rafal Bochenski avatar Michal Ksionek avatar Adrià Ríos Cabrera avatar  avatar Sergei Chistyakov avatar Wojtek Roszkowski avatar

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.