Inspiration

In a hair salon, it is crucial to have a unified system where a manager of a hair salon can easily add, remove and manage bookings. Allows individual hair stylists to view their schedule at any time throughout the day. Our inspiration is to create an app that can be used by many people. For example, the application is able to incorporate country codes from all around the world and the ability to select any schedule time and date. The app is also cross-platform, being able to run on Windows and Linux Machines. We also had an interest in learning c++ and we discovered the QT framework. The advantages of a QT application is in speed, offline capabilities and native cross-platform support. An electron app or HTML5 website would also be cross-platform but sacrifices performance and offline capabilities. Thus, we introduce System of Style.

What it does

  1. Add/Remove Employees
  2. Add/View Employee Shift Schedules
  3. Ability for customers to sign-in/sign-up using their email.
  4. Ability for manager to see client's booking and information
  5. Ability for manager to cancel a client's booking
  6. Ability to view all the bookings of a chosen date.
  7. Settings to configure API Code and SQL Login Information

How we built it

Languages:

C++ 17

  • Main programming language, used to develop logic, access APIs and modify GUI widgets

Frameworks:

QT 6.5

  • GUI Framework we used to create our desktop application MariaDB (SQL)
  • Used to retrieve, create, and update appointments and employee schedules

APIS:

Square Developer API

  • Used to store customer and team member data.
  • Accessed using various HTTP requests to update and retrieve the data all contained in a separate class.

Challenges we ran into

1. To organize a system to record appointment information.

  • we used SQL to organize the appointment information, and c++ to to convert raw data into elements that the manager can directly communicate with in order to manage their bookings.

2. To utilize drop downs (QCombobox) using the QT Framework

  • One problem in particular is that we wanted the text in the drop down to change when selected.
  • The solution we came up with was to make the QComboBox editable so that we can change the text using the data stored within each drop down entry.

Accomplishments that we're proud of

1. Embed Parallel Programming

  • Since the view bookings table made many API requests, we thought about embedding parallel programming to speed up tasks.
  • Each API request had to wait before it could continue the program.
  • Instead, of waiting for one API request to complete the other, we used parallel programming to make the multiple API requests all at the same time.

2. Embed Exception Handling

  • If the login information was incorrect, the QT framework would throw an error.
  • Using try/catch statement, we detected the error in order to warn the user of invalid database credentials.

3. Created a fluid system for a Hair Salon Manager

  • the hair salon manager is easily able to manage their bookings in an easy-to-use and intuitive way.
  • For example, when the manager creates an account for a client, the manager is able to instantly create a booking for the client. Then, the manager is able to confirm the details of the booking to the customer. This sequence of events is the direct path the manager will take while in contact with a client about their new booking.

What we learned

  1. Read/Write data in JSON format in the C++ QT Framework
  2. Learned how to write code in C++, having very little knowledge about it before.
  3. Learned how to utiltze the QT Framework to develop cross-platform native desktop applications
  4. Interact with APIs like Square Developer API using HTTP requests
  5. Utilize Database Management Systems to organize booking data

What's next for System of Style

In the future we would like to make an application for a given client that can create bookings without contacting the hair salon. We also want to include payment transactions using the square API so the client can pay in advance/use their mobile phone to make payments.

As for the System of Style Application we developed, our goal is to make it more universal and accessible. We want to add time zones and the ability to choose time format (e.g. 12-hour, 24-hour, etc). For accessibility, we would like the ability to read out loud the schedule for the chosen date.

Built With

Share this project:

Updates