SustainMe is a student project for TU Delft's course CSE1105. It was developed by 5 students in 8 weeks. The application is intended to promote green and healthy lifestyle. It provides the functionality of tracking people's progress of reducing CO2 production in their everyday lives, in such categories as food, transportation, energy and waste recycling.
// Clone this repository with SSH
$ git clone git@github.com:romatallinn/sustainme.git
// Clone this repository with HTTPS
$ git clone https://github.com/romatallinn/sustainme.git
First you need to run the server-side application. In order to do this, you need to run the application file Application.java
located at src/main/java/server
. This is the entrance point for the server application.
Then you can run the client itself. In order to do this, you need to run the application file ApplicationEntry.java
located at src/main/java/supporting
. This is the entrance point for the client application.
Run:
mvn clean
- Optional. Cleans the old data.mvn test
- generates the raw test coverage data.mvn jacoco:report
- generates the readable report from the obtained data.
The test coverage reports generated by Jacoco exclude the view package.
Run mvn checkstyle:check
-
Checkstyle configurartion checks the code according to the Google coding conventions.
-
The configuration itself can be found in CSE1105.checkstyle.xml.
There is a Gitlabs CI pipeline that contains 3 stages:
- compile:
mvn compiler:compile
- Checks if the code is compilable and runnable.
- test:
mvn test -Dcheckstyle.skip
- Runs all internal tests.
- Needs an explicit checkstyle skip, since there is another stage for it.
- checkstyle:
mvn checkstyle:check
- Runs the checkstyle configuration.
The pipeline status of the master branch is reflected in a badge, informing if it has passed or failed. There is also another badge that parses the data from test stage of the master to display the test coverage percentage right away.
- Maven - Dependency Management
- Spring Boot - Server-side
- JavaFX - Graphical User Interface
- JUnit, Mockito & PowerMock - Unit Tests
- Google's Firebase - Cloud Services
This project is licensed under the MIT License (2019) - see the LICENSE.md file for details