• Stars
    star
    1,034
  • Rank 44,573 (Top 0.9 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 10 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Time registration that doesn't suck

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.

More Repositories

1

ex_cell

A module for creating coupled modules of CSS, Javascript and Views in Phoenix
Elixir
29
star
2

ex_css_modules

CSS Modules for Elixir
Elixir
18
star
3

BearNecessities

Multiplayer bear game with Phoenix Live View
Elixir
18
star
4

lti

Launch and receive LTI requests
Elixir
15
star
5

test_selector

Elixir library to help selecting the right elements in your tests.
Elixir
14
star
6

dashing-widgets

a collection of Dashing widgets that we use in our internal dashboards
Ruby
11
star
7

LearningSpaces-Landing

LearningSpaces Landingpage
CSS
10
star
8

xmas

Defacto Christmas party invitation
Roff
8
star
9

cell-js

Simple solution for binding Javascript to specific templates or side server components
JavaScript
6
star
10

NotFoundRoute

An overview of all routes in your Phoenix project.
Elixir
5
star
11

test_dispatch

Phoenix Integration tests without webdrivers.
Elixir
5
star
12

ex_styledoc

Living style guide generation for your Elixir projects.
Elixir
4
star
13

PickupGameBot

To help us set up pickup futsal games and maybe more
Ruby
3
star
14

lrs-api

Elixir
3
star
15

proof

example project for our hack week
Ruby
3
star
16

Preload

A module to dynamically preload based on schema files.
Elixir
3
star
17

Questionnaire

Questionnaire that renders the results as charts.
HTML
2
star
18

leerstof-composer

HTML
2
star
19

devblog

Defacto Dev Blog
CSS
2
star
20

elearningtoolkit

prototype for html/css/js based e-learning authoring using middleman
CSS
2
star
21

ueberauth_oidc

An Ueberauth strategy for generic OpenID Connect authentication.
Elixir
2
star
22

wesley

wesley slider prototype
HTML
1
star
23

HackFeed

Feed APP for G2020 Hackathon
CSS
1
star
24

intercom_stats

Analysis tool to use in parallel with Intercom (https://www.intercom.com/). Provides insights on reaction time, conversation duration and closing time.
Elixir
1
star
25

Huh

Huh?
Objective-C
1
star
26

chief-awesome

Ruby
1
star
27

buildpack-generate-docs

Shell
1
star
28

liveview_playground

This is a phoenix app with Liveview and ex_cell so we can have some isolated examples with Cells and Liveview.
Elixir
1
star
29

ex_ample_cell

Example ExCell implementation
Elixir
1
star
30

MedischRekenenWebsite

JavaScript
1
star
31

xml_parser

A module used to parse XML using the Plug dependancy.
Elixir
1
star
32

MedischRekenenArcade

Train your skills in medical arithmetics
Ruby
1
star
33

huhspot

What the huh?
JavaScript
1
star
34

defacto.nl

Some front-end stuff for the old website
CSS
1
star
35

eggplant

Ruby
1
star
36

assert_async

Elixir library to assert in tests for async calls
Elixir
1
star