Skip to content

iris-garcia/workday

Repository files navigation

https://img.shields.io/badge/License-GPLv3-blue.svg https://travis-ci.com/iris-garcia/workday.svg?branch=master https://github.com/iris-garcia/workday/workflows/Unit%20tests/badge.svg

Workday

What’s the idea?

Since last May 12, 2019 every Spanish company is required to provide their employees a process to record their working hours.

This process can be as simple as signing in a paper the checks in and checks out for every single workday; but any other process can be used and this is the reason for which I decided to develop this project.

Initially the idea is to provide a RESTful API which could be used in any company to register those checks in and checks out, and allow the “administrators” to retrieve the data at any time they are requested to.

How is it going to be developed?

  • RESTful API design.
  • Test-driven development and Behavior-driven development.
  • Isolated development environment (probably using Docker containers).
  • Continuous Integration.
  • Gitflow workflow.
  • Storing persistent data in a relational database.
  • Logging services.
  • Authentication

Documentation

The extended documentation is hosted under https://iris-garcia.github.io/workday/.

Build Tool

Mage is the build tool used in this project, for further details check out the documentation.

buildtool: magefile.go

Docker container

Contenedor: http://api-workday.apps.us-east-2.starter.openshift-online.com

OpenShift Deployment

deployment: http://api-workday.apps.us-east-2.starter.openshift-online.com

The documentation showcasing how to get the project deployed in OpenShift is hosted here.

Docker

The latest version of the project as a Docker image is hosted in Docker Hub:

dockerhub: https://hub.docker.com/r/irisgarcia/workday

Provision

There is an Ansible playbook which can be used to provision a machine, setting up the infrastructure needed to deploy the app.

provision: .packer/ansible/workday.yml

The vagrant box already provisioned can be downloaded here:

vagrant: https://app.vagrantup.com/igarcia/boxes/workday

How to contribute

Setup the environment

  1. Fork the repository.
  2. Clone your forked repository.
  3. Install the build tool mage
    go get github.com/magefile/mage
        
  4. Run mage build to install the dependencies and build the binary.
  5. (optional) Run mage startdev to bootstrap a mariadb docker container.
  6. To run the API HTTP Server issue the command: mage start.

Add your contribution

  1. Create a new branch:
    • bug/short-description
    • feature/short-description
  2. Write tests to cover your changes.
  3. Run the tests.
    mage test
        
  4. Push the branch to your fork once you think everything works as expected.

Request the integration

  1. Create a Pull Request from your branch to master.

To be removed

[![Build Status](https://travis-ci.com/iris-garcia/workday.svg?branch=master)](https://travis-ci.com/iris-garcia/workday)

About

Workday allows companies to register their employees checks in and checks outs using an RESTful API

Resources

License

Stars

Watchers

Forks

Packages

No packages published