Coder Social home page Coder Social logo

cholnhial / hobbymate Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 29.32 MB

UQ Cloud Computing Course Final Project: A web application that allows users to find projects to collaborate on and also sell their artifacts

Java 44.40% Dockerfile 1.17% JavaScript 1.50% TypeScript 31.94% HTML 20.23% SCSS 0.76%
cloud-computing microservices spring-boot docker spring docker-compose docker-swarm

hobbymate's Introduction

HobbyMate

HobbyMate is a web application that lets you find projects to work on and also lets you advertise your projects to others. Once you complete your project you can list your artefact in the shop. The audience are hobbyist and anyone interested in collaborating with others on projects.

Technologies

  • Spring Boot
  • Angular
  • Netflix Eureka (Service Discovery)
  • Netflix Ribbon (Clientside LoadBalancing) - Eureka runs at http://localhost:8761/

Firewall

  • Port 9797 (Web Application)
  • Port 8095 (API Server - Gateway)

Make sure you allow these ports through your GCP firewall settings.

Load Balancing

When deployed to docker swarm project-service is run as two replicas. The instances will register with discovery-service (Eureka). The microservices can easilly scale.

Important NOTE

Please allow time for all the microservices to start as they may fail due to databases not being ready. They'll reconnect on reboot.

Database Issues!

cleans all the volumes for mysql

docker-compose rm -v -f
docker volume prune -f

Where is the app?

After running with docker compose or deploying to swarm the app will be available at http://localhost:9797 or http://<your gcp external ip>:9797/

Building & Running

The jar files have been included so that they can be put into docker images.

1. Easy option

This option will use the jarfiles in the project to build the images.

Run with compose

docker-compose up --build --force-recreate

When fully ready go to: http://<your gcp external ip>:9797/

Deploy to swarm

docker-compose build  --force-rm
docker swarm init
docker stack deploy --compose-file=docker-compose.yml hobbymate

When fully ready go to: http://<your gcp external ip>:9797/

2. Recompiling Java and building images

This option requires that you have Java 17.0.4 installed to build the project. This is in case there's an issue running the jars I've provided.

Build

./mvnw clean package -DskipTests=true

Then deploy to swarm or;

Give the services sometime to start they will take a while as some will be attempting to connect to the DB while it's still being launched.

docker-compose build  --force-rm
docker swarm init
docker stack deploy --compose-file=docker-compose.yml hobbymate

Run with docker-compose

Give the services sometime to start they will take a while as some will be attempting to connect to the DB while it's still being launched.

docker-compose up --build --force-recreate

hobbymate's People

Contributors

cholnhial avatar

Watchers

 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.