Giter VIP home page Giter VIP logo

solidtime's Introduction

solidtime - The modern Open-Source Time Tracker

GitHub License Codecov GitHub Actions Unit Tests Status PHPStan badge

Screenshot of the solidtime application with header: solidtime - The modern Open-Source Time Tracker

solidtime is a modern open-source time tracking application for Freelancers and Agencies.

Features

  • Time tracking: Track your time with a modern and easy-to-use interface
  • Projects: Create and manage projects and assign project members
  • Tasks: Create and manage tasks and assign tasks to project members
  • Clients: Create and manage clients and assign clients to projects
  • Billable rates: Set billable rates for projects, project members, organization members and organizations
  • Multiple organizations: Create and manage multiple organizations with one account
  • Roles and permissions: Create and manage organizations
  • Import: Import your time tracking data from other time tracking applications (Supported: Toggl, Clockify, Timeentry CSV)

Local setup for development

System requirements

  • Docker

First you need to download or clone the repository f.e. with [email protected]:solidtime-io/solidtime.git.

After that, execute the following commands inside the project folder:

docker run --rm \
    --pull=always \
    -v "$(pwd)":/opt \
    -w /opt \
    laravelsail/php83-composer:latest \
    bash -c "composer install --ignore-platform-reqs"

cp .env.example .env

./vendor/bin/sail up -d

./vendor/bin/sail artisan key:generate

./vendor/bin/sail artisan migrate:fresh --seed

./vendor/bin/sail php artisan passport:install

./vendor/bin/sail npm install

./vendor/bin/sail npm run build

Make sure to set the APP_PORT and VITE_PORT inside your .env file to a port that is not already used by your system.

By default the application will run on localhost:8083

Setup with Reverse Proxy

Additional System Requirements

Add the following entry to your /etc/hosts

127.0.0.1 solidtime.test
127.0.0.1 playwright.solidtime.test
127.0.0.1 vite.solidtime.test
127.0.0.1 mail.solidtime.test

Running E2E Tests

./vendor/bin/sail up -d will automatically start a Playwright UI server that you can access at https://playwright.solidtime.test. Make sure that you use HTTPS otherwise the resources will not be loaded correctly.

Recording E2E Tests

To record E2E tests, you need to install and execute playwright locally (outside the Docker container) using:

npx playwright install
npx playwright codegen solidtime.test

E2E Troubleshooting

If E2E tests are not working at all, make sure you do not have the Vite server running and just run npm run build to update the version. If the E2E tests are not working consistently and fail with a timeout during the authentication, you might want to delete the test-results/.auth directory to force new test accounts to be created.

Generate ZOD Client

The Zodius HTTP client is generated using the following command:

npm run zod:generate

Contributing

This project is in a very early stage. The structure and APIs are still subject to change and not stable. Therefore, we do not currently accept any contributions, unless you are a member of the team.

As soon as we feel comfortable enough that the application structure is stable enough, we will open up the project for contributions.

Security

Looking to report a vulnerability? Please refer our SECURITY.md file.

License

This project is open-source and available under the GNU Affero General Public License v3.0 (AGPL v3). Please see the license file for more information.

solidtime's People

Contributors

onatcer avatar korridor avatar dependabot[bot] avatar

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.