Interview Scheduler is a Single Page Application for tracking student interviews. It allow appointments to be booked from Mon-Fri between the hours of 12 pm -5pm. Scheduler is built with the latest tools and techniques for optimized user experience which includes add, edit and delete appointments in real time.The App utilizes React built-in and custom hooks and data is persisted by the API server using a PostgreSQL database. The client application communicates with an API server over HTTP, using the JSON format. For quality assurance, the project follows best practices of TDD (Test Driven Development), where individual Components are tested in isolation as well as End-to-End testing is performed.
-
Scheduler app allows users to book appointments and select interviewers from available interviewers from Mon-Fri between the hours of 12 pm -5pm.
-
Selected day of the week is highlighted and available slots are displayed.
-
Users can add the appointment using the "+" icon and save successfully only if the name and interviewer accordingly.
-
Users can edit the existing appointment with validations.
-
App also provides a cancel option to delete an existing interview. A pop-up message will confirm the action before permanently deleting an interview.
-
Error message will pop up for any issues while saving or deleting an appointmnet .
-
No of slots ar updated according to Action add and cancel operations
Install dependencies with npm install
.
- axios: 0.20.0
- classnames: ^2.2.6
- normalize.css: ^8.0.1
- react: ^16.9.0
- react-dom: ^16.9.0
- react-hooks-testing-library: ^0.6.0
- react-scripts: 3.0.0
- Storybook
- Cypress: 9.7.0 , VcXSrv for WSL2 only.
- Install dependencies with
npm install
. - Use the
psql -U development
command to login to the PostgreSQL server with the usernamedevelopment
and the passworddevelopment
. - Create a database with the command
CREATE DATABASE scheduler_development;
. - Add the
.env.development
to the project with the following details
PGHOST=localhost
PGUSER=development
PGDATABASE=scheduler_development
PGPASSWORD=development
PGPORT=5432
- Run the server and seed the Database using
npm start
- To rest database use
http://localhost:8001/api/debug/reset
. - To introduce failed save and dlete functionality the server must run with
npm run error
npm test
npm run storybook
Front-End: React, Axios, JSX, HTML, SASS, JavaScript
Back-End: Express, Node.js, PostgreSQL
Testing: Storybook, Webpack Dev Server, Jest, Testing Library and Cypress