afarentino / getfit-spring-native

GetFit converts a text file containing cardiovascular fitness tracking data into a CSV file suitable for import into a database.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GetFit-Spring-Native

GetFit-Spring-Native is a sample PoC (Proof of Concept) Spring Native console-based application designed to parse exercise entries found in a text file and convert them into a CSV file for analysis.

When taking a new technology for a test drive, a sample application is a developer's best friend.

This small application and the programming challenge it solves, presents a way to do just that.

Technologies Used

  • Spring Native
  • Spring Boot
  • Gradle 7.x
  • JUnit 5
  • Java OpenJDK 17
  • GraalVM CE with Native Image Support

Application Background

As part of their terms of service, many of today's wearable and smartphone based fitness trackers require users to upload metrics to third-party cloud services for analysis.

However, some users have privacy concerns with publicly sharing this data. Reference: USA today article

The GetFit Sample Spring Native application reads as input a local text file containing user log entries exercise details data and converts it into a CSV file.

Sample Input Text File Format

Each exercise log entry is separated by a blank line. Record entries are all optional and can appear in any order. The application is capable of normalizing this data and will report errors to the user during parsing in the event it reads record entries that cannot be parsed.

Usage

getfit --inFile fileName

CSV Output

The output CSV file will be generated to the same directory that the input file exists.

It conforms to the CSV Format standardization rules found in RFC-4180

Building

Download the source code of this project and follow the documentation over in the HELP.md file.

License

About

GetFit converts a text file containing cardiovascular fitness tracking data into a CSV file suitable for import into a database.

License:MIT License


Languages

Language:Java 100.0%