Hair Shop is an application for hairdressing salon, where hairdressers can register on the web application and can insert their employees and their schedules. Customers can register on the mobile application, being able to find employees who work on site and schedule the day and time to cut their hair.
The Back-End was developed with Node.js and TypeScript. For standardization and organization of the code, ESLint, Prettier and EditorConfig were used. The connection to the PostgreSQL database was made with DBeaver and Docker to create containers with TypeORM. For authentication and user access control was used JWT (Json Web Token). To upload images was used Multer. Architecture remade with DDD concept. It was used Jest to perform unit tests in the application. The network was added to the project for caching calls from some API's. Use of nodemailer for email sending tests. Connection to AWS services being SES for sending emails in production and S3 for uploading images. The notification service was also created, being able to notify a provider when an appointment is made.
The Front-End was developed with React.js and TypeScript. For standardization and organization of the code was used ESLint, Prettier and EditorConfig. The styling was done with Styled-Components. The navigation screens were made with React Router DOM. The validation of login and registration was done with Yup. To connect with the Back-End was used Axios (REST Api).
The Mobile was developed with React Native and TypeScript. For standardization and organization of the code was used ESLint, Prettier and EditorConfig. The styling was done with Styled-Components. The navigation screens were made with React Router DOM. The validation of login and registration was done with Yup. To connect with the Back-End was used Axios (REST Api).
Clone the project: git clone https://github.com/leopacciulli/HairShop.git
🤖 To run the Back-End, you must first create a container in Docker and a PostgreSQL database in DBeaver.
Then open the terminal and run the following commands:
# to enter the Back-End folder
$ cd backend
# to download the dependencies
$ yarn
# to start the application on port 3333
$ yarn dev:server
Run tests on the back-end
# to run tests
$ yarn test
🖥 To run the Front-End, in another terminal tab, execute the following commands:
# to enter the Front-End folder
$ cd frontend
# to download the dependencies
$ yarn
# to start the application on port 3000
$ yarn start
Now access http://localhost:3000/
📱 To run Mobile, you need an Android or iOS simulator (Mac only) running on your computer or connect your physical smartphone to USB. To learn how to install / configure, follow the RocketSeat tutorial.
Now, on another tab of the terminal, run the following commands:
# to enter the Mobile folder
$ cd mobile
# to download the dependencies
$ yarn
# for Android:
# first open the Android emulator
# to start the app on the simulator or on the Android physical smartphone connected to the USB device
$ yarn android
# for iOS:
# to launch the app on the simulator or on the physical iOS smartphone connected to the USB device (only using Mac)
$ yarn ios