Giter Club home page Giter Club logo

fit-geojson-vuejs's Introduction

 _____ _ _   ____   ____            _
|  ___(_) |_|___ \ / ___| ___  ___ (_)___  ___  _ __
| |_  | | __| __) | |  _ / _ \/ _ \| / __|/ _ \| '_ \
|  _| | | |_ / __/| |_| |  __/ (_) | \__ \ (_) | | | |
|_|   |_|\__|_____|\____|\___|\___// |___/\___/|_| |_|
                                 |__/

Fit2Geojson is a web tool that converts your FIT or GPX files into GeoJson format. You can use the tool online: Fit2Geojson

FIT file

FIT file is a format used to store fitness activities like biking, running, swimming. It is used by Garmin Devices and Zwift

GPX File

GPX file is a format used to store workout activities like biking, running, swimming. It is used by Strava.

GeoJson

It is a popular format into GEO context. For example is used by https://xyz.here.com/studio web tool, useful to create your custom maps.

Tutorial

I wrote a tutorial about how to: Mapping your sport activity with HERE XYZ Studio

For Developers

Requirements

Project setup

git clone https://github.com/roberto-butti/fit-geojson-vuejs.git
cd fit-geojson-vuejs
nvm use
npm install
cp .env.dist .env

Don't forget to specify your environments variables in the .env file then start the app with:

npm run serve

Environments variables:

For Contributors

Please read CONTRIBUTING.md file. It doesn't matter if you are not a very skilled developers. If you have any suggestion on UI design, on Copywriting, your feedback and suggestion as Pull Request are welcomed!!!

fit-geojson-vuejs's People

Contributors

andersonmendess avatar anubhav007 avatar dependabot[bot] avatar fabryz avatar fvianello avatar gcoro avatar lucadb avatar mountainash avatar mtrunt avatar roberto-butti avatar shradhasangtani avatar soloistco avatar tobyase avatar yasionfire avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fit-geojson-vuejs's Issues

Importing file from URL

As USER I would like to copy and paste the URL of my GPX or FIT file.
At the moment the user can upload the file.

Script to retrieve JSON contributors from GitHub

In order to cache json of contributors and avoid rate limits by the GitHub API, we could implement a script (in script directory) in Javascript language launched via node, that:

  • retrieve list of contributors from GitHub
  • Filter contributors where type == "User"
  • Map only fields needed (login, avatar_url, html_url, site_admin, contributions)
  • save this information in json file and make it available for Contributors.md auto generation and Contributors.vue module for /contributors page.
  • save it as contributors.json in pubic directory

Add Download button

When a geojson is created from FIT file, show a Download button to download the Geojson file

UI: visualize the Geojson into map

Visualize the Geojson produced by the transformation process on a map
When a goejson is ready, the user can download the geojson or convert it into CSV.
Add a CTA (switch, button , href) to switch into a Map view mode.

UI DESIGN: some proposal for a better UI

Share some thoughts about a better UI considering:

  • we need a header for logo, title and maybe a main action
  • wide body with drag and drop section for upload file
  • input text for URL with gpx and fit file (with upload call to action)
  • small footer with the link to github

The current design is:
Screenshot 2019-10-06 at 20 29 07

implement Sitemap.xml

Add a static sitemap.xml for the URLS:

  • /
  • /contributors

Some other url will be added

Implement logic to export into CSV

Implement logic to export data uploaded into CSV .
We will need a UI to allow to the user to select the export format (Geojson - default- , or CSV).

Error message is hiding the upload button

image

When no file or incorrect file is uploaded, the error message is displayed at the top. This hides the download button and user would have to scroll down to upload another file. This is not user intuitive.

Google Site Verification

Add a meta tag in index.html
The value of content needs to be loaded via env and not hardcoded in html.

UI for export format Selection

