Skip to content

GoBarber Web Application to manage barbershop scheduling, developed copying the instructor coding during the Rocketseat's GoStack Course.

License

Notifications You must be signed in to change notification settings

danielynx/rocketseat-gobarber-web

Repository files navigation

GoBarber Web 💈

GoBarber Web Application to manage barbershop scheduling, developed copying the instructor coding during the Rocketseat's GoStack Course.

💻 Features

  • Sign Up
  • Password recovery
  • Sign In
  • Profile update
  • View customers appointments by day

📸 Screenshot

signup
login
appointments

🧰 Main languages and libraries

Github top language

Github version lib Fixed lib Fixed lib

🚀 Publishing

Github Actions is being used to deploy and deliver the applications on Digital Ocean server.

🧪 Test Coverage Report (Jest library)

Image

⚙️ Setup

  1. Environment:
  • NodeJS: v12.18.0
  • Yarn: v1.22.5
  1. Project
# clone this repo
$ git clone https://github.com/danielynx/rocketseat-gobarber-web.git

# go to project folder
$ cd rocketseat-gobarber-web

# install dependencies
$ yarn install

# Config API address on .env file

# Start React Native watcher
$ yarn start

📖 Main concepts that I learned in this project

  • Utilize useRef and useCallback react hooks.
  • I learned that react has attributes set of each html component, and using this it's possible create component that receive any native attribute.
  • Use Unform component to manage form data.
  • How Styled Components allow stylize a children component.
  • Create a React Context to share data with many components.
  • I learned that the function returned by an useEffect component will be executed as soon as the component died.
  • Another cool and useful thing that I learned was that when a set method, created by useState component, receive a function instead an object, this function will receive the object as parameters.
  • How animate died components with react-spring and how animate using css keyframes.
  • Create a request that has multipart/form-data content type, using FormData Javascript class.
  • Customize input file.
  • How test pages, hooks and components using testing-library/react and testing-library/react-hooks libraries:
    • Mock, spy and stub functions
    • Find on the DOM by text, placeholder and testeId.
    • Async with waitFor, waitForNextUpdate, act.
    • Use fireEvent to change value, trigger focus and blur events.
    • Test with expect, objectContaining, toHaveStyle, toHaveBeenCalledWith, toBeUndefined, toBeTruthy.
  • Create Github actions to build and deploy to the server.
  • Config Nginx and PM2 on DigitalOcean Server to delivery a ReactJS application.
  • Create SSL certification with certbot tools.
  • Config Google Cloud Server as a CDN to delivery a ReactJS application.

About

GoBarber Web Application to manage barbershop scheduling, developed copying the instructor coding during the Rocketseat's GoStack Course.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages