DragonFly is a reknown babrbershop in Nairobi, Kenya with various branches in the city's suburban areas. The goal of the web application is to primarily enable a seamless booking experience for its customers. By managing the customer flow, the operations manager will be able to allocate the workload to the beauty experts efficiently and reduce waiting time for the customers in the shop.
- Homepage with a video courtesy of Savara
- Booking page with several services offered
- Checkout bar for user details
- Vite
- React Js
- JSX
- CSS
- Axios
- Swiper
- React bootstrap
- Bootstrap
- React player
- React router dom
- React router hash link
- MUI DatePickers
- EmailJs
- React hot toast
- React spinners
-
Clone the repository
$ git clone [email protected]:waynemorphic/dragonfly-barbershop.git
-
Switch to the repository directory
$ cd dragonfly-barbershop
-
Install dependencies
$ npm install
Alternatively install one by one:
$ yarn add axios
$ npm install swiper
$ npm install react-bootstrap bootstrap
$ yarn add [email protected]
$ yarn add react-calendar
$ npm install react-player
$ npm install react-router-dom
$ npm install --save react-router-hash-link
$ npm install @mui/x-date-pickers
$ npm install dayjs
$ npm install @mui/material @emotion/react @emotion/styled
$ npm install @mui/material @mui/styled-engine-sc styled-components
$ npm i emailjs
$ npm install react-hot-toast
$ npm install --save react-spinners
-
Run the application
$ npm run dev
-
Expose to network and external devices
$ npm run dev -- --host
Inspired by dribbble.com
We have curated ToDo's 🗒️ that might interest you. Check them out and create an issue, with the issue title being the particular list item in the ToDo list. That means you will have self assigned the issue.
Remember to push to dev
branch.
Happy hacking 💻
- Make the footer text to be always at the bottom of the page.
- Cleanup CSS to avoid mixing with Bootstrap, Remove where font-family and colors are reused
- Fix the overflow shadow in when the dropdown service in the Services menu has been selected
- Ensure the application is mobile friendly / responsiveness
- Fix the padding of lines class in the homepage
- Fix Calendar object: Inability to select dates
- Fix bug in the Hover of the dropdown of Navigation Links
- Validate user data ie email and phone number. React Form Hook may be used in place of the current form
- Customer to unselect the selected input radio after user has selected in booking page.
- Add more details in the landing page. Could be cards that are descriptive of services offered. When an item in the services navbar is clicked, the screen automaticlly scrolls down to the specific service description in the home page.
- Better footer section
- Resolve date booking bug in customer email notification
- Send Selected Form data and user data to the server on the onSubmit event
- Add mongoDB and mongoose to store customer data
- End to end tests of the application or alternatively unit tests per component if necessary. For end to end, Playwright framework will work while for unit tests, React Testing Library or jest.js should be reliable
- Customer email notifications after a booking
- Resolve images bug in gallery page in prod
Solution: Use cloudinary
- Admin dashboard
- Admin to view new bookings
- Admin to check web traffic
Solution: Google analytics or something else if google analytics is unavailable
- Admin to adjust menu prices
- Admin to add employees and assign tasks per booking made