BluemediaGER / daybreak

Simple timesheets and vacation management for small businesses.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo Daybreak

Build Status Total Downloads Latest Stable Version License

About Daybreak

Daybreak is a very simplistic timesheet and vacation planning program for small businesses. It was created because I needed something I could host myself and integrate better into our local IT enviornment. Other open sourced programs like smalltime or kimai didn't work out for me, since they did not comply to C-55/18 EuGH or where not easily extendable. This program is inspired by papershift. If you are looking for something more robust and/or more enterprise ready, I suggest you test and use their service at papershift.com.

Open Todos

  • Documentation
  • Add automatic pause times after "x" working hours
  • Include holiday importer for other countries
  • Make timezone of location configurable and make use of it
  • Add more absence times calculators
  • Add extended datatables and disable employee switcher
  • More Tests

Production ready deployment using Docker

# Clone repository using git & change into cloned directory
git clone https://github.com/eporsche/daybreak.git && cd daybreak

# Copy .env.prod.example to .env.prod and edit it to fit your needs
cp .env.prod.example .env.prod

# Build the app container
docker compose -f docker-compose.prod.yaml build

# Generate an application secret
docker compose -f docker-compose.prod.yaml run --rm app php artisan key:generate

# Apply database schema
docker compose -f docker-compose.prod.yaml run --rm app php artisan migrate --force

# Start the stack (web app will be available on port 8080 by default)
docker compose -f docker-compose.prod.yaml up -d

If you plan to run Daybreak publicly, make sure you do so behind a reverse proxy. You can use the X-Real-IP and X-Forwarded-Proto headers to pass the actual client IP and encryption state to the app container.

If you want to prevent new users from registering themselves, you can do so by disabling the feature after you created your own account. Simply comment out the line Features::registration(), at the end of the file config/fortify.php. After that, rebuild the app container image and recreate the container. The registration button should now be disabled.

Installation instruction to setup a development environment

Requirements

Ubuntu/Debian

apt-get update
apt-get install php7.4 php7.4-common php7.4-bcmath openssl php7.4-json php7.4-mbstring php7.4-xml

Install docker and composer on you system.

Clone repository

git clone https://github.com/eporsche/daybreak.git && cd daybreak

Setup repository

# Restore PHP packages
composer install

# Create .env file
# By default port :80 will be used. To change the port, put `APP_PORT=<port>` into the .env config file
cp .env.example .env

Start application

# Start the application
./vendor/bin/sail up -d

# Generate app key
./vendor/bin/sail artisan key:generate

# Migrate database
./vendor/bin/sail artisan migrate

By default, the application is available at: http://localhost

Mails

In the default installation the sending of mails is simulated with mailhog, you can view them via your browser at http://localhost:8025

A small video preview of the application

daybreak_demo_EDIT_2.mp4

Demo Installation

The application can be tested via heroku.

https://demo-daybreak.herokuapp.com/

User: admin@daybreak.corp

Password: admin1234

Limitation:

  • No Emails will be send from the demo instance, therefore user invitations won't work
  • Application will be reset to defaults every 24h

Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Erik Porsche via e.porsche@gmail.com. All security vulnerabilities will be promptly addressed.

License

Copyright (c) Erik Porsche

Daybreak is open-sourced software licensed under the MIT license.

Icons made by Freepik from www.flaticon.com

About

Simple timesheets and vacation management for small businesses.

License:MIT License


Languages

Language:PHP 66.5%Language:Blade 32.5%Language:HTML 0.8%Language:Shell 0.2%Language:Procfile 0.0%