Skip to content

A simple demonstration web-app of a multi-user time management system

Notifications You must be signed in to change notification settings

crummy/time-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Time Management

A simple multi-user time management system created to demonstrate a fully-functioning web-app.

Frontend in Svelte, backend in Kotlin with Ktor and kotlinx.serialization, with persistence in SQLite via Exposed. Packaged up with Docker.

Instructions

Docker

The easiest way to build, assuming you have Docker installed:

  • docker build . -t timemanagement
  • docker run --rm -p 8080:8080 timemanagement
  • Visit http://localhost:8080 in a web browser

This uses a multi-stage build process for an efficient final image.

Manual

  • Install UI dependencies: cd ui && npm install
  • Build the UI: cd ui && npm run build
  • Build the backend: mvn package
  • Run the app: java -jar target/time-management-1.0-SNAPSHOT-jar-with-dependencies.jar
  • Visit http://localhost:8080 in a web browser

To run tests, run mvn test.

Notes

Upon login, users have ADMIN permission by default. This is for demonstration purposes only.

Security is handled by a session ID in a HttpOnly cookie, with passwords hashed with PBKDF2 and salted. The salted can be overridden with a PASSWORD_HASH environment variable. There is no requirement for password complexity.

TODO

Fixes required:

  • Populate database with default users, instead of having admins by default.
  • Regular users don't have the colouring feature implemented.
  • For admins, there's missing the green colouring for entries.
  • No pagination nor lazy loading implemented.
  • Managers have access to the user's entries but not to the user's profiles.
  • When admin deletes himself, he can still use the app.

About

A simple demonstration web-app of a multi-user time management system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published