Time registration that doesn't suck

Related tags

ruby rails time-tracker
Overview

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.

Issues
  • [READY] Add Client model

    [READY] Add Client model

    Fix #216

    opened by Marthyn 26
  • [READY] Implement tags overview

    [READY] Implement tags overview

    screen shot 2014-09-04 at 14 02 38 screen shot 2014-09-04 at 14 03 37 screen shot 2014-09-04 at 14 03 46

    In this overview you can see the hours spent on a certain tag. You see the hours on that tag per user and per project. Also all the entries for that tag are listed, your entries in there can be edited. All the tags in the application are clickable now.

    I also renamed the javascript charts file from project to charts since the charts are used in multiple places. I also moved some css to application because it was used in more places. Last of all i updated the annotation.

    Fix #53 #177

    opened by Marthyn 21
  • Add tags to my hours view

    Add tags to my hours view

    screen shot 2014-03-21 at 15 20 45

    opened by Marthyn 19
  • [READY] Billable hours overview

    [READY] Billable hours overview

    • [x] Bill whole project
    • [x] Bill single entry
    • [x] Filter on client, project and dates
    • [x] Filter on billed/not billed
    • [x] Mobile
    • [x] Caching
    • [x] specs
    • [x] Scrolling/Sorting

    screen shot 2015-01-02 at 16 36 42 screen shot 2015-01-02 at 16 36 52 screen shot 2015-01-02 at 16 37 35

    opened by Marthyn 18
  • Install guide for Ubuntu 16.04 ?

    Install guide for Ubuntu 16.04 ?

    Hey guys,

    Any documentation on a install guide for this OS?

    Thanks!

    opened by DataDrug 17
  • [WIP] display hours per day on user entries page

    [WIP] display hours per day on user entries page

    This still needs some work but I'm putting it out here to get some feedback, currently looks like this:

    screen shot 2014-06-18 at 12 36 57

    Maybe entries isn't the right place for this and we should have something like users/jurre-stender/pulse or users/jurre-stender/overview that doesn't include the entries table.

    IMO we should have some options: last week, last month, last year and all time, and these should filter all the charts/data

    opened by jurre 16
  • [READY] let users enter a description with hashtags when entering time

    [READY] let users enter a description with hashtags when entering time

    this is based #17 for linking to the tags overview from the description.

    Still needs:

    • [x] autocompletion for tags
    • [x] mobile compatibility (text currently overflows)

    screen shot 2014-09-02 at 12 16 43 screen shot 2014-09-02 at 12 53 45

    in progress 
    opened by jurre 14
  • [READY]  adding mileage

    [READY] adding mileage

    pull request for review

    opened by mischaboldy 14
  • [READY] add archived to project, add a list with archived projects

    [READY] add archived to project, add a list with archived projects

    fixes #200 There might be something else you want to see in the archived table?

    • [x] don't show archived projects in the project dropdown
    opened by GlennGeelen 13
  • Configure for Docker based development

    Configure for Docker based development

    This commit adds the necessary configuration and Docker related files to allow the application and dependencies to run within Docker containers. Utilizing docker-compose, this also allows the orchestration of the separate database, cache, and jobs containers apart from the main application.

    Note: I did this for a tutorial that I was creating, if it's not a contribution that is wanted I completely understand.

    For this to work you would need to add a few more environment variables to your .env:

    POSTGRES_HOST=db
    POSTGRES_USER=hours
    POSTGRES_PASSWORD=secure_password
    

    And you would also need to set up a database.yml that utilizes these values:

    default: &default
      adapter: postgresql
      host: <%= ENV["POSTGRES_HOST"] %>
      username: <%= ENV["POSTGRES_USER"] %>
      password: <%= ENV["POSTGRES_PASSWORD"] %>
      encoding: utf8
      min_messages: warning
      pool: 2
      timeout: 5000
    
    development:
      <<: *default
      database: hours_development
    
    test:
      <<: *default
      database: hours_test
    
    production:
      <<: *default
      database: hours_production
    
    opened by keiththomps 13
  • Bump brakeman from 4.7.2 to 5.1.1

    Bump brakeman from 4.7.2 to 5.1.1

    Bumps brakeman from 4.7.2 to 5.1.1.

    Release notes

    Sourced from brakeman's releases.

    5.1.1

    • Unrefactor IgnoreConfig's use of Brakeman::FilePath

    (Fixes bugs with -I and also relative paths for -i.)

    5.1.0

    • Report Formats
    • Performance
      • Read and parse files in parallel
    • Ruby Interpretation
      • Initial support for ActiveRecord enums (#1492)
      • Interprocedural dataflow from very simple class methods
      • Support Array#fetch and Hash#fetch (#1571)
      • Support Array#push
      • Support Array#*
      • Better Array#join support
      • Support Hash#values and Hash#values_at
      • Support Hash#include?
    • SQL Injection
      • Update SQL injection check for Rails 6.0/6.1
      • Add --sql-safe-methods option (Esty Scheiner)
      • Ignore dates in SQL
      • Ignore sanitize_sql_like in SQL (#1571)
      • Ignore method calls on numbers in SQL (#1571)
    • Other Fixes
      • Ignore renderables in dynamic render path check (Brad Parker)
      • Fix false positive in command injection with Open3.capture (Richard Fitzgerald)
      • Fix infinite loop on mixin self-includes (Andrew Szczepanski)
      • Check for user-controlled evaluation even if it's a call target (#1590)
    • Refactoring
      • Refactor cookie?/param? methods (Keenan Brock)
      • Better method definition tracking and lookup

    5.0.4

    • Update bundled ruby_parser to include argument forwarding support (brakeman gem only)

    5.0.2

    • Fix Loofah version check

    5.0.1

    • Support loading slim/smart (#1570)
    • Set more line numbers on Sexps (#1579)
    • Detect ::Rails.application.configure too (#1584)
    • Always ignore slice/only calls for mass assignment
    • Don't fail if $HOME/$USER are not defined
    • Convert splat array arguments to arguments

    ... (truncated)

    Changelog

    Sourced from brakeman's changelog.

    5.1.1 - 2021-07-19

    • Unrefactor IgnoreConfig's use of Brakeman::FilePath

    5.1.0 - 2021-07-19

    • Initial support for ActiveRecord enums
    • Support Hash#include?
    • Interprocedural dataflow from very simple class methods
    • Fix SARIF report when checks have no description (Eli Block)
    • Add ignored warnings to SARIF report (Eli Block)
    • Add --sql-safe-methods option (Esty Scheiner)
    • Update SQL injection check for Rails 6.0/6.1
    • Fix false positive in command injection with Open3.capture (Richard Fitzgerald)
    • Fix infinite loop on mixin self-includes (Andrew Szczepanski)
    • Ignore dates in SQL
    • Refactor cookie?/param? methods (Keenan Brock)
    • Ignore renderables in dynamic render path check (Brad Parker)
    • Support Array#push
    • Better Array#join support
    • Adjust copy of --interactive menu (Elia Schito)
    • Support Array#*
    • Better method definition tracking and lookup
    • Support Hash#values and Hash#values_at
    • Check for user-controlled evaluation even if it's a call target
    • Support Array#fetch and Hash#fetch
    • Ignore sanitize_sql_like in SQL
    • Ignore method calls on numbers in SQL
    • Add GitHub Actions format (Klaus Badelt)
    • Read and parse files in parallel

    5.0.4 - 2021-06-08

    (brakeman gem release only)

    • Update bundled ruby_parser to include argument forwarding support

    5.0.2 - 2021-06-07

    • Fix Loofah version check

    5.0.1 - 2021-04-27

    • Detect ::Rails.application.configure too
    • Set more line numbers on Sexps
    • Support loading slim/smart
    • Don't fail if $HOME/$USER are not defined
    • Always ignore slice/only calls for mass assignment
    • Convert splat array arguments to arguments

    ... (truncated)

    Commits
    • 37570d3 Bump to 5.1.1
    • b6b73a9 Merge pull request #1623 from bradparker/revert-file-path-refactor
    • d517c99 Revert "refactor: IgnoreConfig uses FilePath"
    • 53db6f5 Bump to 5.1.0
    • 1b0fefe Update CHANGES
    • e658d78 Merge pull request #1618 from presidentbeef/support_ar_enums
    • 1920a23 Additional test for enums
    • e44ae9a Use simple method checks from MethInfo
    • 73b8710 Test the array form of enum
    • 5342cbe Enum name is an instance method, not class method
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump addressable from 2.7.0 to 2.8.0

    Bump addressable from 2.7.0 to 2.8.0

    Bumps addressable from 2.7.0 to 2.8.0.

    Changelog

    Sourced from addressable's changelog.

    Addressable 2.8.0

    • fixes ReDoS vulnerability in Addressable::Template#match
    • no longer replaces + with spaces in queries for non-http(s) schemes
    • fixed encoding ipv6 literals
    • the :compacted flag for normalized_query now dedupes parameters
    • fix broken escape_component alias
    • dropping support for Ruby 2.0 and 2.1
    • adding Ruby 3.0 compatibility for development tasks
    • drop support for rack-mount and remove Addressable::Template#generate
    • performance improvements
    • switch CI/CD to GitHub Actions
    Commits
    • 6469a23 Updating gemspec again
    • 2433638 Merge branch 'main' of github.com:sporkmonger/addressable into main
    • e9c76b8 Merge pull request #378 from ashmaroli/flat-map
    • 56c5cf7 Update the gemspec
    • c1fed1c Require a non-vulnerable rake
    • 0d8a312 Adding note about ReDoS vulnerability
    • 89c7613 Merge branch 'template-regexp' into main
    • cf8884f Note about alias fix
    • bb03f71 Merge pull request #371 from charleystran/add_missing_encode_component_doc_entry
    • 6d1d809 Adding note about :compacted normalization
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 0
  • Bump devise_invitable from 1.7.5 to 2.0.5

    Bump devise_invitable from 1.7.5 to 2.0.5

    Bumps devise_invitable from 1.7.5 to 2.0.5.

    Changelog

    Sourced from devise_invitable's changelog.

    2.0.5

    • Fix NoMethodError in random_password when validatable is not used (#850)

    2.0.4

    • Fix devise deprecations (#842)
    • Update translations (#844, #845)
    • Fix/enforce initial password length to follow devise (#848)

    2.0.3

    • Add locales (#834, #835)
    • Remove index on invitations_count column (#830)

    2.0.2

    • Fix ruby 2.7 deprecation warning

    2.0.1

    • Use per-model allow_insecure_sign_in_after_accept (#790)

    2.0.0

    • Remove deprecated devise_error_messages! from templates (#786)
    • Drop Devise < 4.6 support (#786)
    • Drop Rails 4.2 support (#785)
    • Drop Ruby 2.1 support
    Commits
    • db1f065 bump to 2.0.5
    • f76994e stop testing with old ruby versions, latest nokogiri doesn't support them
    • c18b083 Restore test using Validatable and support both scenarios
    • 8dc54b7 Update test
    • 9331c02 Fix NoMethodError in random_password
    • 1c96411 bump to 2.0.4
    • cf77519 Avoid sentence object ambiguity
    • f6a308d spec, should set initial password following devise password_length
    • db4b0b3 fix, random_password should follow the password_lenght of the devise config
    • 5cea943 update gems
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • validates uniqueness of email

    validates uniqueness of email

    Corresponding Issue

    #589

    opened by Arunthogadiya 0
  • validates email uniqueness

    validates email uniqueness

    While signup make the Emil to be unique

    opened by Arunthogadiya 0
  • Validates presence of description while creating new project

    Validates presence of description while creating new project

    Makes sure that description is added while creating a new project.

    opened by Revathyne 0
  • Validate the presence of description while creating a new project

    Validate the presence of description while creating a new project

    Should validate the presence description on creating a new project.

    opened by Revathyne 0
  • Add google authentication in sign_up

    Add google authentication in sign_up

    Implement sign_up using Google.

    opened by Revathyne 0
  • [Security] CSV Injection

    [Security] CSV Injection

    Hello everybody, I was just testing your app and I've discovered that is vulnerable to CSV injection: https://owasp.org/www-community/attacks/CSV_Injection

    In Hours case, besides hypothetical code execution, it would allow low privilege user to exfiltrate entire CVS content that contains data of all other users, hours and projects. An entire report can be leaked back to user. The only thing that is required for an attack to work is one reckless click from an admin, when opening the generated csv.

    I won't be posting PoC publicly, please contact me and I'll send you all the details.

    OWASP guidance: _This attack is difficult to mitigate, and explicitly disallowed from quite a few bug bounty programs. To remediate it, ensure that no cells begin with any of the following characters:

    Equals to (“=”) Plus (“+”) Minus (“-“) At (“@”)_

    opened by joshibeast 0
  • Bump redcarpet from 3.4.0 to 3.5.1

    Bump redcarpet from 3.4.0 to 3.5.1

    Bumps redcarpet from 3.4.0 to 3.5.1.

    Release notes

    Sourced from redcarpet's releases.

    Redcarpet v3.5.1

    Fix a security vulnerability using :quote in combination with the :escape_html option.

    Reported by Johan Smits.

    v3.5.0

    This release mostly ships with bug fixes and tiny improvements.

    Improvements

    • Avoid mutating the options hash passed to a render object (See #663).

    • Automatically enable the fenced_code_blocks option passing a HTML_TOC object to the Markdown object's constructor since some languages rely on the sharp to comment code (See #451).

    • Remove the rel and rev attributes from the output generated for footnotes as they don't pass the HTML 5 validation (See #536).

    • Allow passing Range objects to the nesting_level option to have a higher level of customization for table of contents (See #519):

      Redcarpet::Render::HTML_TOC.new(nesting_level: 2..5)
      

    Bug fixes

    • Fix a segfault rendering quotes using StripDown and the :quote option.

    • Fix SmartyPants single quotes right after a link. For example:

      [John](http://john.doe)'s cat
      

      Will now properly converts ' to a right single quote (i.e. ).

    Changelog

    Sourced from redcarpet's changelog.

    Version 3.5.1 (Security)

    • Fix a security vulnerability using :quote in combination with the :escape_html option.

      Reported by Johan Smits.

    Version 3.5.0

    • Avoid mutating the options hash passed to a render object.

      Refs #663.

      Max Schwenk

    • Fix a segfault rendering quotes using StripDown and the :quote option.

      Fixes #639.

    • Fix warning: instance variable @options not initialized when running under verbose mode (-w, $VERBOSE = true).

    • Fix SmartyPants single quotes right after a link. For example:

      [John](http://john.doe)'s cat
      

      Will now properly converts ' to a right single quote (i.e. ).

      Fixes #624.

    • Remove the rel and rev attributes from the output generated for footnotes as they don't pass the HTML 5 validation.

      Fixes #536.

    • Automatically enable the fenced_code_blocks option passing a HTML_TOC object to the Markdown object's constructor since some languages rely on the sharp to comment code.

      Fixes #451.

    • Allow passing Range objects to the nesting_level option to have a higher level of customization for table of contents:

      Redcarpet::Render::HTML_TOC.new(nesting_level: 2..5)
      

    ... (truncated)

    Commits
    • a699c82 Fix a security issue using :quote with :escape_html
    • 6270d6b Redcarpet v3.5.0
    • 94f6e27 Tiny follow-up to #663
    • 3100f65 Merge pull request #663 from maschwenk/dont-mutate-options
    • fc52d9c Add regression test
    • 03e7997 Don't mutated passed options
    • 92a7b3a Fix a segfault with StripDown and the :quote option
    • 7352162 Merge pull request #649 from rbalint/master
    • e23383e Merge pull request #650 from kolen/fix-warning-options-not-initialized
    • 6b86656 Fix "instance variable @options not initialized" warning
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 0
Releases(Pre-Release0.0.1)
Send browser notifications from your terminal. No installation. No registration.

Notica Send browser notifications from your terminal. No installation. No registration. https://notica.us/ Usage Notica is a Bash function / alias tha

Tanner Collin 250 Sep 17, 2021
Popcorn Time is a multi-platform, free software BitTorrent client that includes an integrated media player ( Windows / Mac / Linux ) A Butter-Project Fork

Popcorn Time A multi-platform, free software BitTorrent client that includes an integrated media player. Visit the project's website at popcorntime.ap

Popcorn Software 6.3k Sep 15, 2021
Open source API management platform

About Fusio is an open source API management platform which helps to build and manage REST APIs. Fusio provides all tools to quickly build an API from

Apioo 997 Sep 15, 2021
NO LONGER MAINTAINED - Project management and time tracking should be easy. SprintApp is simple to setup, simple to use, and elegant - making you look like a hero in your organization.

SprintApp DEPRECATED This project has not seen any community contributions for a year now, and I have not had time for the project, or the need, for a

Matthew Millsaps-Brewer 304 Aug 12, 2021
Simple, easy to use, open source time tracking system.

Anuko Time Tracker About Anuko Time Tracker is an open source, web-based time tracking application written in PHP. It allows you to track the time tha

null 146 Sep 15, 2021
Kimai v1 open source time-tracking - please switch to Kimai v2

?? Kimai v1 is not maintained any more Go ahead to https://github.com/kevinpapst/kimai2 and update to use the latest release, rewritten from scratch,

Kimai - Time Tracking Software 580 Aug 25, 2021
🔥 Open source static (serverless) status page. Uses hyperfast Go & Hugo, minimal HTML/CSS/JS, customizable, outstanding browser support (IE8+), preloaded CMS, read-only API, badges & more.

Über fast, backwards compatible (IE8+), tiny, and simple status page built with Hugo. Completely free with Netlify. Comes with Netlify CMS, read-only

cState 1.4k Sep 17, 2021
The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis

CyberChef The Cyber Swiss Army Knife CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser.

GCHQ 12.9k Sep 17, 2021
Online genealogy

webtrees - online collaborative genealogy Contents License Coding styles and standards Introduction System requirements Internet browser compatibility

Greg Roach 582 Sep 15, 2021
How Secure is My Password for your own website

How Secure Is My Password? Now you can use the howsecureismypassword.net password strength meter on your own sites. About Rather than just saying a pa

How Secure Is My Password? 427 Sep 15, 2021
Personal CRM. Remember everything about your friends, family and business relationships.

Personal Relationship Manager Monica is a great open source personal relationship management system. Introduction Purpose Features Who is it for? What

Monica 13.3k Sep 24, 2021
Display and control your Android device

scrcpy (v1.17) Read in another language This application provides display and control of Android devices connected on USB (or over TCP/IP). It does no

Genymobile 54.9k Sep 23, 2021
OpenProject is the leading open source project management software.

OpenProject OpenProject is a web-based project management software. Its key features are: Project planning and scheduling Product roadmap and release

OpenProject 5.2k Sep 25, 2021
A Web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes

2FAuth A web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes 2FAuth Demo Credentials (login - password)

null 176 Sep 15, 2021
Modern desktop application designed to complement existing web-based RSS accounts.

This project is no longer activily maintained! I am for quite some time already working on a spiritual successor called NewsFlash. Its a complete rewr

Jan Lukas Gernert 772 Sep 9, 2021
Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support

antimicro ?? Important update ?? This repo is currently unmaintained. The code hasn't been updated for a while. But not all is lost, antimicro has a f

null 1.5k Sep 24, 2021
Calibre OPDS (and HTML) PHP Server : web-based light alternative to Calibre content server / Calibre2OPDS to serve ebooks (epub, mobi, pdf, ...)

COPS COPS stands for Calibre OPDS (and HTML) Php Server. See : COPS's home for more details. Don't forget to check the Wiki. Why ? In my opinion Calib

Sébastien Lucas 1.2k Sep 22, 2021