{"id":18148354,"url":"https://github.com/hmzelidrissi/dev-sync","last_synced_at":"2026-01-29T07:38:39.140Z","repository":{"id":259002054,"uuid":"864158040","full_name":"HMZElidrissi/dev-sync","owner":"HMZElidrissi","description":"Task management system using Jakarta EE \u0026 Docker + jenkins pipeline to push the image to dockerhub","archived":false,"fork":false,"pushed_at":"2024-10-21T12:07:47.000Z","size":96,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T19:21:58.618Z","etag":null,"topics":["docker","docker-compose","glassfish","jakarta","java","jee","jenkins","jpa-hibernate","jsp-servlet","junit","junit5","servlet"],"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/HMZElidrissi.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-27T15:45:46.000Z","updated_at":"2024-12-12T17:56:54.000Z","dependencies_parsed_at":"2024-10-21T16:56:03.551Z","dependency_job_id":null,"html_url":"https://github.com/HMZElidrissi/dev-sync","commit_stats":null,"previous_names":["hmzelidrissi/dev-sync"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HMZElidrissi%2Fdev-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HMZElidrissi%2Fdev-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HMZElidrissi%2Fdev-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HMZElidrissi%2Fdev-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HMZElidrissi","download_url":"https://codeload.github.com/HMZElidrissi/dev-sync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HMZElidrissi%2Fdev-sync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259227954,"owners_count":22824903,"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":["docker","docker-compose","glassfish","jakarta","java","jee","jenkins","jpa-hibernate","jsp-servlet","junit","junit5","servlet"],"created_at":"2024-11-01T23:08:21.697Z","updated_at":"2026-01-29T07:38:39.104Z","avatar_url":"https://github.com/HMZElidrissi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"#\" target=\"_blank\"\u003e\u003cimg src=\"src/main/resources/static/images/dev-sync.png\" width=\"400\" alt=\"dev-sync Logo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n# DevSync\n\nDevSync is a collaborative task management system designed for development teams. It provides features for creating,\nassigning, and tracking tasks, with a unique token system for task modifications and deletions.\n\n## Version 1.1.0\n\n- User Management: Create, view, edit, and delete user accounts\n- Task Management:\n    - Create tasks with multiple tags\n    - Assign tasks to users\n    - Mark tasks as completed\n    - View task details and lists\n- Task Constraints:\n    - Tasks cannot be created in the past\n    - Tasks must have at least 2 tags\n    - Tasks cannot be scheduled more than 3 days in advance\n    - Tasks must be marked as completed before their due date\n- Token System:\n    - Users have 2 tokens per day for replacing manager-assigned tasks\n    - Users have 1 token per month for deleting tasks\n    - Deleting self-created tasks doesn't use tokens\n\n## Version 1.2.0\n\n1. Enhanced Manager Task Replacement\n    - Managers must assign replaced tasks to another user\n    - Replaced tasks become immutable (cannot be modified or deleted with tokens)\n\n2. Dynamic Token System\n    - Token balance doubles if a manager doesn't respond to task change requests within 12 hours\n\n3. Automated Task Management\n    - System automatically marks overdue tasks as incomplete every 24 hours\n\n4. Manager Overview Dashboard\n    - View all tasks assigned to employees\n    - Task completion percentage filterable by tags, week, month, and year\n    - Track token usage per user\n\n### Technologies\n\n- Jakarta EE 9+\n- Java 11+\n- TomEE 9+\n- Maven\n- Docker\n- PostgreSQL\n\n### Setup and Installation\n\n1. Clone the repository:\n   ```\n   git clone https://github.com/HMZElidrissi/dev-sync.git\n   ```\n\n2. Navigate to the project directory:\n   ```\n   cd dev-sync\n   ```\n\n3. Build the project:\n   ```\n   mvn clean package\n   ```\n\n4. Start the project with Docker:\n   ```\n   docker-compose up --build\n   ```\n\n5. Access the application at `http://localhost:8084/dev-sync`\n\n6. To deploy the build artifact to the local Maven repository:\n   ```\n   mvn install:install-file -Dfile=\u003cpath-to-file\u003e -DgroupId=\u003cgroup-id\u003e -DartifactId=\u003cartifact-id\u003e -Dversion=\u003cversion\u003e -Dpackaging=war\n   ```\n   In this case:\n    ```\n   mvn install:install-file -Dfile=target/dev-sync.war -DgroupId=ma.hmzelidrissi -DartifactId=dev-sync -Dversion=1.1.0 -Dpackaging=war\n    ```\n7. To deploy the build artifact to a remote Maven repository:\n    - Add the following to the `pom.xml` file:\n    ```\n    \u003cdistributionManagement\u003e\n      \u003crepository\u003e\n        \u003cid\u003eremote-repository\u003c/id\u003e\n        \u003cname\u003eRemote Repository Name\u003c/name\u003e\n        \u003curl\u003ehttps://your-repository-url.com/releases\u003c/url\u003e\n      \u003c/repository\u003e\n      \u003csnapshotRepository\u003e\n        \u003cid\u003eremote-repository\u003c/id\u003e\n        \u003cname\u003eRemote Snapshot Repository Name\u003c/name\u003e\n        \u003curl\u003ehttps://your-repository-url.com/snapshots\u003c/url\u003e\n      \u003c/snapshotRepository\u003e\n    \u003c/distributionManagement\u003e\n    ```\n    - Configure Maven settings\n      In your `~/.m2/settings.xml` file (create it if it doesn't exist), add:\n    ```\n    \u003csettings\u003e\n      \u003cservers\u003e\n        \u003cserver\u003e\n          \u003cid\u003eremote-repository\u003c/id\u003e\n          \u003cusername\u003eyour-username\u003c/username\u003e\n          \u003cpassword\u003eyour-password\u003c/password\u003e\n        \u003c/server\u003e\n      \u003c/servers\u003e\n    \u003c/settings\u003e\n    ```\n   - Build the project:\n    ```\n    mvn clean package\n    ```\n    - Deploy the artifact:\n    ```\n    mvn deploy\n    ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhmzelidrissi%2Fdev-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhmzelidrissi%2Fdev-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhmzelidrissi%2Fdev-sync/lists"}