Simple timesheets and vacation management for small businesses.

Overview

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

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: [email protected]

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 [email protected]. 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

Comments
  • Update sail dependency

    Update sail dependency

    The image fails at building because PHP binaries are not found:

    image image

    docker-compose.yml is using dockerfiles from ./vendor/laravel/sail/runtimes/8.0, reading composer.lock you were using laravel/sail 1.12.12 but the issue is laravel/sail 1.12.12 is using Ubuntu 21.04 (see https://github.com/laravel/sail/blob/v1.12.12/runtimes/8.0/Dockerfile) and Ubuntu 21.04 is deprecated See http://old-releases.ubuntu.com/releases/. However since laravel/sail v1.13.4 they use Ubuntu 21.10 for the 8.0 php flavor and ubuntu 22.04 for the 8.1 php flavor.

    So I removed composer.lock and modified composer.json

    -"laravel/sail": "^1.0.1",
    +"laravel/sail": "^1.15.0",
    

    Now it builds.

    wontfix 
    opened by noraj 5
  • [BUG] - User DB seeder

    [BUG] - User DB seeder

    There is a problem with user DB seeder when you change email and password inside DatabaseSeeder

    app(CreatesNewUsers::class)->create([
                'name' => 'Admin User',
                'email' => '[email protected]',
                'password' => 'admin1234',
                'password_confirmation' => 'admin1234',
                'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? true : false,
            ]);
    
    opened by Nejcc 4
  • [Suggestion] - disable mail sending on local env

    [Suggestion] - disable mail sending on local env

    if is mail not set on local env you get errors like this

    Connection could not be established with host mailhog :stream_socket_client(): php_network_getaddresses: getaddrinfo failed: No such host is known.
    

    Solution:

    if (!app()->environment('local')) {
        Mail::to($absence->employee)->send(new AbsenceRemoved());
    }
    
    opened by Nejcc 3
  • Adjust Timezone

    Adjust Timezone

    How could i adjust the timezone?

    • Added APP_TIMEZONE=Europe/Berlin to .env-file
    • Added Enviroment TZ=Europe/Berlin
    • AddedEurope/Berlin toDB/locations/time_zone

    I also tried CEST as value, but the times are still in UTC.

    wontfix 
    opened by foorschtbar 3
  • [Translation] - English

    [Translation] - English

    Here you have json translation

    {
        "Location administrator": "Location administrator",
        "Location administrators can perform updates on a location.": "Location administrators can perform updates on a location.",
        "Employee": "Employee",
        "Employees have can create new working hours.": "Employees have can create new working hours.",
        "Great! You have accepted the invitation to join the: location team.": "Great! You have accepted the invitation to join the: location team.",
        "Target to zero (to be implemented)": "Target to zero (to be implemented)",
        "The target hours will be set to zero in the evaluation.": "The target hours will be set to zero in the evaluation.",
        "Absent to target": "Absent to target",
        "The absence hours will be summed up.": "The absence times are summarized.",
        "Fixed value (to be implemented)": "Fixed value (to be implemented)",
        "Caclulate a fixed value.": "Calculate a fixed value.",
        "Custom value (to be implemented)": "Custom value (to be implemented)",
        "Employee specific values.": "Employee specific values.",
        "The project budget has been exceeded.": "The project budget has been exceeded.",
        "Date should not be in the future.": "Date should not be in the future.",
        "Date should not before employment date.": "The date should not be before the employment date.",
        "The given time period overlapps with an existing entry.": "The given time period overlapps with an existing entry.",
        "Given pause time is too small.": "Given a pause, the time is too small.",
        "Break is not between working hours.": "The break is not between working hours.",
        "Overlapping pause time detected.": "Overlapping pause time detected.",
        "Sorry, you were not invited.": "Sorry, you were not invited.",
        "We were unable to find a registered user with this email address.": "We could not find a registered user with this email address.",
        "This user already belongs to the team.": "This user already belongs to the team.",
        "Something went wrong. Please try again.": "Something went wrong. Please try again.",
        "Chosen date interval is too big.": "The selected date interval is too big.",
        "The start date should not be set before the employment date.": "The start date should not be set before the employment date.",
        "The provided password does not match your current password.": "The provided password does not match your current password.",
        "Transferred:: name": "Transferred:: name",
        "This user has already been invited.": "This user has already been invited.",
        "This user already belongs to the location.": "This user already belongs to the location.",
        "Sorry, there is no fitting vacation entitlement for this absence.": "Unfortunately, there is no suitable vacation entitlement for this absence.",
        "Paid hours changed from {$ absence-> paid_hours} to {$ absenceCalculator-> sumPaidHours ()}": "The paid hours have been changed from {$ absence-> paid_hours} to {$ absenceCalculator-> sumPaidHours ()}.",
        "Vacation days changed from {$ absence-> vacation_days} to {$ absenceCalculator-> sumVacationDays ()}": "The vacation days were changed from {$ absence-> vacation_days} to {$ absenceCalculator-> sumVacationDays ()}.",
        "You may not leave a location that you created.": "You may not leave a location that you created.",
        "The date format is wrong.": "The date format is wrong.",
        "The given date format is wrong.": "The given date format is wrong.",
        "Starting Balance": "Starting balance",
        "Sth. Went wrong.": "Sth. Went wrong.",
        "Not yet billed hours:: hours": "Not yet billed hours:: hours",
        "Working hours:: hours": "Arbeitszeit:: hours",
        "Date Duration (Hrs.) Description": "Date Duration (Hrs.) Description",
        "Period:: from -: to": "Period:: from -: to",
        "Vacation entitlement has wrong status.": "Vacation entitlement has wrong status.",
        ": start -: end o'clock": ": start -: end clock",
        "Location Settings": "Location Settings",
        "Locations": "Locations",
        "Location: Name": "Place: Name",
        "Projects": "Projects",
        "Project: Name": "Project: Name",
        "Calendar": "Calendar",
        "Create Team": "Create Team",
        "Team Settings": "Team Settings",
        "Delete Team": "Delete Team",
        "Permanently delete this team.": "Permanently delete this team.",
        "Once a team is deleted, all of its resources and data will be permanently deleted. Before deleting this team, please download any data or information regarding this team that you wish to retain.": "As soon as a team is deleted, all resources and data permanently deleted. Before deleting this team, download any data or information about this team that you want to keep. ",
        "Are you sure you want to delete this team? Once a team is deleted, all of its resources and data will be permanently deleted.": "Are you sure you want to delete this team? As soon as a team is deleted, all resources and data become permanent deleted.",
        "Nevermind": "Don't worry",
        "Team Name": "Team Name",
        "The team \\ 's name and owner information.": "The team \\' s name and owner information.",
        "Team Owner": "Team Owner",
        "Saved.": "Saved.",
        "Save": "Save",
        "Team Details": "Team Details",
        "Create a new team to collaborate with others on projects.": "Create a new team to collaborate with others on projects.",
        "Create": "Create",
        "Add Team Member": "Add team member",
        "Add a new team member to your team, allowing them to collaborate with you.": "Add a new team member to your team, allowing them to collaborate with you.",
        "Please provide the email address of the person you would like to add to this team.": "Please provide the email address of the person you would like to add to this team.",
        "Email": "Email",
        "Role": "Role",
        "Added.": "Added.",
        "Add": "Add",
        "Pending Team Invitations": "Pending team invitations",
        "These people have been invited to your team and have been sent an invitation email. They may join the team by accepting the email invitation.": "These people have been invited to your team and have been sent an invitation email. They may join the team by accepting the email invitation.",
        "Team Members": "Team Members",
        "All of the people that are part of this team.": "All of the people that are part of this team.",
        "Leave": "Leave",
        "Remove": "Remove",
        "Manage Role": "Manage Role",
        "Leave Team": "Leave Team",
        "Are you sure you would like to leave this team?": "Are you sure you want to leave this team?",
        "Remove Team Member": "Remove team member",
        "Are you sure you would like to remove this person from the team?": "Are you sure you want to remove this person from the team?",
        "Absence": "Absence",
        "Report": "Report",
        "Account Settings": "Account Settings",
        "Confirm Password": "Confirm Password",
        "For your security, please confirm your password to continue.": "For your security, please confirm your password to continue.",
        "Confirm": "Confirm",
        "Password": "Password",
        "Name": "Name",
        "Already registered?": "Already registered?",
        "Register": "Register",
        "Reset Password": "Reset Password",
        "Please confirm access to your account by entering the authentication code provided by your authenticator application.": "Please confirm access to your account by entering the authentication code provided by your authentication application.",
        "Please confirm access to your account by entering one of your emergency recovery codes.": "Please confirm access to your account by entering one of your emergency recovery codes.",
        "Code": "Code",
        "Recovery Code": "Recovery Code",
        "Use a recovery code": "Use a recovery code",
        "Use an authentication code": "Use an authentication code",
        "Login": "Registration",
        "Remember me": "Keep me in mind",
        "Forgot your password?": "Did you forget your password?",
        "Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn \\ 't receive the email, we will gladly send you another.": "Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn \\ 't receive the email, we will gladly send you another. ",
        "A new verification link has been sent to the email address you provided during registration.": "A new verification link has been sent to the email address you provided during registration.",
        "Resend Verification Email": "Resend confirmation email",
        "Logout": "Log out",
        "Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.": "Have you forgotten your password? No problem. Just let us know Include your email address and we will email you a password reset link so you can choose a new one. ",
        "Email Password Reset Link": "Link to reset the email password",
        "Employees": "employees",
        "Employee:: name": "Employee:: name",
        "You have been invited to join the: location team!": "You have been invited to join the: location team!",
        "If you do not have an account, you may create one by clicking the button below. After creating an account, you may click the invitation acceptance button in this email to accept the team invitation:": "If you don't have an account, you can You create an account by clicking the button below. After creating an account, you can click the Accept Invitation button in that email to accept the team invitation: ",
        "If you already have an account, you may accept this invitation by clicking the button below:": "If you already have an account, you can accept this invitation by clicking the button below:",
        "If you did not expect to receive an invitation to this team, you may discard this email.": "If you did not expect to receive an invitation to this team, you can discard this email.",
        "Time tracking": "Time tracking",
        "Manage Account": "Manage Account",
        "Profile": "Profile",
        "API Tokens": "API Tokens",
        "Dashboard": "Instrument panel",
        "Profile Information": "Profile Information",
        "Update your account \\ 's profile information and email address.": "Update your account \\' s profile information and email address.",
        "Photo": "Photo",
        "Select A New Photo": "Select a new photo",
        "Remove Photo": "Remove Photo",
        "Delete Account": "Delete Account",
        "Permanently delete your account.": "Permanently delete your account.",
        "Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.": "Once your account has been deleted, all resources and data will be permanent Before deleting your account, download any data or information you want to keep. ",
        "Are you sure you want to delete your account? Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Are you sure you want to delete your account? Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.",
    
        "Two Factor Authentication": "Two-Factor Authentication",
        "Add additional security to your account using two factor authentication.": "Add additional security to your account by using two factor authentication.",
        "You have enabled two factor authentication.": "You have enabled two-factor authentication.",
        "You have not enabled two factor authentication.": "You have not enabled two-factor authentication.",
        "When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone \\ 's Google Authenticator application.": "When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone \\ 's Google Authenticator application. ",
        "Two factor authentication is now enabled. Scan the following QR code using your phone \\ 's authenticator application.": "Two factor authentication is now enabled. Scan the following QR code using your phone \\' s authenticator application.",
        "Store these recovery codes in a secure password manager. They can be used to recover access to your account if your two factor authentication device is lost.": "Save these recovery codes in a secure password manager. They can be used to access.",
        "Enable": "Activate",
        "Regenerate Recovery Codes": "Regenerate recovery codes",
        "Show Recovery Codes": "Show recovery codes",
        "Disable": "Deactivate",
        "Browser Sessions": "Browser Sessions",
        "Manage and logout your active sessions on other browsers and devices.": "Manage and logout your active sessions on other browsers and devices.",
        "If necessary, you may logout of all of your other browser sessions across all of your devices. Some of your recent sessions are listed below; however, this list may not be exhaustive. If you feel your account has been compromised, you should also update your password. ": " If necessary, you can log out of all other browser sessions on all of your devices. Some of your most recent sessions are shown below. However, this list may not be complete. If you think your account has been compromised, you should also update your password. ",
        "This device": "This device",
        "Last active": "Last activity",
        "Logout Other Browser Sessions": "Log out other browser sessions",
        "Done.": "Done.",
        "Please enter your password to confirm you would like to logout of your other browser sessions across all of your devices.": "Please enter your password to confirm that you want to log out of your other browser sessions on all of your devices . ",
        "Update Password": "Renew Password",
        "Ensure your account is using a long, random password to stay secure.": "Make sure your account is using a long, random password to ensure security.",
        "Current Password": "Current Password",
        "New Password": "New Password",
        "Add project": "Add project",
        "Project": "Project",
        "Project Name": "Project Name",
        "Customer Order Number": "Customer Order Number",
        "Time budget for this project": "Time budget for this project",
        "Hourly rate for this project": "Hourly rate for this project",
        "Default billing type": "Standard billing type",
        "Default billing description": "Standard billing description",
        "Send Billing": "Send billing",
        "Billing from": "Billing from",
        "Billing to": "Billing to",
        "Filter": "Filter",
        "Date": "Date",
        "Hours": "Std",
        "Amount": "Quantity",
        "Description": "Description",
        "no details": "no details",
        "Payment Month": "Payment Month",
        "Payment Year": "Payment Year",
        "Assign user": "Assign user",
        "Users": "Users",
        "Time Tracking": "Time tracking",
        "Working Time": "Working time",
        "Start": "Start",
        "End": "End",
        "Please choose": "Please choose",
        "Billing Description": "Billing Description",
        "Billing Type": "Billing Type",
        "Hourly Rate": "Hourly Rate",
        "Add Pause": "Add a pause",
        "No pause yet.": "No pause yet.",
        "Add location": "Add location",
        "Location": "Place",
        "Location Name": "Location Name",
        "Add Location Member": "Add Location Member",
        "Add a new location member to your location, allowing them to collaborate with you.": "Add a new location member to your location so they can collaborate with you.",
        "Please provide the email address of the person you would like to add to this location. The email address must be associated with an existing account.": "Please provide the email address of the person you are adding to this location The email address must be associated with an existing account. ",
        "Pending Location Invitations": "Pending location invitations",
        "These people have been invited to your location and have been sent an invitation email. They may join the location by accepting the email invitation.": "These people have been invited to your location and have been sent an invitation email. They may join the location by accepting the email invitation.",
        "Cancel": "Cancel",
        "Location Members": "Location Members",
        "All of the people that are part of this location.": "All of the people that are part of this location.",
        "Leave Location": "Leave location",
        "Are you sure you would like to leave this location?": "Are you sure you want to leave this location?",
        "Remove Location Member": "Remove Location Member",
        "Are you sure you would like to remove this person from the location?": "Are you sure you want to remove this person from the location?",
        "Public holidays": "Holidays",
        "Here you can add, edit and delete public holidays for this location.": "Here you can add, edit and delete public holidays for this location.",
        "Day": "Tag",
        "Half day": "Half day",
        "No public holidays yet.": "No public holidays yet.",
        "Add Public Holiday": "Add Public Holiday",
        "Import Public Holiday": "Import public holiday",
        "Add public holiday": "Add public holiday",
        "Remove Public Holiday": "Remove Public Holiday",
        "Are you sure you would like to remove the public holiday from this location?": "Are you sure you want to remove the public holiday from this location?",
        "Import public holidays": "Import public holidays",
        "Select year for import": "Select the year for the import",
        "Select country": "Select country",
        "The Location \\ 's name and owner information.": "The Location \\' s name and owner information.",
        "Location Owner": "Location Owner",
        "Absence types for location": "Absence types for the location",
        "Absence types available for this location.": "Absence types are available for this location.",
        "Vacation": "Vacation",
        "Evaluation": "Evaluation",
        "Update": "Update",
        "No absent types for this location.": "No absent types for this location.",
        "Add Absence Type": "Add absence type",
        "Add absent type": "Add missing type",
        "Absence Type Name": "Name of the absence type",
        "Assigned employees": "Assigned employees",
        "Vacation contingent": "Vacation contingent",
        "Hours booked with this absent type should be substracted from vacation allowence.": "Hours booked with this absence type should be deducted from the vacation allowance.",
        "Affects Evaluation": "Influences the evaluation",
        "Choose if the report calculation method is affected by this absent type.": "Select whether the report calculation method is affected by this absent type.",
        "Regard Holidays": "View Holidays",
        "Holidays are taken into account (On public holidays - no vacation days are calculated. Within evaluations the holiday hours are considered, not the absence hours)": "Holidays are taken into account , not the absence times) ",
        "Assign new users": "Assign new users",
        "Assign absence type to new users automatically.": "Automatically assign the absence type to new users.",
        "Remove working sessions on confirm": "Remove the working sessions on confirmation",
        "When confirming an absence, remove all time records in the period": "When confirming an absence, remove all time records in the period",
        "Remove Absence Type": "Remove absence type",
        "Are you sure you would like to remove the absence type from this location?": "Are you sure you want to remove the absence type from this location?",
        "Overall": "Overall",
        "Overall entitled vacation": "Overall entitled vacation",
        "Used": "Used",
        "Transferred": "Transferred",
        "Rest": "rest",
        "(until: date)": "(to: date)",
        "Add Absence": "Add absence",
        "Type": "Art",
        "Status": "Status",
        "Approve": "Approve",
        "No absences yet.": "No absences yet.",
        "Add absence": "Add absence",
        "Absence Type": "Absence Type",
        "Starts at": "Starts at",
        "Ends at": "Ends at",
        "Full day": "Whole day",
        "Vacation Days": "Vacation Days",
        "Details": "Details",
        "Target Hours": "Target Hours",
        "Paid hours": "Paid hours",
        "Vacation (calculative)": "Vacation (calculative)",
        "Remove Absence": "Remove absence",
        "Are you sure you would like to remove this absence?": "Are you sure you want to remove this absence?",
        "Until today": "Until today",
        "Planned": "Planned",
        "It is": "It is",
        "Away": "Away",
        "Diff": "Diff",
        "Running Balance": "Interim balance",
        "Public holiday:": "Public holiday:",
        "Time Budget": "Time Budget",
        "Assigned Users": "Assigned Users",
        "Hours used": "Hours used",
        "Hourly rate": "Hourly rate",
        "Billing type": "Billing type",
        "Billing description": "Billing description",
        "Billing": "Billing",
        "no data yet": "No data yet",
        "Master data": "Master data",
        "Change account settings": "Change account settings",
        "Account Name": "Account Name",
        "Updated.": "Updated.",
        "Time Zone": "Time Zone",
        "Locale": "Locale",
        "Sum Trackings": "Sum Tracking",
        "Min. Punch Clock Pause": "Minimum. Punch Clock Pause",
        "Add Target Hours": "Add Target Hours",
        "Based on employees target hours, overtime will be calculated.": "Based on the target hours of the employees, overtime will be calculated.",
        "Start at": "Start at",
        "Summary": "Summary",
        "Can create overtime": "Can work overtime",
        "no target hours planned yet": "No target hours planned yet",
        "Add Target Hour": "Add Target Hour",
        "Removed.": "Removed.",
        "Add Vacation Entitlement": "Add Vacation Entitlement",
        "Here you can add the granted vacation days for this employee.": "Here you can add the granted vacation days for this employee.",
        "Transfer": "Transfer",
        "no vacations entitlements found.": "No vacations entitlements found.",
        "Add vacation entitlement": "Add vacation entitlement",
        "Edit Employee Profile": "Edit Employee Profile",
        "Edit general employee profile data.": "Edit general employee profile data.",
        "Date of employment": "Date of employment",
        "Opening overtime balance": "Open overtime credit",
        "Manage Target Hour": "Manage Target Hour",
        "Start Date": "Start Date",
        "Mode": "Mode",
        "Weekly hours": "Weekly hours",
        "Target hours based on per week": "Target hours based on per week",
        "Monthly hours": "Monthly hours",
        "Target hours based on per month": "Target hours based on per month",
        "Target Limited": "Target Limited",
        "Enable or disable overwork for this target hour plan.": "Enable or disable overwork for this target hour plan.",
        "Days": "Days",
        "Remove Time Tracking": "Remove time tracking",
        "Are you sure you would like to remove these target hours?": "Are you sure you want to remove these target hours?",
        "Manage Vacation Entitlement": "Manage Vacation Entitlement",
        "End Date": "End Date",
        "Expires": "Expires",
        "Transfer remaining entitlement": "Transfer remaining entitlement",
        "Expiration date of the transfer": "Expiration date of the transfer",
        "Are you sure you would like to remove this vacation entitlement?": "Are you sure you want to remove this vacation entitlement?",
        "Add time": "Add time",
        "Times": "Times",
        "Duration": "Duration",
        "Pause": "pause",
        "Balance": "Balance",
        "Project:": "Project:",
        "Billing Type:": "Billing Type:",
        "Billing Description:": "Billing Description:",
        "Hourly Rate:": "Hourly Rate:",
        "Invoice Number:": "Invoice Number:",
        "Are you sure you would like to remove this time entry?": "Are you sure you want to remove this time entry?",
        "Manage Location": "Manage location",
        "Manage Team": "Manage Team",
        "Create New Team": "Create New Team",
        "Switch Teams": "Switch Teams",
        "Create API Token": "Create API Token",
        "API tokens allow third-party services to authenticate with our application on your behalf.": "API tokens allow third-party services to authenticate with our application on your behalf.",
        "Token Name": "Token Name",
        "Permissions": "Permissions",
        "Created.": "Created.",
        "Manage API Tokens": "Manage API Tokens",
        "You may delete any of your existing tokens if they are no longer needed.": "You can delete all existing tokens if they are no longer needed.",
        "Last used": "Last used",
        "Delete": "Delete",
        "API Token": "API Token",
        "Please copy your new API token. For your security, it won \\ 't be shown again.": "Please copy your new API token. For your security, it won \\' t be shown again.",
        "Close": "Close",
        "API Token Permissions": "API Token Permissions",
        "Delete API Token": "Delete API Token",
        "Are you sure you would like to delete this API token?": "Are you sure you want to delete this API token?",
        "Edit": "Edit",
        "Default billing increment (minutes)": "Minimum billing unit (in minutes)",
        "Stopped": "Stopped",
        "Running": "Checked in",
        "Paused": "Paused",
        "Punch in": "Punch in",
        "auth.failed": "The user could not be authenticated.",
        "Whoops! Something went wrong.": "An error occurred",
        "Switch Location": "Change location",
        "Showing": "Show",
        "to": "from",
        "of": "of",
        "results": "Results",
        "Month:: month Year:: year": "Month:: month year:: year",
        "Previous": "Previous",
        "Next": "Next",
        "Current": "Current",
        "Public Holiday": "Public Holiday",
        "Your absence has been removed. Please check you absences for correctness.": "Your absence has been deleted. Please check your absences for correctness.",
        "The absence from: employee has been approved.": "The absence of: employee has been approved.",
        "Open Daybreak": "Open Daybreak",
        "New absence waiting for approval": "Confirm new absence",
        "Absence Status Changed.": "The status of an absence has been changed.",
        "Absence Removed": "An absence has been removed",
        ": employee created a new absence and it's waiting for approval!": ": employee has created a new absence. Please check and approve.",
        "List is empty": "The list is empty",
        "Select Filter": "Filter",
        "Add Default Resting Time": "Automatic pause times",
        "Add a default resting time to new time trackings.": "Prescribed pause times for new time records.",
        "No default durations yet.": "No automatic pauses have been set yet.",
        "Duration of the pause in minutes": "Time of the pause in minutes",
        "Pause from x hours": "Pause from x hours",
        "Add default resting time": "Add automatic rest time",
        "Remove Default Pause Time": "Delete automatic pause time",
        "Are you sure you would like to remove the default pause time from this location?": "Are you sure you want to delete the automatic pause time from this location?"
    }
    
    
    opened by Nejcc 2
  • [BUG] - Specified key was too long; max key length is 1000 bytes

    [BUG] - Specified key was too long; max key length is 1000 bytes

    On php artisan migrate:refresh --seed

      Illuminate\Database\QueryException 
    
      SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `personal_access_tokens` add index `personal_access_tokens_tokenable_type_tokenable_id_index`(`tokenable_type`, `tokenable_id`))
    
    

    Solution:

    As outlined in the Migrations guide to fix this all you have to do is edit your AppServiceProvider.php file and inside the boot method set a default string length:

    use Illuminate\Support\Facades\Schema;
    
    public function boot()
    {
        Schema::defaultStringLength(191);
    }
    
    wontfix 
    opened by nejcdev 2
  • How to run daybreak as Docker Container

    How to run daybreak as Docker Container

    I found this great project, but unfortunately I can't get it to run. I would like to run it as a Docker container, but I have seen that daybreak uses docker itself - because of sail. Is there any way to run it inside a Docker container? I'm not a fan of building a Docker container with Docker in it....

    opened by foorschtbar 2
  • Add possibility for production deployment using Docker

    Add possibility for production deployment using Docker

    Hi, I've created a production ready Dockerfile as well as a new Docker Compose stack for easy deployment of Daybreak. I also added a short quick start guide to the README. This may make it easier for users who have less experience with Laravel to get started.

    This originated primarily from my own deployment, but if it fits into the project, I'm happy to contribute something back.

    wontfix 
    opened by BluemediaGER 1
  • Error when removing a punched in time

    Error when removing a punched in time

    TypeError Argument 2 passed to App\Actions\RemoveTimeTracking::remove() must be an instance of App\Models\Location, int given, called in /Users/jakub/Desktop/WORK/Web/WWW/daybreak/app/Http/Livewire/TimeTracking/TimeTrackingManager.php on line 217

    • clicked "Punch in" in the time tracking section. It started a timer, stopped the timer. Then tried deleting the logged time and got the error above..
    wontfix 
    opened by mediashock 1
  • [Request] - disable editing Eingecheckt times for user

    [Request] - disable editing Eingecheckt times for user

    is there an option to disable edition of user that is not an admin or have permission to do that -> for Eingecheckt

    the problem is if user thry to cheat the system so i thing having some supervisor to have permission for that will be nice to have in tnx

    image

    wontfix 
    opened by nejcdev 1
  • [Suggestion] - Branching the git

    [Suggestion] - Branching the git

    Strongly suggest start branching the git workflow for your very nice project.

    • Master (release / pre-release) (lock master branch )
      • Stag (copy of production / pass all tests before marge to master )
      • Develop (Main develop branch)
        • Features/*
        • Bugs/*
        • Theme/*
        • Security/*

    :)

    opened by Nejcc 1
  • Day/Night shift

    Day/Night shift

    Is it possible to add in report how many hours user worked in day vs night.

    Day shift is from 06:00 - 22:00 Night shift is from 22:00 - 06:00

    So if user came on Monday in 19:00 and worked to Tuesday until 07:00 he would have:

    Monday Day shift = 3 hours Night shift = 2 hours

    Tuesday Day shift = 1 hours Night shift = 7 hours

    Thanks

    opened by neuralsys 0
Releases(v0.8.13)
Owner
Erik Porsche
Erik Porsche
Open Source Invoicing Solution for Individuals & Businesses

Introduction Crater is an open-source web & mobile app that helps you track expenses, payments & create professional invoices & estimates. Web Applica

Crater Invoice 6.7k Jan 4, 2023
An issue tracking tool based on laravel+reactjs for small and medium-sized enterprises, open-source and free, similar to Jira.

ActionView English | 中文 An issue tracking tool based on php laravel-framework in back-end and reactjs+redux in front-end, it's similar to Jira. You co

null 1.7k Dec 23, 2022
Package with small support traits and classes for the Laravel Eloquent models

Contains a set of traits for the eloquent model. In future can contain more set of classes/traits for the eloquent database.

Martin Kluska 3 Feb 10, 2022
A small package for adding UUIDs to Eloquent models.

A small package for adding UUIDs to Eloquent models. Installation You can install the package via composer: composer require ryangjchandler/laravel-uu

Ryan Chandler 40 Jun 5, 2022
Flexihash is a small PHP library which implements consistent hashing.

Flexihash Flexihash is a small PHP library which implements consistent hashing, which is most useful in distributed caching. It requires PHP5 and uses

Paul Annesley 364 Oct 18, 2022
A small PHP library for validating VAT identification numbers (VATINs).

VATIN A small PHP library for validating VAT identification numbers (VATINs). Installation This library is available on Packagist: $ composer require

David de Boer 128 Oct 27, 2022
Datenstrom Yellow is for people who make small websites.

Datenstrom Yellow is for people who make small websites.

Datenstrom 389 Jan 7, 2023
A package to handle the SEO in any Laravel application, big or small.

Never worry about SEO in Laravel again! Currently there aren't that many SEO-packages for Laravel and the available ones are quite complex to set up a

Ralph J. Smit 267 Jan 2, 2023
Simple address and contact management for Laravel with automatically geocoding to add longitude and latitude

Laravel Addresses Simple address and contact management for Laravel with automatically geocoding to add longitude and latitude. Installation Require t

Chantouch Sek 2 Apr 4, 2022
A simple profile management page for Filament. ✨

A simple profile page for Filament. This package provides a very simple Profile page that allows the current user to manage their name, email address

Ryan Chandler 65 Jan 5, 2023
GitScrum is a Project Management Tool, developed to help entrepreneurs, freelancers, managers, and teams Skyrocket their Productivity with the Agile methodology and Gamification.

What is GitScrum? GitScrum is a Project Management Tool, developed to help entrepreneurs, freelancers, managers, and teams Skyrocket their Productivit

GitScrum 2.8k Dec 29, 2022
Theme and asset management for laravel

Laravel-Themevel Themevel is a Laravel theme and asset management package. You can easily integrate this package with any Laravel based project. Featu

Shipu Ahamed 339 Dec 23, 2022
PlayZ is an esport event organization and management website allowing the creation of tournaments on the most popular video games of the esport scene.

PlayZ the playz to play Table of Contents Description "What is Playz?" In one sentence PlayZ is "an esport event organization and management website a

Antoine Saunier 2 Dec 7, 2021
Theme and asset management for laravel

Laravel-Themevel Themevel is a Laravel theme and asset management package. You can easily integrate this package with any Laravel based project. Featu

Shipu Ahamed 339 Dec 23, 2022
Manage your staff from one place. Featuring Staff leave management 🏖, payslips 💵 generation & emailing, messaging 📨and more 🛠! Built with ❤️ with Laravel

Staff Management System This little buddy can help you manage your staff database! Built with ?? with Laravel #FEATURES 1 Staff management/ database S

Ezekiel Oladejo 45 Jan 3, 2023
Attendize is an open-source ticketing and event management application built using the Laravel PHP framework

Attendize is an open-source ticketing and event management application built using the Laravel PHP framework. Attendize allows event organisers to sel

Attendize 3.6k Dec 27, 2022
Admin user, role and permission management for Laravel Filament

Filament Access Control Opinionated setup for managing admin users, roles and permissions within Laravel Filament Features Separate database table for

Elisha Witte 69 Jan 4, 2023
Validate your input data in a simple way, an easy way and right way. no framework required. For simple or large. project.

wepesi_validation this module will help to do your own input validation from http request POST or GET. INTEGRATION The integration is the simple thing

Boss 4 Dec 17, 2022
Module Management In Laravel

Laravel-Modules Laravel laravel-modules 5.4 ^1.0 5.5 ^2.0 5.6 ^3.0 5.7 ^4.0 5.8 ^5.0 6.0 ^6.0 7.0 ^7.0 8.0 ^8.0 nwidart/laravel-modules is a Laravel p

Nicolas Widart 4.6k Dec 29, 2022