Coder Social home page Coder Social logo

scheduler's Introduction

Interview Scheduler

Project Description

Interview Scheduler is a React SPA (Single Page Application) for tracking students interviews built with the latest tools and techniques for optimized user experience.

The App utilizes React built-in and custom hooks and allows users to add, edit and delete appointments in real time, with a focus on useState.

Data is persisted by a separate API server using a PostgreSQL database. The client application communicates with an API server over HTTP, using the JSON format.

This project features a variety of unit, component, integration, and end-to-end tests to assure that various states and functions work appropriately.

Project Features

  • Appointment days (Monday to Friday) are displayed and colour-coordinated depending on availability
  • The days show the number of slots available as a snapshot of the week
  • A user can switch between days and see live and detailed information without reload
  • Booked and available slots are clearly differentiated
  • A user can book interviews by typing in a student name and clicking on an interviewer from a list of interviewers
  • A user cannot erroneously schedule an interview; name and interview are required for save
  • A user can change the details of an existing interview by pressing the edit icon
  • A user can cancel an existing interview, a pop-up message will ask to confirm the action before permanently deleting an interview
  • Days display currently remaining spots and capture updates after each modification

Scheduling Flow

'Showing error handling for invalid form, scheduling, editing, and deleting appointments'

Showing error handling for invalid form, scheduling, editing, and deleting appointments

Daily view

'booked-slots-available' By selecting a weekday on the left panel, a user can see booked appointments and available slots for each day.

New appointment booking

'book-new-apt' A user can add interviews to available slots by typing a student name and adding interviewer from the list (an error message will be shown if a student name field is left blank).

Installation

npm install

Running Webpack Development Server

npm start

Running Jest Test Framework

npm test

Running Storybook Visual Testbed

npm run storybook

API server/*Database Setup

For full functionality both must run concurrently: the client and the API server applications.

  • Start by forking and cloning the scheduler-api server here
  • Follow the steps outlined in README to install and setup the database
  • Fork and clone this repo
  • Navigate to the root directory and install dependencies with npm install
  • Once you have the database setup and the scheduler-api server running, run the following command from the root directory of the project npm start

Project Stack

Front-End: React, Axios, JSX, HTML, SASS, JavaScript

Back-End: Express, Node.js, PostgreSQL

Testing: Storybook, Webpack Dev Server, Jest, Testing Library, Cypress

Dependencies

  • Axios
  • Classnames
  • Normalize.css
  • React
  • React-dom
  • React-scripts
  • Babel/core
  • Storybook/addon-actions
  • Storybook/addon-backgrounds
  • Storybook/addon-links
  • Storybook/addons
  • Storybook/react
  • Testing-library/jest-dom
  • Testing-library/react
  • Testing-library/react-hooks
  • Babel-loader
  • Node-sass
  • Prop-types
  • React-test-renderer

scheduler's People

Contributors

dpappo avatar

Stargazers

Roman avatar

Watchers

 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.