Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Lab-06 ARSW

This programm allow the user to deploy a server that allows for a client side multi-user drawing program 2024/06/30

IN ORDER FOR THIS PROGRAM TO WORK PROPERLY, PLEASE USE THE FOLLOWING CLIENT:

LAB 06 CLIENT --> for further build information and to deploy client

Architecture

Architecture

As seen by the following diagram the user connects via browser to use the program, then he must connect via http using the 3000 port, this is because the React based client is working in that service, the client, of course, is provided by a cloud machine deployed in Amazon EC2, each connection starts sending data to our second EC2 server deployed to withstand Spring and to connect via http using the port 8080 (tomcat), this server will work as our Sync service for each client, this is because this service manages all dots drawn by each client, the server delivers an array as Json to all the clients so they get proccessed and interpreted.

Once all has been done the clients draws all the dots (or erases everything given the user input), if the client decides to delete everything then in the server all data will be erased, there are some commands that cannot be used by the client and those are status and points, this exists just for debbuging reasons and verifying how everything works, however if seeing that is what the user desires the only thing that is needed to do is to try and connect via browser to the data server, each path that is described in the connection between Lab06Application and Lab06Controller is being delivered once, not all petitions at once.

And so this is the why of this architecture.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

First you need the following java version (command to see your current java version below)

java -version

image

to see the maven version we are using we need to enter the following command, also this is the version of Maven this programm uses

mvn -version

image

Installing

First clone this proyect into your own system, then

mvn clean package

Acceptance test

Acceptance.test.mp4

in case the video does not load, simply press F5 to refresh the github tab so that the video downloads as intended

In the video we can see the EC2 instance hosting the server with various instances of the client running locally, as seen in the video the drawing updates and allows for multiple people drawing at the same time.

Second.test.mp4

in this video we test that the delete button works properly

Second.test.mp4

here we can see the client and the server both deployed in EC2.

Generating javadoc

Simply enter the following commands

mvn javadoc:javadoc
mvn javadoc:jar
mvn javadoc:aggregate
mvn javadoc:aggregate-jar
mvn javadoc:test-javadoc 

Deployment

IN ORDER FOR THIS PROGRAM TO WORK, YOU'LL NEED TO EXECUTE THE PROGRAM ON THE FOLDER YOU WANT TO WORK WITH, WITH THE FILES YOU WANT TO WORK WITH

if you want to use the programm after using the package command we use

mvn spring-boot:run

after the server has initialized, you'll have to use the client to properly see the server working, but even then you can enter to the following URLS to ensure that your server is working properly.

http://localhost:8080/points --> allows ato see all the stored points

http://localhost:8080/getpoints --> returns all points in a Json format

http://localhost:8080/status --> to know if the server is running

http://localhost:8080/setpoints?xval=145&yval=6516 --> minor example of how data is being sent to the server, being xval the X position of the point and yval the Y position of the point.

Built With

  • Maven - Dependency Management
  • Java - Programming Language
  • Spring - Framework

Client side

  • HTML 5 - HiperText Markup Lenguaje
  • JavaScript - lightweight interpreted programming language
  • p5.js - free and open-source JavaScript library
  • React - ibrary for web and native user interfaces

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Santiago Parra - Initial work - Parralol

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages