Thanks to visit codestin.com
Credit goes to github.com

Skip to content

princessjenn/project-03

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Fade Brigade

Project Repository: https://github.com/princessjenn/project-03

Deployed HEROKU application: https://fade-brigade.herokuapp.com/

Description

A scalable, collaborative, user-focused MERN-stack single-page barbershop application. Building this project we combined a MongoDB back end, a GraphQL API, an Express.js/ Node.js server with a React front end, while implementing user authentication with JWT to build a user-focused platform.

User Story:

AS a user of The Fade Brigade Barber Shop application,

I WANT to be able to browse available barbers, book appointments for specific services, manage my profile information, and make payments securely.

Acceptance Criteria:

AS a user with non-admin privileges,

I WANT to be able to create an account and log in to access the application's features.

WHEN I click on the "Create Account" button and fill out the necessary information, such as name, email, and password,

THEN I can log in using my credentials.

WHEN the login credentials are correct, I am redirected to the home page.

IF the login credentials are incorrect, I receive an error message indicating that the login failed.

AS a user, I want to be able to browse and select from a list of available barbers.

WHEN I click on the Barbers tab,

THEN I can view a list of barbers, their specialties and schedules.

WHEN I click on a barber's name while booking,

THEN if a barber is available, unavailable, or fully booked, their availability is clearly indicated.

WHEN I click on the Services tab,

THEN I can see a list of specialties with their descriptions, prices, and duration with each specialty is presented on a dedicated component card, showcasing detailed information and any additional features.

WHEN I click on the "Book Now" button,

THEN the app will proceed to the booking/cart page.

WHEN I select a specialty or service from the list provided, along with the desired quantity,

THEN I can add it to my cart.

WHEN I add multiple services to my cart,

THEN the total price dynamically updates as I add or remove items from my cart.

WHEN I want to be able to manage my cart and proceed to checkout,

THEN I can easily manage my cart by removing or updating the quantities of specialties.

WHEN I am managing my cart,

THEN a cart preview icon or widget shows the number of specialties in my cart, and I can click on it to view the items without leaving the current page so that I have the option to continue shopping, update my cart, or proceed to checkout.

WHEN I am at checkout,

THEN I can provide my payment details through a secure payment form or integrated payment SDK, along with clearly defined refund policies for deposit payments, providing instructions and procedures for cancellations or rescheduling.

WHEN I click “Confirm Order”, and the payment processing is handled securely on the server-side,

THEN I will be charged from my account and am given a transaction ID or receipt.

IF the payment fails,

THEN I receive appropriate error messages and instructions for retrying or using an alternative payment method.

WHEN I want to be able to manage my profile information,

THEN I can click on my user account, I can edit my profile, including my name, email, contact details, and my payment information if necessary.

WHEN I click ‘save’ on my updated changes,

THEN the changes I make to my user profile are saved and displayed correctly.

WHEN I click on the Contact Tab in the navigation bar,

THEN I can find the barbershop's contact information, such as their phone number, address, and social media profiles, I can also use a contact form to send messages or ask questions, providing my return email and message details.

As a Barber with admin privileges, I want to be able to manage appointments and specialties.

WHEN I log in to my barber account using my credentials,

THEN I can view and manage appointments, including appointment details, rescheduling, and cancellations.

WHEN I want to update my work schedule or get days off,

THEN I can set my availability hours and specific days or time slots for appointments.

WHEN I want to offer a new specialty skill or want to discontinue offering one,

THEN I have the ability to manage the list of available specialties by adding, editing, or removing specialties as needed.

Table of Contents

Installation

License License: MIT

This project is licensed under the terms of the MIT license.

Contributing

To contribute to the project:

  1. Start by forking the repository and creating a new branch specifically for your new feature or bug fix.
  2. It's important to adhere to the project's coding standards and properly format your code.
  3. When committing changes, be sure to write clear and concise messages that describe the changes made.
  4. If your contribution affects the user interface or experience, include screenshots or animated GIFs in your pull request to help reviewers understand the changes.
  5. Additionally, make sure your code is thoroughly tested and all existing tests pass before submitting the pull request.
  6. Finally, provide a detailed description of your changes and explain why they're necessary.

Thanks for contributing!

Testing

Alt text Alt text Alt text Alt text

Questions?

Visit the collaborators on our personal Github repositories:

Jennifer's github profile | Thomas' github profile | Benjamin's github profile

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages