Timesheet
Web application to report consulting hours on projects using selected rates on a weekly bases. Supports export into csv.
Requirements
- Linux, Windows or MacOS
- DB connection to PostgreSQL - configute in timesheet.yaml
- Initiallize the DB using command
timesheet db --clean
- Import initial data in csv format using command
timesheet db --load all
- (dates should be entered in ISO format YYYY-MM-DD HH:MM:SS)
- consultants, projects, rates, holidays, initial reported records - optional
Screenshots
Download
- Releases (MS Windows 64bit, Linux 64bit, Mac OS X 64bit)
Usage
Web based timesheet application with DB persistence.
Application reads DB and server configuration from config.toml, loads default data if DB is empty and launch web GUI.
Usage:
timesheet [command]
Available Commands:
db Loads or cleans DB. See timesheet help db
help Help about any command
routes Prints the list of all available routes
server Starts the server on URL and port defined in config.yaml
Flags:
--config string config file (default is ./timesheet.yaml)
-h, --help help for timesheet
-v, --version Prints application versions
Use "timesheet [command] --help" for more information about a command.
Standing on the shoulders of giants
Go, Vue, Vuetify, PostgreSQL
Backend
Frontend
Todo
- IMPORTANT
- always show full week, calculate month inputs correctly
- auto retrieve weekly data from backend when week is changed
- overview
- show in days
- edit overtime and total working time per week, month
- compare weekly reported time against nominal total time
- Export plugin to excel and csv
Fixes
- implement rollback in js store if DB fails
- Edit records
- do not save the value id ESC is pressed
Improvements business
- Ability to lock last week
- Add validations on entered data
- Show only available rates per project
- Paginate and sort server-side - using vuetify data table
- Consistency checks
- Add billing evidence
- Export to csv plugin
Improvements technical
/* eslint-disable-line no-console */
To get started
# clone repository
go get github.com/valasek/timesheet
cd $GOPATH/src/github.com/valasek/timesheet
# install Go dependencies (and make sure ports 3000/8080 are open)
go get -u ./...
go run timesheet.go
# open a new terminal and change to the client dir
cd client
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run serve
# build for production with minification
npm run build
License
MIT license - see LICENSE for more details