Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mrlightful/sustainme

SustainMe is a student project for TU Delft's course CSE1105; enduring green and healthy lifestyle.
https://github.com/mrlightful/sustainme

computer-science firebase javafx maven spring-boot student-project tudelft university-project

Last synced: about 2 hours ago
JSON representation

SustainMe is a student project for TU Delft's course CSE1105; enduring green and healthy lifestyle.

Awesome Lists containing this project

README

        

# CSE1105: SustainMe

![Size](https://img.shields.io/github/repo-size/romatallinn/sustainme.svg)
![Version](https://img.shields.io/github/release/romatallinn/sustainme.svg)
![License MIT](https://img.shields.io/github/license/romatallinn/sustainme.svg)

**SustainMe** is a student project for [TU Delft's](tudelft.nl) 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.

## Table of Contents

- [Getting Started](#getting-started)
- [Installation](#installation)
- [Run](#run)

- [Reports](#reports)
- [Jacoco's Test Coverage](#jacocos-test-coverage)
- [Checkstyle](#checkstyle)
- [Pipeline](#pipeline)

- [Built With](#built-with)

- [Authors](#authors)

- [License](#license)

## Getting Started

### Installation

##### SSH

```
// Clone this repository with SSH
$ git clone [email protected]:romatallinn/sustainme.git
```

##### HTTPS

```
// Clone this repository with HTTPS
$ git clone https://github.com/romatallinn/sustainme.git
```

### Run

##### Server
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.

##### Client
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.

## Reports

#### Jacoco's Test Coverage:
Run:
1) `mvn clean` - Optional. Cleans the old data.
2) `mvn test` - generates the raw test coverage data.
3) `mvn jacoco:report` - generates the readable report from the obtained data.

The test coverage reports generated by Jacoco exclude the view package.

#### Checkstyle:
Run `mvn checkstyle:check`

- Checkstyle configurartion checks the code according to [the Google coding conventions](https://google-styleguide.googlecode.com/svn-history/r130/trunk/javaguide.html).

- The configuration itself can be found in [CSE1105.checkstyle.xml](CSE1105.checkstyle.xml).

#### Pipeline:

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.

## Built With
- [Maven](https://maven.apache.org/) - Dependency Management
- [Spring Boot](https://spring.io/projects/spring-boot) - Server-side
- [JavaFX](https://openjfx.io) - Graphical User Interface
- [JUnit](https://junit.org/junit5/), [Mockito](https://site.mockito.org) & [PowerMock](https://github.com/powermock/powermock/wiki) - Unit Tests
- [Google's Firebase](http://firebase.google.com) - Cloud Services

## Authors
- [Roman Sirokov](https://github.com/romatallinn)
- [Nadyne Aretz](https://github.com/n-aretz)
- [Roderick de Britto Heemskerk](https://github.com/Zero-Smaus)
- [Matthijs Arnoldus]()
- [Jesse Nieland]()

## License

This project is licensed under the MIT License (2019) - see the [LICENSE.md](LICENSE.md) file for details