/public-holiday-calendar

SPA holiday calendar with email & ICS feed subscriptions using React, CSS, MUI, Axios. Modern design. (frontend part)

Primary LanguageJavaScriptMIT LicenseMIT

Public Holiday Calendar codecov

Demo

https://yanag4.github.io/public-holiday-calendar/

To see changes on calendar:

  • Choose some countries (e.g. France, Estonia, Germany, Finland - they have some hardcoded events)
  • The "New Year" events appear on the calendar
  • If you don't see them, click 'back' and 'next' on the Calendar. They will be randomly placed somewhere around the current date, which includes the next and the previous months.

Also check "How to use" section down below.

Design

Screnshot of the project

Description

A public holiday calendar that shows events in the chosen countries!

It allows you to take a quick peak at the upcoming events using the online calendar;

Or you can add it to your Mail client;

And subscribe to the e-mail reminders.

Features

  • My own design 🐹

  • Getting/Sending data from/to backend using Axios

  • Hardcoded data for frontend demo

  • Screen adaptive, responsive design

  • Single-Page App

  • Saving chosen countries in the Local Storage

How to Use

  1. Choose country/countries in the input field
  2. Check the events on the calendar (they will appear as you choose the countries)
  3. Subscribe with your e-mail to the reminders
  4. Use the generated links to subscribe to the feed
  5. Check the instruction if needed

For the frontend run see the section: How to run (for a frontend demo) down below

Tech Stack

  • JS/ES6+
  • React
  • CSS
  • SCSS
  • Axios
  • HTML
  • MUI
  • Figma
  • REST

Testing codecov

  • Jest
  • RTL
  • axios-mock-adapter
  • Codecov

Other Tech Stack

  • Create-react-app
  • Local Storage
  • E-mail validation
  • Getting and sending data to the server
  • Immutability
  • Hooks (useState, useEffect, useRef, useCallback, useContext)
  • Media queries
  • CSS animations
  • Customized react-big-calendar

How to run (for a frontend demo)

  • Download the project to your computer and open it in VS Code or other development tool
  • Go to "cd client" in the terminal
  • Type "npm install" in the terminal
  • Run the project with "npm start" in the terminal

On the site:

  • To see the hardcoded data go to the September 2022 on the calendar
  • Choose some countries (e.g. France, Estonia, Germany - they have some hardcoded events)
  • The "New Year" events appear on the calendar ( September 2022 )

Author

Yana (SinXenon) — frontend developer

sinxenon4@gmail.com