Giter Club home page Giter Club logo

hours's Introduction

Hours

Build Status Code Climate Reviewed by Hound

Deploy

Maintenance mode

This project is now in maintenance mode. We will not accept new feature development or contributions other than dependency updates, security fixes and major bug fixes.

Hours is a dead simple project based time tracking application that we use for internal time-tracking. It allows users to register how many hours they've worked on a project with a certain category (think design, software development, testing for software teams) and add any tag they like to it. This gives us a lot of insight on how we spend our time on different projects.

It looks like this:

Projects overview

Single project

Entries

Audit Log

Entry

Roadmap

As we're using Hours we're constantly thinking of ways to improve it and we'd love to hear your thoughts!

System Dependencies

  • Ruby 2.4.2 (install with rbenv)
  • Rubygems
  • Bundler (gem install bundler)
  • PostgreSQL
  • qmake (brew install qt) or read extensive instructions here
  • memcached (brew install memcached, an older version ships with OSX)(optional)
  • imagemagick (brew install imagemagick)

Getting Started

This repository comes equipped with a self-setup script:

% ./bin/setup

After setting up, you can run the application using foreman:

% foreman start

Since we're using subdomains to point to accounts, you can't run the app on localhost. If you have pow set up or if you use linux an alternative is prax, it will be automatically configured by the setup script, otherwise you need to point apache/nginx to the port foreman is running the app on (7000 by default). With pow/prax the app will run on http://hours.dev

In order to activate caching in development you can add CACHE_DEVELOPMENT="anything" to your .env. Make sure to run $ memcached when you do need this.

Getting Started with Docker

This repository comes equipped to be run within Docker, but this requires a few more local dependencies. For instructions on installing and getting started with Docker go here. You'll also need docker-compose, but it will be installed for you through Docker for Mac or Windows.

This repository comes equipped with a self-setup script for using Docker:

% ./bin/docker_setup

On first boot you'll also need to create your database, for that use:

% docker-compose run --rm app rake db:create db:migrate

After setting up, you can run the application and dependencies using [docker-compose]:

% docker-compose up -d

If your Docker host is running on localhost then you should be able to use pow/prax, otherwise you'll need to connect to it via:

http://DOCKER_IP:7000

Feature Flags

Description:

Single Tenant Mode: Initialize application in single tenant mode. Disabled by default.

Usage:

To use the single tenant mode, you can add SINGLE_TENANT_MODE to your enviroment variables with the value true. On development you can set this in your .env with SINGLE_TENANT_MODE=true and restart foreman. On heroku it's under the Config Variables. The first user in single tenant mode can be created by a rake task rake create_user. We'll ask you for your credentials.

Guidelines

  • Pull requests are welcome! If you aren't able to contribute code please open an issue on Github.
  • Write specs!
  • Develop features on dedicated feature branches, feel free to open a PR while it's still WIP
  • Please adhere to the Thoughtbot ruby styleguide
  • All code and commit messages should be in English
  • Commit messages are written in the imperative with a short, descriptive title. Good => Return a 204 when updating a question, bad => Changed http response or I updated the http response on the update action in the QuestionController because we're not showing any data there. The first line should always be 50 characters or less and that it should be followed by a blank line.
  • Please localize all strings and add i18n keys to the locale files sorted by key in ascending order

License

Hours is distributed under the MIT license.

hours's People

Contributors

andystabler avatar bricesanchez avatar danielamah avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar dinobi avatar dixpac avatar dkhgh avatar ducpho avatar eoengineer avatar fatboypunk avatar herminiotorres avatar ivayloap avatar johnthepink avatar jurre avatar keiththomps avatar kerrizor avatar lym avatar marthyn avatar michalsz avatar mischaboldy avatar ruan-brandao avatar salbertson avatar seanhussey avatar sinetheta avatar sn3p avatar tarzan 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  avatar  avatar  avatar  avatar

Watchers

 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

hours's Issues

Colors project too alike

screen shot 2014-03-22 at 10 06 22

The colours of these three categories are almost the same, it would be nice if colours differentiated more.

Memory leaking?

Memory on heroku seems to be constantly increasing, I've already spent some time trying to look for places where it could be leaking but I haven't found anything yet.

screen shot 2014-08-08 at 16 03 31

Right now I'm restarting the dyno's once in a while but we need to figure out what's causing this ๐Ÿ˜ฟ

Different font used in entry form

Might be caused by simple form? or a bitters partial. No biggie, but I prefer our awesome
"New Project" button with slick Open Sans look to "Create entry"'s crammed Helvetica.

Compare:

screen shot 2014-03-19 at 20 09 35

with:

screen shot 2014-03-19 at 20 09 41

Easier way to restrict subdomains?

After open sourcing Hours it won't make sense for a lot of people to allow subdomains, maybe we could provide an application setting (through an env variable maybe?) that specifies one or more subdomains to allow and then add a validation to the Account model that checks for this?

