Coder Social home page Coder Social logo

kimai / www.kimai.org Goto Github PK

View Code? Open in Web Editor NEW
18.0 6.0 88.0 104.83 MB

Website for the Kimai time-tracker

Home Page: https://www.kimai.org

License: GNU Affero General Public License v3.0

Ruby 0.26% HTML 92.97% SCSS 2.73% JavaScript 0.68% PHP 3.11% Shell 0.24%
kimai kimai-timetracking jekyll-site tabler

www.kimai.org's Introduction

Kimai logo

CI Status Code Coverage Latest stable version License Mastodon

Kimai - time-tracker

Kimai is a professional grade time-tracking application, free and open-source. It handles use-cases of freelancers as well as companies with dozens or hundreds of users. Kimai was build to track your project times and ships with many advanced features, including but not limited to:

JSON API, invoicing, data exports, multi-timer and punch-in punch-out mode, tagging, multi-user - multi-timezones - multi-language (over 30 translations existing!), authentication via SAML/LDAP/Database, two-factor authentication (2FA) with TOTP, customizable role and team permissions, responsive design, user/customer/project specific rates, advanced search & filtering, money and time budgets, advanced reporting, support for plugins and so much more.

Versions

There are two versions of Kimai existing:

  • Version 2 — the current stable release (PHP 8.1+)
  • Version 1 — EOL since mid of 2023 (PHP 7.4)

Do NOT use Version 1, it won't get any more updates!

Links

Requirements

  • PHP 8.1.3 minimum
  • MariaDB or MySQL
  • A webserver and subdomain (subdirectory is not supported)
  • PHP extensions: gd, intl, json, mbstring, pdo, tokenizer, xml, xsl, zip

Support for PHP 8.2 and 8.3.

Installation

There are also documentations for:

And if you don't want to host Kimai, you can use the Cloud version of it.

Updating Kimai

Plugins

Roadmap and releases

You can see a rough development roadmap in the Milestones sections. It is open for changes and input from the community, your ideas and questions are welcome.

Release versions will be created on a regular basis, every couple of weeks latest. Every code change, whether it's a new feature or a bugfix, will be done on the main branch.

Contributing

You want to contribute to this repository? This is so great! The best way to start is to open a new issue for bugs or feature requests or a discussion for questions, support and such.

In case you want to contribute, but you wouldn't know how, here are some suggestions:

  • Spread the word: Please write a testimonial for our Wall of love, vote for Kimai on any software platform, you can toot or tweet about it, share it on LinkedIn, Reddit and any other social media platform!
  • Answer questions: You know the answer to another user's problem? Share your knowledge.
  • Something can be done better? An essential feature is missing? Create a feature request.
  • Report bugs makes Kimai better for everyone.
  • You don't have to be programmer, the documentation and translation could always use some attention.
  • Sponsor the project: free software costs money to create!

There is one simple rule in our "Code of conduct": Don't be an ass!

Credits

Kimai is based on modern technologies and frameworks such as PHP, Symfony and Doctrine, Bootstrap and Tabler, and countless others.

www.kimai.org's People

Contributors

alexandreptj avatar bharat-b avatar brookedot avatar cngjo avatar dependabot[bot] avatar github-actions[bot] avatar infeeeee avatar j0hannesr0th avatar jens-2305 avatar katjaglassconsulting avatar kernie avatar kevinpapst avatar kubof avatar liaraalis avatar lnngyn1 avatar lucienn3 avatar maarten-k avatar marcovannoord avatar mariusgoehring avatar milotype avatar orestbit avatar owlysk avatar raphaellaurent avatar scriptkiddi avatar sharky98 avatar simonschaufi avatar tbm avatar theapu avatar tobybatch avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

www.kimai.org's Issues

Text alignement in the footer

Please check the problem at https://www.kimai.org/hr/.
Take look at the screenshots and change/correct the CSS for text alignement for narrow windows/screens.
The problem exist not just for the Croatian translation.

  • 435 px screen width
    CSS ul footer 435 px screen width

  • 756 px screen width
    CSS ul footer 756 px screen width

Currency Symbol not showing in Report

In the following Report the Currency Symbol is showing:

  • weekly report one User
    grafik

In the following Reports the Currency Symbol is NOT showing in the sum:

  • monthly report one User
  • yearly report one User
    grafik

In the following Reports the Currency Symbol is NOT showing at all:

  • weekly report all Users
  • monthly report all Users
  • yearly report all Users
    grafik

Kimai running on Kubernetes Cluster on RPi kimai2:apache-2.6.0-prod, Database mysql:8.2.0

Bug in the "Features" webpage

Please check and repair the "Features" webpage.

The section with the "What can Kimai do for you?" contents appears twice before the section with headers "The best time-tracking features for you" and "Tech & Business Support".

This happens in other languages too!

iPhone 6 not working (was: Allow line break in header)