Once #34 is implemented we need a UI to allow to the user to select the export format.
The default is geojson (so it doesn't have impact on the UX).
Add a UI component (select, radio ...) to select export format

GitHub Actions - introduction

We could setup a minimal workflow in order to enable GitHub Actions.
The goal for this task is to allow in the future to implement new pipeline/workflow for lint checking, check build, launch tests, release a new version.

This issue is for a minimal setup of GitHub Actions.

Create Charts from GeoJSon (fit)

Include https://vue-chartjs.org/ to create some POC for charting.
Suggestion is to create a view (route /charts) that acts on geojson stored in the store (vuex).
So when we translate the FIT file into geojson , please start using the Store and commit the geojson into Vuex

Review some metatag HTML for a better sharing

REview some metatag HTML for a better sharing like:
in public/index.html we have now:

    <meta
      name="description"
      content="Convert your FIT and GPX file to Geojson"
    />
    <meta
      name="image"
      content="https://fit2geojson.netlify.com/fit2geojson.png"
    />
    <!-- Schema.org for Google -->
    <meta itemprop="name" content="Fit 2 Geojson" />
    <meta
      itemprop="description"
      content="Convert your FIT and GPX files to Geojson"
    />
    <meta
      itemprop="image"
      content="https://fit2geojson.netlify.com/fit2geojson.png"
    />
    <!-- Twitter -->
    <meta name="twitter:card" content="summary" />
    <meta name="twitter:title" content="Fit 2 Geojson" />
    <meta name="twitter:creator" content="@rmeetsh" />

    <meta
      name="twitter:description"
      content="Convert your FIT and GPX files to Geojson"
    />
    <meta name="twitter:site" content="@rmeetsh" />

    <meta name="twitter:image"
    content="https://fit2geojson.netlify.com/fit2geojson.png"" />
    <!-- Open Graph general (Facebook, Pinterest & Google+) -->
    <meta property="og:title" content="Fit 2 Geojson" />
    <meta
      property="og:description"
      content="Convert your FIT and GPX files to Geojsonn"
    />
    <meta
      property="og:image"
      content="https://fit2geojson.netlify.com/fit2geojson.png"
    />
    <meta property="og:url" content="https://fit2geojson.netlify.com/" />
    <meta property="og:site_name" content="Fit 2 Geojson" />
    <meta property="og:type" content="website" />

Add .env in .gitignore

Exclude .env file from git.
You need to add into .gitignore file the .env (we already ignore some .env.*)

release 0.2.0

prepare all things for release 0.2.0:

  • create branch gco -b release/100-release_0_2_0
  • update package.json
  • update contributors.md with script/contributors.js
  • removing banner as requested by #98
  • create tag git tag -a v0.2.0 -m "version 0.2.0"

Configuration File

User Story: As developer, I would like to have a file where store some environment/configuration parameters.
For example we have this need for Proxy URL parameter. Maybe the proxy URL could be the first one parameter placed in this config file.

Move the URL of proxy, in a kind of configuration file (.env or something else), just to allow to the developers to customize with a proxy that he own (it is important for privacy reason, the data is sending to 3rd party proxy service)

Create a new page for listing contributors

In order to celebrate and say thank you to Open Source Contributors I would like to create a route /contributors where list the contributors.
API to retrieve Contributors: https://api.github.com/repos/roberto-butti/fit-geojson-vuejs/contributors
The format of the response: https://developer.github.com/v3/repos/#response-if-repository-contains-content

To generate the list of contributors:

  • filter only items type == "User"
  • display login, avatar_url, html_url, contributions and site_admin

Documentation: update readme for install

In Readme , after cloning the repository we need to add 1 step to allow the developer to have the right configuration locally ( .env file). To do that we need to add a step to copy .env.dist into .env

cp .env.dist .env

Display Charts also for GPX file

Once you have uploaded a FIT file and it is converted into Geojson, you can see the Charts.
In the STATE is stored the Geeojson and this is used for displaying the chart.
This is done only for FIT files. But the Geojson is done also for GPX file. So try to create the Chart also when you start from GPX.

UI for Error/info messages

The User needs to see some feedback when he uploads a not valid file.
Better UI for error messages (url not valid or file upload is not the correct format)

Integration: Send Geojson to XYZ HUB API

WE would like to start to implement some "connector" functionalities to 3rd party services.
Now the user can download locally in his computer the geojson in 2 format (geojson and csv).
WE would like to allow the user to select the 3rdparty service and connect directly fit2geojson to 3rdparty connecter. Keep in mind:

  • We are in the frontend JS so the API we would like to integrate needs to allow traffic for CORS
  • each 3rd party service has its own logic and its own app_id or secret or code.

For XYZ HUB API:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.