Skip to content

This project is a realtime communicatable single page application (SPA) using React and WebSocket that allows users to book, edit and cancel the interview appoinments.

Notifications You must be signed in to change notification settings

EavanK/scheduler

Repository files navigation

Interview Scheduler

Summary

Interview Scheduler is a single page application (SPA) using the latest tools and techniques, we build and test a React application that allows users to book, edit and cancel interview appointments. We combine a concise API with a WebSocket server to build a realtime experience.

Demo interview-schduler.app

Getting Started

  1. Fork this repository, then clone your fork of this repository.

  2. Fork scheduler-api repository, then clone your fork of scheduler-api repository.

  3. Install dependencies using the npm install command in both the scheduler folder as well as the scheduler-api folder.

  4. Start the web server using the npm start command while in the "scheduler-api" folder. You will also need to start the client by navigating to the root folder and running this npm start command there as well. The app will be served at http://localhost:8000/.

  5. Go to http://localhost:8000/ in your browser.

Final Product

Home page home_page

Book appointment book_appointment

Edit appointment edit_appointment

Cancel appointment cancel_appointment

Error message error_message

Realtime communication (WebSocket) realtime_communication

Running Webpack Development Server

npm start

Running Jest Test Framework

npm test

Running Storybook Visual Testbed

npm run storybook

Running Cypress End-to-End Test

Make sure scheduler-api server is running in test mode with this command.

  • in scheduler-api directory
npm run test:server

Make sure scheduler is running.

  • in scheduler directory
npm run start

Type this command to run cypress in scheduler directory.
Make sure both scheduler and scheduler-api are running.

  • another terminal tap

  • in scheduler directory

npm run cypress

Now, you should have 3 terminal taps (scheduler, scheduler-api, cypress)

Dependencies

  • React
  • Axios
  • react-dom
  • classnames
  • WebSocket

devDependencies

  • storybook
  • @testing-library
  • Cypress
  • node-sass
  • prop-types
  • react-test-renderer

Future Goals

  • Replace useState to useReducer
  • Combine a concise API with a WebSocket server to build a realtime experience
  • Deploy the server to Heroku
  • Deply the Client to Netlify

About

This project is a realtime communicatable single page application (SPA) using React and WebSocket that allows users to book, edit and cancel the interview appoinments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published