Code Monkey home page Code Monkey logo

cadtra's Introduction

Cadtra

Cadtra is a (poorly named) running companion for Android devices. It is written in Java (client) and Go (server).

The API is documented here. Requests can also be sent (e.g., with curl) directly to srv.marcusposey.com:8000/api/v1

Feature Roadmap

The table below contains notable items that have been designed and are either complete or in progress. Refer to documentation in server/api-docs for expected behavior of pending features.

Feature Server Client
User Accounts ✔️ ✔️
Google Sign-In ✔️ ✔️
Run Metrics1 ✔️ ✔️
Route Tracking ✔️ ✔️
Session Storage ✔️ limited2
Friends
Clubs
  1. Distance traveled, total duration, average pace
  2. The app's session retrieval is limited to the distance, time, and pace. E.g., the route is stored and uploaded, but it cannot be visually retrieved later on.

cadtra's People

Contributors

mlposey avatar

Watchers

James Cloos avatar  avatar

cadtra's Issues

Google id tokens make automated testing hard

Most of the API resources require a Google Id Token that Google must authenticate. This makes automated testing hard because the CI server would need to generate one for each build. Token generation can be done through the OAuth Playground, but the generated tokens do not contain this application's client id; the API needs this application's client id.

Task List:

  • Create a test flag that will disable client id checks in the API code.
  • Store (on the CI server) the refresh token1 of a test Google account.
  • Create a test harness to POST to the playground and retrieve an Id Token.

Notes:

  1. Refresh tokens never expire, so that token can be reused to generate the Id tokens.

Imports use old directory structure

The server code relies on the hierarchy that existed before the server/client codebase merge. Ex:

"cadtra-server/src/controller"

This is fine for the Docker setup, which creates a folder matching the import path. However, it will cause problems should someone attempt to build the server outside of a container.

Task: Make import paths in server/ use the cadtra/server/src/<package name> format and update the Dockerfile to reflect that change.

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.