Skip to content

symphony/interview-scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

Interview Scheduler is a single page App built in JS and React. It simulates a web portal that allows students to view and book appointments with instructors.
disclaimer - this project was built for educational purposes only as part of the curriculum at Lighthouse Labs - Web Dev Bootcamp

Features

  • View and Book Appointments
  • Update or Cancel Appointments
  • Mobile and Desktop View
  • Dark & Light Mode
  • Automated Testing

Usage

Download or Clone the Project

  • git clone git@github.com:symphony/interview-scheduler.git && cd interview-scheduler

Set up Server API (Cloned from: @lighthouse-labs/scheduler-api)

  • cd server
  • cp .env.development.example .env.development (file is already configured with default values)
  • cp .env.test.example .env.test
  • npm i
  • npm start

Once running, curl or visit http://localhost:8001/api/debug/reset to reseed the db. Visit Lighthouse Labs repo above for more information.

Set up Client in Separate Terminal

  • cd client
  • cp .env.development.example .env.development
  • npm i
  • npm start

Visit Scheduler in Your Browser

Stop the Server or Client

  • Use hotkey ctrl + c in respective terminal

Dashboard (Dark)

Screenshot of Scheduler's Dashboard

Create or Update Appointments

Screenshot of Scheduler's Edit Page

Cancel Appointment

Screenshot of Delete Confirmation

Mobile View

Screenshot of Mobile View


Running Tests (Ensure Scheduler API and PSQL db are running)

Running Cypress Tests

Restart Scheduler API in test environment

  • NODE_ENV=test npm start
  • npm run cypress

Dependencies

  • react
  • react-dom
  • react-scripts
  • typescript
  • axios
  • normalize.css

Dev Dependencies

  • @storybook/addon-actions
  • @storybook/addon-backgrounds
  • @storybook/addon-links
  • @storybook/addons
  • @storybook/react
  • @testing-library/jest-dom
  • @testing-library/react
  • @testing-library/react-hooks
  • @types/node
  • @types/react
  • @types/react-dom
  • babel-plugin-named-exports-order
  • cypress
  • sass
  • webpack

Server Dependencies

  • body-parser
  • cors
  • dotenv
  • express
  • helmet
  • pg
  • socket.io
  • ws
  • jest
  • supertest

Troubleshooting

  • The API database data can be reset by visiting http://localhost:8001/api/debug/reset
    or by running npm run reset
  • The Scheduler API can intentionally reject requests by running it with npm run error
  • A test environment for the Scheduler API can be run with NODE_ENV=test npm start - this is used for Cypress E2E testing
  • Cypress may need an external server to be running (such as X-Server on WSL Machines)
  • More instructions for Scheduler API can be found here: https://github.com/lighthouse-labs/scheduler-api

About

single page interface built in react that allows students to book interviews. uses multiple testing suites

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published