Coder Social home page Coder Social logo

timesheets's Introduction

Timesheets App

Github All Releases Stories in Ready Badges

Install

Download the latest release from here.


Development

Install

First, clone the repo via git:

git clone https://github.com/hardchor/timesheets.git

And then install dependencies.

$ cd timesheets && yarn

Run

Run these two commands simultaneously in different console tabs:

yarn hot-server
yarn start-hot

or run both with one command:

yarn dev

Note: requires a node version >= 8 and yarn

Package and Release

To package the app for local testing, run:

yarn dist

Release

After you've bumped the version number in app/package.json, run:

GH_TOKEN=... CSC_NAME=... yarn release

Then, head over to https://github.com/hardchor/timesheets/releases and publish.


Contributors

Special thanks go to:

Originally based on the fantastic chentsulin/electron-react-boilerplate MIT © C. T. Lin

Electron application boilerplate based on React, Redux, React Router, Webpack, React Transform HMR for rapid application development

timesheets's People

Contributors

akovalyov avatar catalinmiron avatar chentsulin avatar crucialfelix avatar davej avatar domasx2 avatar epilande avatar g1ibby avatar greenkeeperio-bot avatar guacjack avatar hardchor avatar jhen0409 avatar kilian avatar lmatteis avatar longlivechief avatar matbush avatar olegakbarov avatar pascalw avatar ryanatvicesoftware avatar shea256 avatar slightlytyler avatar tsemerad avatar ttacon avatar vramana avatar waffle-iron avatar yeti-or avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

timesheets's Issues

Ask user what they are working on

Settings:

  • is active
  • from time
  • to time
  • weekdays

Tasks:

  • "Cronjob" that checks every 15mins?
  • Pop up menubar
  • add option to snooze
  • add option to turn reminder on/off

window is not defined

display error window is not defined on line no.- 22 in file timesheets/app/main/index.js.

Change github authentication to basic

We currently have to store the secret. Check out https://developer.github.com/v3/oauth/#non-web-application-flow

Also remember to cater for 2FA!

Basic Auth

POST to https://api.github.com/authorizations with:

headers: {
  Authorization: `Basic ${base64encode('username + ':' + password`)}`,
  'Content-Type': 'application/json',
  Accept: : 'application/json',
}

body: JSON.stringify({
  "scopes": [
    "repo"
  ],
  "note": "Timesheets App"
})

If ok, returns 201. If 401 && headers.X-GitHub-OTP , go to 2FA

2FA

Display 2FA warning & input field, repeat request with:

headers: {
  ...
  X-GitHub-OTP: 2FA_code

Get token

response.token

Exporting the records

Hey it would be awesome if the reorts could be exported in CSV or something.. Thanks! :)

Settings page

Create settings page to toggle features on and off:

  • github integration
  • waffle integration (later)
  • reminders (later)

CI

Build app with Circle/Travis (Linux/OSX) and AppVeyor (Windows)

Store isn't being hot-reloaded

See klarna/electron-redux#8:

at my app I have implemented my store as in timesheets, but when I change code during development, it does hot reload, but state does not get updated (when using aliased actions). Does this actually work at the timesheets app ?

const rootReducer = getRootReducer(scope);

but next rootReducer is called like this:

store.replaceReducer(require('../reducers'));

This might be due to

if (!process.env.NODE_ENV && module.hot) {
not being hit (!process.env.NODE_ENV was probably meant to be something like process.env.NODE_ENV !== 'production')

/cc @rsaccon

Github - Prioritise projects

Crawl tracked repos for issues. Order projects by:

  • user assigned
  • last activity on github OR last used in app

Tasks:

  • save gh username when logging in
  • crawl issues assigned to user (GET /issues, sort=updated, since=${lastCrawled}) every 5 (?) minutes
  • search for "Tracks ..." in issue and (if unsuccessful) in milestone, import to projects, update project.lastUpdated (from gh data)
  • also update project.lastUpdated when tracking time against project
  • order projects in menubar by lastUpdated

Autolaunch

Follows on from #23

We can use https://github.com/Teamwork/node-auto-launch to register auto-launching.

We should launch

  • without main window
  • menubar window pre-loaded, but hidden

The menubar window should have an option (e.g. expand or settings) to launch the main window.

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.