{"id":20380565,"url":"https://github.com/peterbrain/tars","last_synced_at":"2026-04-11T17:03:43.817Z","repository":{"id":41041921,"uuid":"175569104","full_name":"PeterBrain/tars","owner":"PeterBrain","description":"TARS - Time and Activity Recording Software","archived":false,"fork":false,"pushed_at":"2022-12-15T23:53:43.000Z","size":341,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-15T07:32:34.636Z","etag":null,"topics":["activity-management","activity-recording","hibernate","java","mysql","spring","spring-data-jpa","spring-mvc","spring-security","thymeleaf","time-management","time-recording"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PeterBrain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-03-14T07:21:40.000Z","updated_at":"2023-07-18T09:09:39.000Z","dependencies_parsed_at":"2023-01-29T06:00:47.593Z","dependency_job_id":null,"html_url":"https://github.com/PeterBrain/tars","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterBrain%2Ftars","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterBrain%2Ftars/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterBrain%2Ftars/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterBrain%2Ftars/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PeterBrain","download_url":"https://codeload.github.com/PeterBrain/tars/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241929754,"owners_count":20044019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activity-management","activity-recording","hibernate","java","mysql","spring","spring-data-jpa","spring-mvc","spring-security","thymeleaf","time-management","time-recording"],"created_at":"2024-11-15T02:07:51.571Z","updated_at":"2025-12-31T01:03:19.163Z","avatar_url":"https://github.com/PeterBrain.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TARS - Time and Activity Recording Software\n\n## Purpose\nThis piece of software should help memebers of a company, and the company itself, to manage working hours and activities on different projects. Therefore TARS - Time and Activity Recording Software (pretty self-explaining).\n\n## Setup Guide\n1. Clone github repo\n1. In Eclipse select `File` -\u003e `Import` -\u003e `Existing Projects into Workspace` -\u003e `Browse Folder` -\u003e `Finish`\n1. Check Project-Properties (Java Build Path, Targeted Runtimes, ...)\n1. Create and fill `src/db.properties` file as shown below\n1. Edit `WebContent/WEB-INF/dispatcher-servlet.xml` at bean with `id=\"mailSender\"` and set username and password for [mailtrap.io](https://mailtrap.io/)\n1. Publish project to Tomcat and start Tomcat\n1. Open Web application ([http://localhost:8080/Tars/](http://localhost:8080/Tars/))\n1. Call [http://localhost:8080/Tars/fillUsers](http://localhost:8080/Tars/fillUsers) to fill the database with testing data\n1. Log in with credentials (Pattern: [username]/[password]): admin/password, user/password\n\n**`db.properties`** file at the root of **`src`** folder:\n```\ndb.url=jdbc:mysql://localhost/xxx\ndb.username=xxx\ndb.password=xxx\n```\n\n**`dispatcher-servlet.xml`** file at the root of **`WebContent/WEB-INF`** folder:\n```xml\n\u003cbean id=\"mailSender\" class=\"org.springframework.mail.javamail.JavaMailSenderImpl\"\u003e\n    \u003cproperty name=\"host\" value=\"smtp.mailtrap.io\" /\u003e\n    \u003cproperty name=\"port\" value=\"2525\" /\u003e\n    \u003cproperty name=\"username\" value=\"xxxxxxxxxxxxxxx\" /\u003e \u003c!-- edit this value --\u003e\n    \u003cproperty name=\"password\" value=\"xxxxxxxxxxxxxxx\" /\u003e \u003c!-- edit this value --\u003e\n\n    \u003cproperty name=\"javaMailProperties\"\u003e\n        \u003cprops\u003e\n            \u003cprop key=\"mail.smtp.auth\"\u003etrue\u003c/prop\u003e\n            \u003cprop key=\"mail.smtp.starttls.enable\"\u003etrue\u003c/prop\u003e\n        \u003c/props\u003e\n    \u003c/property\u003e\n\u003c/bean\u003e\n```\nFill in your username and password of [mailtrap.io](https://mailtrap.io/)!\n\n## Available Users\nThe table below shows some available users added by the `/fillUsers` call. The password for all users is `password`.\n\n| Username      | Role           |\n| :------------ | :------------- |\n| admin         | ADMIN          |\n| projectleader | PROJECT-LEADER |\n| user          | USER           |\n| lindsey       | PROJECT-LEADER |\n| charlene      | USER           |\n| tim           | PROJECT-LEADER |\n| devin         | USER           |\n| nancy         | PROJECT-LEADER |\n\n## Workload distribution\nThe table below shows the members of the team, who worked on specific features. At the end of the project all team members worked on each feature in the backend and frontend.\n\n| Feature / Work        | Team Member(s)                         |\n| :-------------------- | :------------------------------------- |\n| User Management       | Köstinger Nikolaus, Löcker Peter       |\n| Entries               | Kazianschütz Kevin, Löcker Peter       |\n| Projects \u0026 Categories | Kazianschütz Kevin, Löcker Peter       |\n| Export                | Löcker Peter                           |\n| Security Messages     | Kazianschütz Kevin, Köstinger Nikolaus |\n| Charts                | Köstinger Nikolaus                     |\n| Modification History  | Kazianschütz Kevin, Köstinger Nikolaus |\n\n## Lessons learned\n* The most difficult part has to do with FetchType.Lazy. We didn't manage to get this working (so used EAGER)\n* At first we used DAOs and entitiyManager for database queries. Later on it was much more difficult to add Spring Data JPA to the project. It would have saved us some time, if we had used it from the beginning.\n* Time \u0026 activity recording (who did what?) was difficult at the end. We should have used this software for this project. How recursive is that?\n\n## Contributors\n* [@xK3v](https://github.com/xK3v) - Kazianschütz Kevin\n* [@DiOps](https://github.com/DiOps) - Köstinger Nikolaus\n* [@PeterBrain](https://github.com/PeterBrain) - Löcker Peter\n\n---\nThis project was set up for the \"Software engineering advanced\" lecture at [FH JOANNEUM](https://www.fh-joanneum.at/) Graz.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterbrain%2Ftars","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterbrain%2Ftars","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterbrain%2Ftars/lists"}