add tooltip / hover to piechart of project window

At the moment it's quite hard to determine what part of the pie chart belongs to which user.

screen shot 2014-03-27 at 10 59 04

This could be solved by either highlighting the user when you hover a piece of the pie chart or by showing a tooltip.

Location new project button

I would imagine the new project button right next to the form for submitting hours, especially when there are a lot of project you would have to scroll all the way past those projects to make a new project now.

screen shot 2014-03-19 at 11 10 35

Proper Landing Page

If we are gonna let other people use Hours, the landing page should look awesome and have some real copy + explanation & screenshots or whatever.

Remembering project/category hours submit form

I was entering data for a few days and every time i submit the form resets, imo it would be more convenient if at least the project is selected after submit. If you want to enter hours for a different project still the same amount of time is needed.

Make activityfeed longer

As soon as there are more projects you could make the activityfeed longer. I think it looks nicer if the activityfeed is just as long as the page.

Now it stops:
screen shot 2014-03-25 at 10 43 55

Implemented similar tracking, slightly different architecture

I implemented similar time reports in our company (a design agency). Slightly different architecture, 'though:

  • Employees do it only at the end of the day on a "day end report" (this ables us to focus on the work instead of breaking concentration to fill forms; we just write down the time when we change projects, on paper)
  • the "day end report" has then a start and end time, instead of total hours, for each entry. Each entry has also an optional description field to give details and report difficulties or obstacles. As does the daily report itself.
  • we can create new projects and clients while filling an entry.
  • once finished, the "day end report" is submitted and sent by email to the management.
  • there are project and client aggregated views, with total hours (billed and unbilled) and entry lists; there is also a "my reports" aggregated view.
  • Entries can be marked as billed, projects can be marked as finished.

As I'm not a developer, this was done using wordpress and the formidable plugin. The idea is for it to be a cross between a very unobtrusive time tracking and a report on the likes of 15five.com. Hope this helps Hours development.
Best,
Ana Rita

LICENSE missing

I would suggest we just use MIT but with a disclaimer that hosting your own paid version is kind of a jerk move and no one likes jerks

Account signup flow: make confirmation process more explicit.

The current flow for when a person signs up for a (trial) account is far from optimal.

Biggest nuisance is that it's unclear that you have to confirm your account through the confirmation e-mail.

(also I think we could get rid of the confirm password ;)).

We could:

Display a page that explains the confirmation process, with a resend confirmation email button/link.

Or:

Ask for just email first, and the rest after confirming the email.

Thoughts?

Timeline reports too long

screen shot 2014-03-27 at 16 39 26

Why does this line go to 2024? It should go up until today's date i think cause you'll never write hours in the future.

Deleting projects

As a user I want to be able to delete projects so that I can fix my mistakes.

Especially projects without hours must be deletable by everyone imo.

Sort dropdowns alphabetically

Sort the items in both the project and the category dropdown alphabetically. It's getting messy as they're growing longer.

Editing tags

As a user I want to be able to edit tags so that I can fix misspelled and ugly tags.

Onboarding

Right now, we don't do enough for new users to get them started - especially after creating a new 'tenant'.

Someone on Hackernews said:

Ok so i'm trying your hosted version of the app. New user. I get taken to the New Entry page...
I haven't got a project, i can't create a project on the new entry page so i have to go round the houses to add a project.
I haven't got any categories... where do i add categories as i can't do it from the New Entry page... oh it's under my name... so round the houses to do that..

I think we can all agree to this.

Basically a good flow for new accounts would be:

  1. Make some categories
  2. Make a project
  3. Make your first entry
  4. Get your colleagues to sign up

We could do a little onboarding tour.

Or we could by default add a My First Category and My First Project, so people can see how the works straight away.

I'm slightly favouring the second option. What do you guys think?

show all hours for a specific tag when it's clicked in the projects window

At the moment clicking a tag in the projects window doesn't do anything.

screen_shot_2014-03-21_at_23_06_29

It would be nice if we either show all hours for the selected tag per category or redirect to the reports page and show the reports of the selected tag

another option would be to have some sort of toggle clicking a tag would result in showing the hours per category for all but the de-selected tag. clicking the tag again enables it.

if we don't want this kind of functionality in the project window then maybe we should remove the hover effect of the tags, it's misleading and gives the impression that the tag is a button and the hover doesn't add much in functionality.

Daily Digest Mail

I want to receive an e-mail at the end of the day that shows relevant stats on projects I work on. something like:

See What Your Colleagues Worked On

360-Feedback

Alexander & Bastiaan spent 16 hours working on design and marketing.

CAPP 11

Maarten, Romke, Ewoud, Albert, Daan & Glenn spent 40 hours on software development and copywriting.


[Hand in your Hours] ๐Ÿ‘

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.