Giter Site home page Giter Site logo

lucasfdsilva / my-hair-done Goto Github PK

View Code? Open in Web Editor NEW
11.0 3.0 6.0 15.14 MB

Project Developed as part of my final year in my BSc in Computing Degree at National College of Ireland. This is a cloud-native application supported by several AWS products. In this app I used Node.js with a few 3rd party libraries (express, bcryptjs, axios...) on the backend. The frontend was built in react-js and it consumes the backend via HTTP requests to the API.

Home Page: https://myhairdone.co.uk

Shell 0.40% JavaScript 90.52% HTML 1.00% CSS 8.09%
beauty hair salon barber bookingsystem

my-hair-done's Introduction

Logo

My Hair Done - Style or Get Styled

My Hair Done is a Web application that aims to streamline the process of getting a haircut for both independent professionals and customers.

For Professionals, the application is a platform to manage their bookings and availability and to publish their portfolio and style characteristics so that customers looking for a professional specialised in a given style or location can find a match easily.

For customers, the app helps them on 3 different fronts: 1st The AI Hairstyle builder helps users to try different haircut styles & 2nd, the app helps them find professionals that match their hairstyle choice and finally, schedule appointments with any professional in the platform through the app.

My Hair Done was built as a Cloud Native application with backend & Frontend decoupled to allow for a mobile app expansion in the future. The backend was built in NodeJS using the REST architecture while the Frontend was built using ReactJS and it communicates with the backend as an API using HTTP Calls.

To streamline the development process and publishing of iterative updates, a full CI/CD pipeline was implemented using GitHub and AWS Development Services (CodeDeploy/CodePipeline). The application infrastructure is also hosted in AWS using managed services where possible to streamline the application development and reduce operations cost. Both Backend and Frontend are hosted in an auto-scaling group of EC2 instances with load-balancers. The backend connects to a MySQL database hosted in AWS RDS. The application also leverages AWS SES for mailing tasks and AWS SQS where queueing between services is necessary. Other AWS services such as Route53 (DNS), Certificate manager (HTTPS) are also being used.

Technologies Used:

  • NodeJS - Used to build the application's backend which was built as a REST API to serve multiple front ends.
  • ReactJS - Used to build the web application.
  • Swagger - Used to document the backend API endpoints and models.
  • AWS EC2 - Hosting Backend Auto-Scalation Instances Group.
  • AWS CloudFront - Serving the static frontend files.
  • AWS S3 - Hosting all application supporting files.
  • AWS Lambda - Running the serverless microservices (email verification, booking confirmation, etc).
  • AWS RDS - Hosting the main MySQL database.
  • AWS SES (Simple Email Service) - Mailing service used by the application.
  • AWS SQS (Simple Queue Service) - Queueing system to organize requests made to backend/microservices.
  • AWS Route53 - DNS Service.
  • AWS Certificate Manager - Providing Https certificates to the application.
  • AWS Secrets Manager - Storing secrets to all components needed and only serving these secrets to the backend at runtime.
  • AWS CodeBuild / CodeDeploy / CodePipeline - Implementing a fully automated CI/CD pipeling to streamline the development process.

Web App Available at:

https://myhairdone.co.uk

Backend API Available at:

https://api.myhairdone.co.uk

Running this application locally

Run Backend Locally:

cd backend
npm install
npm run start
Application will listen to Port 3000 if no System Env is configured.

Run Web App Locally:

cd web
npm install
npm run start
Application will listen to Port 3000 if no System Env is configured.

my-hair-done's People

Contributors

lucasfdsilva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.