No description
Find a file
2024-03-19 19:14:55 +01:00
.github/workflows Github actions CI for db migrations 2024-03-08 07:42:11 +01:00
backend Added isProjectManager function to db.go and corresponding test to db_test.go 2024-03-19 19:14:55 +01:00
container Containerfile fix for new path to main 2024-03-13 14:03:26 +01:00
frontend New typescript types from tygo 2024-03-19 16:50:16 +01:00
.containerignore Updating containerignore 2024-02-20 18:56:10 +01:00
.gitignore ignore go.work.sum 2024-03-18 15:12:11 +01:00
BUILD.md Windows note fixed 2024-02-20 14:21:31 +01:00
go.work.sum ignore go.work.sum 2024-03-18 15:12:11 +01:00
Justfile Justfile save-release target now saves image with name containing commit hash and date 2024-03-19 04:02:04 +01:00
LICENSE License 2024-02-12 12:29:47 +01:00
Makefile Test script 2024-03-17 01:55:24 +01:00
package-lock.json Refactor, lint removal 2024-03-14 11:23:57 +01:00
README.md Better readme build instructions for windows 2024-03-15 12:30:37 +01:00
testing.py Added GetWeeklyReportsUser function and handler, also corresponding tests to both GetWeeklyReportsUser and handler added 2024-03-19 19:04:45 +01:00

TTime

Time Tracking Platform


Introduction

A time tracking platform that allows users to track their time and generate reports.

Build Instructions

The full build instruction is available here.
For developers specializing in the backend, there is documentation here.
For developers specializing in the frontend, there is documentation here.

Dependencies:

Fedora/Red Hat

If you're on Fedora/Red Hat derivatives, this is as simple as:

sudo dnf install -y make golang nodejs podman just

Debian/Ubuntu

Any Debian/Ubuntu-based distro:

sudo apt install -y make golang nodejs podman
sudo apt install -y just # For Ubuntu

Arch Linux

Arch Linux & derivatives:

sudo pacman -S make go nodejs npm podman just

MacOS

MacOS: (Requires Homebrew) (Untested)

brew install make go nodejs npm podman just

Windows

Vanilla Windows

The project should now build properly on Windows, given the dependencies:

With chocolatey, you can install these dependencies with the following commands:

choco install -y golang nodejs

Note that none of the convenience tools (Make, Podman, Just*) are available on Windows.

*Just is available, but the targets are written for a Unix-like environment.

Windows Subsystem for Linux (WSL)

Unfortunately, Windows Subsystem for Linux (WSL) is required for the build process. Running any form of containerized workload on windows is currently unsupported. More info here. From my understanding, WSL also requires virtualization extensions to be enabled in the BIOS, which is not always the case for all users.

It is possible to run the code on Windows, but this will be without the use of containers or any other build tools that are not available on Windows. You will also eventually need to install the database server, which will not be containerized.

My recommendation would be to make WSL your primary development environment if you are on Windows. This will drop you into an Ubuntu environment, in which you can follow the instructions above.

You should consult the WSL documentation, but for any recent version of windows, installation essentially boils down to running the following command in PowerShell as an administrator:

wsl --install -d Ubuntu-22.04 # To get a somewhat recent version of Go

After this, you can open a (wsl) terminal and run the commands:

sudo apt update && sudo apt upgrade
sudo apt install -y make podman

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go

# For a recent version of node:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install node

If you get any errors related to virtualization, you will need to enable virtualization in the BIOS. This is a common issue, and you can find a guide for your specific motherboard online. This is a one-time operation and will not affect your windows installation. This setting is usually called "VT-x" or "AMD-V" and is usually found in the CPU settings.