https://github.com/federicobruzzone/greenfield
Greenfield is a pervasive distributed system that manages Cleaning Robots deployed throughout the city. These robots act as peers, working together to autonomously navigate and clean various areas. Advanced technologies are utilized to enhance efficiency and maintain cleanliness.
https://github.com/federicobruzzone/greenfield
distributed-computing distributed-systems greenfield java pervasive-systems
Last synced: 8 months ago
JSON representation
Greenfield is a pervasive distributed system that manages Cleaning Robots deployed throughout the city. These robots act as peers, working together to autonomously navigate and clean various areas. Advanced technologies are utilized to enhance efficiency and maintain cleanliness.
- Host: GitHub
- URL: https://github.com/federicobruzzone/greenfield
- Owner: FedericoBruzzone
- License: gpl-3.0
- Created: 2023-04-28T11:23:34.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-10T21:18:06.000Z (over 2 years ago)
- Last Synced: 2025-01-03T21:42:41.702Z (10 months ago)
- Topics: distributed-computing, distributed-systems, greenfield, java, pervasive-systems
- Language: Java
- Homepage:
- Size: 1.36 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Greenfield
Greenfield is a pervasive distributed system that manages Cleaning Robots deployed throughout the city. These robots act as peers, working together to autonomously navigate and clean various areas. Advanced technologies are utilized to enhance efficiency and maintain cleanliness.
## Technologies
- gRPC
- Protocol Buffer
- gson
- Jersey 1.19
- AspectJ
## Requirements
- Java 1.8
- Gradle >= 7.4.2
## Run, Compile and Build
> You can use `gradle` or `./gradlew`
### Run
Running gradle tasks will automatically compile the necessary files.
**Mosquitto**
- Start mosquitto broker
`sudo service mosquitto start` or `sudo systemctl start mosquitto`
- Stop mosquitto broker
`sudo service mosquitto stop` or `sudo systemctl stop mosquitto`
- Status mosquitto broker
`sudo service mosquitto status` or `sudo systemctl status mosquitto`
**Cleaning Robot**
- Start one cleaning robot:
`gradle runCleaningRobotClient --console=plain` or `./gradlew runCleaningRobotClient --console=plain``
**Administrator Server**
- Start administrator server:
`gradle runAdministratorServer --console=plain` or `./gradlew runAdministratorServer --console=plain`
**Administrator Client**
- Start administrator client:
`gradle runAdministratorClient --console=plain` or `./gradlew runAdministratorClient --console=plain`
### Compile
First of all run `gradle` or `./gradlew` to check that everything is OK.
**Compile [java with aspectj]:**
*Note that `.aj` files must be on `src/main/aspectj` folder.*
- `gradle :compileJava` or `./gradlew :compileJava`
> If you want to put `.aj` file on the same directory of `.java` files,
you should replace on `build.gradle` file `compileJava.ajc.options.compilerArgs = ["-sourceroots", "../../../src/main/aspectj"]`
with `compileJava.ajc.options.compilerArgs=["-sourceroots", sourceSets.main.java.sourceDirectories.getAsPath()]`
### Build
- `gradle build` or `./gradlew build`