Dochazka is a long-term project to replace the obsolete Attendance & Time Tracking system used by the Prague office since 2007. Dochazka is a complex system consisting of three major components:

In addition to the modules listed above, the Dochazka project also spawned the App::CELL and Date:Holidays:CZ CPAN modules.

The Dochazka REST server is implemented as a state machine powered by Web::Machine. The front-end is implemented using jQuery and RequireJS.

Hackweek 15 developments:

  • implement "Look up a schedule by code or ID" front-end feature
  • implement "Browse all schedules" front-end feature
  • implement "Create a new schedule" front-end feature (WIP)

Hackweek 13 developments:

  • implement, document, and test a Dockerized testing environment for App::Dochazka::REST
  • fix several bugs found by running the test suite in the Docker environment
  • divide tests into "regression tests" and "unit tests"
  • reduce regression test initialization boilerplate down to one line

Hackweek 12 developments:

App::Dochazka::CLI

  • come up with a (hopefully) intuitive syntax for specifying attendance intervals and tsranges in general
  • implement normalize_date routine that can handle special keywords TODAY, TOMORROW, YESTERDAY, as well as offsets (e.g., +10, -3) relative to the prompt date
  • implement normalize_time routine
  • add commands for entering new attendance intervals
  • add commands for viewing attendance intervals
  • expand testing infrastructure by adding a new "parse_test" routine that, given a raw command string, returns full name of handler routine
  • improve password change workflow
  • add lots more commands for fetching/displaying attendance intervals

App::Dochazka::REST

  • fix a bug
  • fix another bug
  • implement SQL functions, associated employee model methods and unit tests:
    • privhistory_at_timestamp
    • schedhistory_at_timestamp
    • priv_change_during_tsrange
    • schedule_change_during_tsrange
  • enforce policy on interval/eid/:eid/:tsrange, interval/nick/:nick/:tsrange, and interval/self/:tsrange resources: they only work if the tsrange specified contains no history records (i.e. the employee's privilege level and schedule must be constant over the tsrange, where "constant" is defined as "no history records during the range")
  • impose a limit on number of attendance intervals returned by SELECT; the limit is configurable and can be set to "no limit"

Hackweek 11 developments:

App::Dochazka::REST

  • refactor employee PUT and POST targets
  • add support for DELETE requests
  • write employee CRUD tests and missing top-level tests
  • codify test-driven workflow for implementing resources
  • make resources "self-documenting" by implementing new 'docu' top-level resource
  • make sure all existing resources are documented
  • use new workflow to document, test, and implement 'privhistory' resources

App::Dochazka::CLI

  • lots of bugfixes
  • support PUT, POST, and DELETE as well as GET
  • implement several new commands

Looking for hackers with the skills:

javascript perl

This project is part of:

Hack Week 12 Hack Week 11 Hack Week 13 Hack Week 15 Hack Week 16 Hack Week 20

Activity

  • over 1 year ago: gniebler liked this project.
  • over 1 year ago: llansky3 liked this project.
  • over 1 year ago: ybonatakis liked this project.
  • over 1 year ago: smithfarm liked this project.
  • over 4 years ago: TBro liked this project.
  • over 4 years ago: bruclik liked this project.
  • over 5 years ago: jfajerski joined this project.
  • over 6 years ago: mkubecek liked this project.
  • over 6 years ago: oholecek liked this project.
  • over 6 years ago: pgonin liked this project.
  • over 7 years ago: lrupp liked this project.
  • over 7 years ago: vbabka liked this project.
  • over 7 years ago: scarabeus_iv liked this project.
  • over 7 years ago: ptesarik liked this project.
  • over 7 years ago: jschmid1 liked this project.
  • over 7 years ago: smithfarm added keyword "perl" to this project.
  • over 7 years ago: michal-m liked this project.
  • over 7 years ago: smithfarm added keyword "javascript" to this project.
  • over 7 years ago: smithfarm started this project.
  • over 7 years ago: smithfarm originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    Adopt Typescript in D-Installer by IGonzalezSosa

    Project Description

    In January, we announ...


    Port the Minion job queue to TypeScript by kraih

    Project Description

    As part of the [mojo....


    YaST log grouping, better visualization of the log by lslezak

    Description

    TL;DR: I'd like to have som...


    WebRTC individual track recorder by avicenzi

    [comment]: # (Please use the project descriptio...


    Improve the UX/UI of User Story by cyntss

    Project Description

    User Story is an open...


    Port the Minion job queue to TypeScript by kraih

    Project Description

    As part of the [mojo....


    Improve yamltidy by tinita

    Project Description

    [yamltidy](https://pe...


    Give back to Wezterm by mpagot

    [comment]: # (Please use the project descriptio...