Giter Site home page Giter Site logo

cambalab / traky Goto Github PK

View Code? Open in Web Editor NEW
19.0 13.0 3.0 9.07 MB

A time tracking mobile app to use with your Tryton account.

License: GNU General Public License v3.0

HTML 0.60% JavaScript 4.80% TypeScript 84.70% CSS 9.90%
ionic-framework typescript react tryton chronos

traky's Introduction

Traky logo

Traky is a time traking mobile app to use with your Tryton account.

Introduction

As we use Tryton for our organization management, we found useful to have a mobile app connected to our account that helps us to track the time that involve the tasks we do on a daily basis.

Currently, there is an app that is aiming this purpose, Chronos, but as it only works as a browser plugin, we decided to develop a mobile alternative.

So that, we integrated Traky to a module application which Tryton provides to manage the time-sheet lines of each user.

About

It is being developed using the Ionic 4 framework in combination with Reactjs.

Although we focuced our work in develop a mobile version, you can also use it in its web version.

Features:

  • Connect with your tryton account using your user API key.
  • Add, modify, delete your Tryton time sheet lines.
  • Select the work/project on which you are working.
  • List and filter all your time sheet lines by day.

Start using Traky

Traky works by connecting it to a Tryton server instance, so, in first place, you need to have one configured for your organization and the timesheet module has to be activated. Mobile and web versions ask for some information about your Tryton server to setup:

  • Server Address
  • Username
  • Database Name

Once you have the app running, enter those settings to generate a new API key. Then, you should follow the instructions to validate it into the Tryton account preferences.

Running application

Mobile version

You can download the last android apk from here. Just install it and start to use it.

Browser version

You will need to setup a Traky web instance in a server and each user would connect to it from browser.

How to install it

This installation is focused on Linux based Operative Systems as we will be using the command line to facilitate this process.

Requirements:

  • Node.js v9
  • NPM v6>=

Node.js can be installed downloading it from their main website depending on the Operative System being used. After installing it, set the node version to 9 using nvm or npx.

Currently, the Tryton API works by require an authorization header, but it can not respond the OPTIONS method, which is necessary to send one. We were able to fix that using a Proxy server to skip these validation.

To configure this proxy, you have to create an .env file based on the example, to add the variable that save the proxy url.

If your Tryton instance also need one or you are not sure about it, you can use our proxy:

https://cors-anywhere.herokuapp.com/

In that case, the .env file should look like:

REACT_APP_PROXY_URL=https://cors-anywhere.herokuapp.com/
API_PORT=3000
PORT=2000
DEVELOPMENT=true

Steps:

  1. Set the node version with the following command:
  • nvm install 9 && nvm use v9
  1. Clone Traky repository
  • git clone https://github.com/Cambalab/traky.git && cd traky/
  1. Install the project's dependencies:
  • npm install
  1. Create and add an .env file based on the example to save the proxy variable.

  2. Finally, we can start the application running:

  • npm run start

App Preview

preview traky

App compatibility

Traky supports the following platforms and versions:

Platform Version
Android 5.0+
Chrome 5.0+
Firefox 64>=
Safari 12>=

Contributing

See CONTRIBUTING.md 🎉

License

GNU General Public License version 3

👩‍💻 with 💚 💜 ❤️ by cambá.coop 🌎 Buenos Aires, Argentina

traky's People

Contributors

florblue avatar juanmardefago avatar laimejesus avatar leonardovaquel avatar

Stargazers

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

Watchers

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

Forkers

saas786 lblabr clews

traky's Issues

Move dependencies which are not needed in the production build

We have many npm dependencies which are not needed to be integrated in the production build.
For instance:

  • capacitor/android
  • types/jest
  • cordova-res
  • express
  • json-server
  • path

We needed many of these dependencies in that section because we were deploying our application using a mock server.
We should move the unneeded dependencies to the Dev Dependencies section.

Advance to next input after pressing `enter`

We should allow to users to advance to the next input when they press the enter key from the keyboard. Also, when they press it in the final input it should activate the confirm button. It might depend on the form.
We should add this functionality to every form component that we are using:

  • LoginSettingsForm
  • LogHourForm

References:

Redesign our Application Logo

There are a lot of people who have suggested us to change our current logo:

Traky logo

We would like to redesign it in the following way:

  • move the hour hand to point sixteen hours o'clock.
  • move the minute hand to point twenty past sixteen hours.

It should be provided the svg file with those changes applied, so it can be used in the application.

Agregar una logica de unidad de tiempo seteable

Un poco motivado por haber usado Pomodoros , y entendiendo que puede ser que distintas personas usen distintas unidades de tiempo. La propuesta es que se pueda setear una unidad de tiempo el usuario, y que la carga sea de esa unidad de tiempo.

Upgrade Ionic Version from 4 to 5

Ionic 5 has been released.

It would be great to update the packages using an older version to the newer version. Also, we should take care of breaking changes. At the moment, the only problem that we have is using html attributes instead of css classes.
In resume, we should do the following:

  • update the ionic packages to the latest usable version.
  • change the html attributes used for styling to its css class type.

Implement Travis Continuous Integration

It would be nice to set a Continuous Integration tool so we can be sure that new changes does not break anything when they are merged.
A new .travis.yml file should be added in the root folder. At the moment, we just want to be sure that the app build works, so It is only needed to add the configuration to build our app for the web environment.
After that, we should add a new badge into the README.md which will allow us to see the current status of our CI.

References:

A Proxy server should not be necessary to use the Tryton API

Currently, the Tryton API can not respond the OPTIONS method, which is necessary to send the Authorization header.
We were able to fix that using a Proxy server to skip these validations.
We need to investigate if we can solve this problem natively in our code or if it depends to the tryton server being used.

Problema para generar key

Cuando quiero usar la aplicación me dice que está mal configurado. Probe con distintas url y no consigo me genere la key, las URL que probe son:
http://ip:8000/
http://ip
ip
ip:8000
La base de datos y el nombre de usuario están bien, en chronos con esta la url = http://ip:8000/ me funciona bien.
Saludos coordiales.

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.