Skip to content

MPrashanthR/Appointment-App

Repository files navigation

In this project, let's build an Appointments App by applying the concepts we have learned till now.

Refer to the image below:


appointments app output

Design Files

Click to view

Set Up Instructions

Click to view
  • Download dependencies by running npm install
  • Start up the app using npm start

Completion Instructions

Functionality to be added

The app must have the following functionalities

  • Initially, the list of appointments should be empty and the title input and date input should be empty
  • When non-empty values are provided for title and date and the Add button is clicked,
    • A new appointment should be added to the list of appointments
    • The value inside the input elements for title and date should be updated to their initial values
  • When the Star on an appointment is clicked, the appointment should be starred
  • The status of the Starred filter is updated by clicking on it
  • When the Starred filter is active, all the starred appointments should be filtered and displayed
  • When the Starred filter is inactive, the list of all appointments should be displayed
Components Structure
component structure

Implementation Files

Use these files to complete the implementation:

  • src/components/Appointments/index.js
  • src/components/Appointments/index.css
  • src/components/AppointmentItem/index.js
  • src/components/AppointmentItem/index.css

Quick Tips

Click to view
  • The HTML input element with the type date is designed for the user to select the date from a date picker

    <input type="date" />
  • The format function in the date-fns package can be used to get the formatted date string in the given format

    import {format} from 'date-fns'
    
    console.log(format(new Date(2021, 19, 07), 'dd MMMM yyyy, EEEE')) // 19 July 2021, Monday

Important Note

Click to view

The following instructions are required for the tests to pass

  • For the format function, pass the format string dd MMMM yyyy, EEEE as the second argument
  • The star button in each appointment should have the testid as star
  • The star image in each appointment should have alt as star

Resources

Image URLs
Colors
Hex: #9796f0
Hex: #fbc7d4
Hex: #ffffff
Hex: #171f46
Hex: #8b5cf6
Hex: #b5b7c4
Hex: #9897f0
Font-families
  • Roboto

Things to Keep in Mind

  • All components you implement should go in the src/components directory.
  • Don't change the component folder names as those are the files being imported into the tests.
  • Do not remove the pre-filled code
  • Want to quickly review some of the concepts you’ve been learning? Take a look at the Cheat Sheets.