Problem
When viewing the website with my iPhone 6 the header/titel Kimai time-tracker has an overlapping issue in Croatian.

  • In Portrait mode, the "Cloud" icon can be accesses, but the Menu icon not!
    kimai-portrait

  • In landscape mode, the language options overlapp the header text at certain widths!
    kimai-landscape

Solution
Redesign (do some CSS changes) <div class="header py-4">. For instance, allow text wrapping - currently you have white-space: nowrap; in the CSS .header-brand.

Feature request
Enable the website to recognize the user's/browser's locale settings. That way you would not need the language-switch div at all (but you could keep the language options in the menu).

I'm not a programmer and don't really know how to do that without breaking other stuff. So I hope you can solve the issue yourself :-(

Add clear cache for translations to be displayed

The translation guide does not state the need for the cache to be cleared. Without cache being cleared, translations do not show up. I was sitting and wondering why my language did not show up for a while.

bin/console cache:clear

Missing main website menu on the Documentation page

Problem:
When switching to the Documentation webpage, there is no menu to change the language nor navigate to other webpages (Home, About Kimai, Demo, etc.).

Depending upon the width of the screen (browsers window) there is only the menu for the Documentation page

Missing languages main menu and cloud

or the Cloud button and the menu for the Documentation page itself

Missing languages and main menu

What should happen:
In both cases there should be a menu to change the language and to navigate to other webpages (Home, About Kimai, Demo, etc.) just as on the other webpages.

Suggestion:

  • Add the main website menu in the header of the Documentation page, just like all other website pages have it, in order to enable navigation to other webpages.
  • Add some sort of a submenu for the Documentation page.
  • Maybe you can implement some sort of grouping within the menu.

Maybe you can use the fa-language icon or the fa-globe icon (which you use for the https://www.kimai.cloud/ website) to select languages, just as you use the fa-cloud icon of the Font Awesome font. When clicking the "language" icon, a dropdown menu should appear to select the language.

I would like to help you out with this issue, but I'm not a programmer :-(

Automatic language detection for the website

Feature request:
Implement automatic language detection for the website Kimai - Open Source time-tracker according to the language setting of the user's browser or the user's system language setting.

If you don't want that, I'd suggest to place the language dropdown menu into the navigation bar at the top of the webpage instead of at the footer of the webpage.

remove ugly stolen AI junk from your landing page

Is this really how you wanna sell your project? Lazy, stolen images? They look horrible and completely clash with your green branding. You couldnt even be bothered to properly photoshop the messed up looking text. They all have 0 cohesion, each with completely different backgrounds and colours.

Add standard / default values

Kevin, awesome product, it´s possible to add standard / default values (project and activity) to a customer?
When pressing on start at time tracking?
Also as an additional plugin in the shop.
Description:
Finish:

  1. Start timetrack,
    default is XY project
    and
    default is XY activity

Actually:

  1. Start timetrack
  2. Set project
  3. Set activity

Language specific content

  • Setup a dedicated screenshot environment
  • Create screenshots that match the language of the current page.
  • This is especially true for the dedicated country domains www.kimai.tw and www.kimai.co.il
  • All links to the demos should lead to the language specific version of the demo

ping @yarons FYI

Translation

Hello,
I had been testing kimai with different languages,
I add new translations in *.ar.xlf but not reloaded in webpage.
Do I need to send PR ? or these changes can take effects locally while translating the text?

Thank you

[Docs] Lockdown period documentation have faulty link

The documentation for the Lockdown period links the PHP documentation of the relative date format, but the page does not exist. I suspect they moved it.

The lockdown feature will only be activated if all of these fields are configured with a [relative date format](https://www.php.net/manual/en/datetime.formats.relative.php).

SQL documentation uses LEFT JOIN

Describe the issue

On the page https://www.kimai.org/documentation/sql-examples.html

it shows several SQL queries.

Here is one example:

SELECT
    c.name as Customer,
    u.username as Username,
    u.alias as User,
    FORMAT(SUM(t.duration) / 3600, 0) as Duration
FROM
    kimai2_timesheet t
        LEFT JOIN kimai2_projects p on t.project_id = p.id
        LEFT JOIN kimai2_customers c on p.customer_id = c.id
        LEFT JOIN kimai2_users u on t.user = u.id
GROUP BY
    c.id, t.user, c.name, u.username, u.alias
;

This shows LEFT JOIN on projects and users. But it also seems from the GUI that those are required fields. If that is case then these should instead be JOIN instead.

I already tried

Kimai version

2

How do you run Kimai?

KIMAI CLOUD

Which PHP version are you using?

8.1

Logfile

No response

Screenshots

No response

Clear Cache Functionality

Would it be possible to add a plugin that would allow us to clear cache from Kimai? When editing templates, it can take a lot of time to edit code, clear cache, edit code, clear cache.

Outdated doku of plugin development

The documentation seems to be outdated for Kimai2.

E.g. the doku states that a composer.json file with the following part should be created and no string for v2 of kimai.
"extra": { "kimai": { "require": "1.3", "name": "YourBundle" } }
However for require the number 2000 should be used as further explained.

Trying to create a plugin with this guide failed for me. I only managed to create one while reconstructing from the DemoBundle. For me this means the guide is partly outdated.

Cloud registration: `ERROR: This value is already in use` persists after first entry

When signing up for kimai cloud, the website asks the user to pick a name for their cloud, which gets created as a subdomain on the kimai.cloud domain. As such, each user must select a unique name.

After the first entry, the ERROR: This value is already in use will stay active, even after the text box is cleared. Future entries (that are unique), will not clear the error.

The user can bypass this bug by selecting the checkbox and agreeing to the terms and conditions then clicking save, however as the save button is greyed out, this isn't obvious and could be improved by having the error message disappear and the button return to its active clickable state after the text field is cleared from the original entry, or when a new unique cloud name is successfully entered.

Test RTL languages

@yarons thank you for your continuous support with translations ❤️

But I need to ask for a favor. I worked a lot this weekend to simplify translation of the website, without me having to fiddle in thousand files. That's why there popped up so many new translation keys for the www.kimai.org component.

Now I activated Chinese first, because it was 100% translated (at least before I added all the new keys 😁). Next I wanted to enable Hebrew, but on the website I haven't had RTL support. So I added that tonight. And I added the Hebrew pages, but did not really activate them, because I wanted you to double check it before adding them to the language dropdown menu.

So here finally comes the question:
Can you please check if everything looks correct at https://www.kimai.org/he/ and let me know which issues you see.

Add search to user manual / documentation

Describe the problem

Having a search feature in the user manual would make it much easier to find information quickly.

Describe the solution you'd like

A search function.

Describe alternatives you've considered

No response

Screenshots

No response

[Feat] Suggestion of adding Elestio as one-click deploy option with others

Hey team,
I am Kaiwalya, Developer Advocate at Elestio. Elestio has been providing options of fully deploying and managing Kimai application as shown here. I think it would be a great idea if we can add it to official readme/documentation here.
In addition to this, if you are interested we provide collaboration opportunities with tools we support by revenue share upon addition of this method in docs. If you would like to collaborate, just drop me an email at [email protected] :)

php package php8.1-gd missing in installation documentation

In file _documentation/fresh-ubuntu-20.md we have the line apt install php8.1-fpm php8.1-cli php8.1-common php8.1-opcache php8.1-readline php8.1-xml php8.1-zip php8.1-intl php8.1-mbstring php8.1-mysql php8.1-curl.

During the installation procedure it is said that php8.1-gd is missing. It could be added to the line.

[Docs] Lockdown period documentation seems not to align with implementation code

When looking through the docs for the translation, I was wondering how the lockdown period worked. The docs seems to not be aligned with how src/Timesheet/LockdownService.php is working in few points.

Relative to now

It seems that the lockdown period are not checked against now for neither start or end, but are used (almost) as-is to create a new DateTimeImmutable.

While I understand that PHP will check the relative string to now with string like -2 weeks, it won't do it if provided a more "fixed" relative string such as last day of next month1.

I would suggest removing reference to relative to now in the docs (and translations to start, end) to avoid confusion.

Grace Relative to lockdown end period

Here, the docs seems to tell us that the relative date string will be used against the end of the lockdown period, but could be modified with the of modifier. However this seems partly true when looking at the code. It seems that the grace period is used to modify the lockdown end period. So, if I understand the code correctly, if the grace period is +2 weeks, it works as expected (2 weeks after the lockdown end period). However, if the grace period is last day of next month and this is applied on the lockdown end period, this would mean that the grace period would be extended more than expected2.

Activating the lockdown

The docs tell us the lockdown will be active if all three fields are populated. But the code seems to check only for start and end, not grace.

Footnotes

  1. OK, it still uses now to be relative to. However this is not within an arithmetic calculation. And the user could provide a fixed month and year such as last sat of July 2008 (but why?!).

  2. Like if the lockdown is set to last day of next month and grace to last day of next month, relative to today (2024-01-26), the lockdown will end on 2024-02-29 but the grace period will be set to 2024-03-31, while the docs seems to tell us that using of will bring it to relative to today.

Hashtag missing

i am trying to install kimai.

but I miss the Hashtag administration.
any Ideas?

Untranslated contents

Problem
Where/how to translate currently untranslated contents for localized web pages?

  • Contents (names and descriptions) of the Features list in the localized page Home: Mobile ready, Plugins, etc.
  • Strings "Demo will be reinstalled in …" within the <div class="card"> in the localized page Demo
  • Tags in the localized page News like Announcement, Apps & Plugins etc.
  • Tags in the localized page Marketplace like plugin, development, etc.
  • Prices in the page Marketplace should be formated with a space between the amount and currency, for instance 2,99 €. The price "Free" should be translatable!

Solution
If possible, add a component or components to the project Kimai - Time tracking for the website contents.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.