{"id":14963708,"url":"https://github.com/alessionegri/projectstracker","last_synced_at":"2026-01-22T18:43:58.765Z","repository":{"id":246803273,"uuid":"822051205","full_name":"AlessioNegri/ProjectsTracker","owner":"AlessioNegri","description":"Track features and bugs across multiple projects","archived":false,"fork":false,"pushed_at":"2024-08-11T09:44:34.000Z","size":434,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T14:18:09.104Z","etag":null,"topics":["csharp","dotnet","tracker","wpf","xaml"],"latest_commit_sha":null,"homepage":"","language":"C#","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/AlessioNegri.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-06-30T07:07:14.000Z","updated_at":"2024-09-05T20:51:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"8cbf5394-c316-4b99-b663-7e408d6630d8","html_url":"https://github.com/AlessioNegri/ProjectsTracker","commit_stats":{"total_commits":21,"total_committers":2,"mean_commits":10.5,"dds":"0.47619047619047616","last_synced_commit":"e2548812793c37bec1a5783f6c1d96135d871006"},"previous_names":["alessionegri/projectstracker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlessioNegri%2FProjectsTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlessioNegri%2FProjectsTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlessioNegri%2FProjectsTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlessioNegri%2FProjectsTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlessioNegri","download_url":"https://codeload.github.com/AlessioNegri/ProjectsTracker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248724624,"owners_count":21151561,"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":["csharp","dotnet","tracker","wpf","xaml"],"created_at":"2024-09-24T13:32:01.862Z","updated_at":"2026-01-22T18:43:58.721Z","avatar_url":"https://github.com/AlessioNegri.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProjectsTracker\n\nTrack features and bugs across multiple projects\n\n## Table Of Contents\n\n1. Introduction\n\t- Languagaes \u0026 Libraries\n\t- Project's Structure\n\t- References\n\t\t- GitHub Repositories\n2. Dashboard\n\t- Add Project\n\t- Add Solution\n\t- Edit Project\n\t- Edit Solution\n\t- Delete Project / Solution\n\t- Move Project\n3. Solution\n\t- Add Sub Project\n\t- Edit Sub Project\n\t- Delete Sub Project\n\t- Extract Sub Project\n4. Project\n\t- Add ECR\n\t- Add PR\n\t- Add RELEASE\n\t- Add PATCH\n\t- Edit Row\n\t- Delete Row\n\n## 1. Introduction\n\nThe `Projects Tracker` application has the objective to keep track of **Engineering Change Requests** (ECR)\nand **Problem Reports** (PR) for different projects.\n\n### 1.1 Languages \u0026 Libraries\n\nThe application is developed in `C# 12 - .NET 8.0` and uses the following packages:\n\n- `MaterialDesignThemes 5.1.0` for material design\n- `Microsoft.Data.Sqlite 8.0.7` for SQLite database management\n- `Microsoft.Extensions.DependencyInjection 8.0.0` for page navigation\n- `Newtonsoft.Json 13.0.3` for JSON conversion of SQL query results\n- `SharpVectors.Wpf 1.8.4` for including .svg icons\n\nThe front-end is developed in `WPF` using the `XAML` language.\n\n### 1.2 Project's Structure\n\nThe project is structured in the following folders.\n\n- `icons`: icons used in the GUI\n- `images`: README images\n- `rc`: resources\n\t- `rc\\ResourceDictionaries`: resource dictionaries from Microsoft\n- `src`: back-end of the application\n\t- `Database`: all interfaces with SQLite database\n\t- `Models`: models\n\t- `MVVM`: ModelView-ViewModel design pattern\n\t- `Services`: services for page navigation\n\t- `Utility`: list of useful methods\n\t- `ViewModels`: view models (MVVM)\n- `ui`: front-end of the application\n\t- `Dialogs`: list of dialogs\n\t- `Pages`: list of pages\n\t- `UserControls`: list of user controls used in the GUI\n- `App.xaml`: root file of the project\n- `MainWindow.xaml`: main view of the project\n\n### 1.3 References\n\n#### GitHub Repositories\n\n\u003e **MaterialDesignInXamlToolkit**\n\u003e - `URL` https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit\n\n## 2. Dashboard\n\nThe application opens on the **Dashboard**. It contains two types of card:\n\n- `Standalone Projects`: projects not inside a solution,\n- `Solutions`: container for multiple sub projects that are grouped together.\n\n![Dashboard.](./images/dashboard.png)\n\nEach Project/Solution is represented with a card divided into three parts:\n\n- `Header` containing the wording **PROJECTS** / **SOLUTION**\n- `Body` containing the name of the item and other informations\n- `Footer` containing the buttons for editing / deleting\n\n### 2.1 Add Project\n\nBy clicking on the `Add Project` button, a dialog appears allowing the user to create a new project,\ngiving the following parameters:\n\n- `Project Name`\n- `Solution Reference`\n\t- `No Solution` creates a standalone project\n\t- `Create New Solution` creates a new solution (with the given name) and insert the project inside\n\t- `Add To Existing Solution` moves the project in the selected solution\n\n![Add Project.](./images/add_project.png)\n\n### 2.2 Add Solution\n\nBy clicking on the `Add Solution` button, a dialog appears allowing the user to create a new solution,\ngiving the following parameters:\n\n- `Solution Name`\n\n![Add Solution.](./images/add_solution.png)\n\n### 2.3 Edit Project\n\nBy clicking on the `Edit` button on a project card, a dialog appears allowing the user to modify\na project's parameters:\n\n- `Project Name`\n- `Solution Reference`\n\t- `No Solution` leave it as a standalone project\n\t- `Create New Solution` creates a new solution (with the given name) and insert the project inside\n\t- `Add To Existing Solution` moves the project in the selected solution\n\n![Edit Project.](./images/edit_project.png)\n\n### 2.4 Edit Solution\n\nBy clicking on the `Edit` button on a solution card, a dialog appears allowing the user to modify\na solution's parameters:\n\n- `Solution Name`\n- `Extract All Sub-Projects` if checked extracts all the sub-projects and turn them into standalone ones\n\n![Edit Solution.](./images/edit_solution.png)\n\n### 2.5 Delete Project / Solution\n\nBy clicking on the `Delete` button on a project/solution card, a dialog appears allowing the user to\ndelete a project / solution. Pay attention that by removing a solution, all the sub-projects inside\nwill be deleted too: before confirming, it could be better to extract all subprojects.\n\n![Delete Project.](./images/delete_project.png)\n![Delete Solution.](./images/delete_solution.png)\n\n### 2.6 Move Project\n\nA project can be moved inside a solution by dragging it.\n\n## 3. Solution\n\nBy clicking on a solution card you enter in the `Solution` page. It is very similar to the dashboard\none, a part that only the sub projects are shown.\n\nThe user can go back to the dashboard page by clicking on the `Home Icon`.\n\n![Solution.](./images/solution.png)\n\n### 3.1 Add Sub Project\n\nBy clicking on the `Add Sub Project` button, a dialog appears allowing the user to create a new\nsub project, giving the following parameters:\n\n- `Sub Project Name`\n- `Solution Reference`\n\t- `Leave In Solution` creates a project in the current solution\n\t- `Extract From Solution` moves the created project in the dashboard as standalone\n\t- `Add To Existing Solution` moves the project in the selected solution\n\n![Add Sub Project.](./images/add_sub_project.png)\n\n### 3.2 Edit Sub Project\n\nBy clicking on the `Edit` button on a sub project card, a dialog appears allowing the user to modify\na project's parameters:\n\n- `Project Name`\n- `Solution Reference`\n\t- `No Solution` leave it as a standalone project\n\t- `Create New Solution` creates a new solution (with the given name) and insert the project inside\n\t- `Add To Existing Solution` moves the project in the selected solution\n\n![Edit Project.](./images/edit_sub_project.png)\n\n### 3.3 Delete Sub Project\n\nBy clicking on the `Delete` button on a sub project card, a dialog appears allowing the user to\ndelete a sub project.\n\n![Delete Sub Project.](./images/delete_sub_project.png)\n\n### 3.4 Extract Sub Project\n\nA sub project can be extracted from the solution by dragging it over the orange icon.\n\n## 4. Project\n\nBy clicking on a project / sub-project card you can enter in the `Project` page, which is\ncomposed of three parts:\n\n- At the top there are the buttons to add a new **ECR / PR / RELEASE / PATCH**\n- In the middle there is the table comprising the following informations\n\t- Creation Date\n\t- Closure Date\n\t- Version plus the Discovery Version for PR\n\t- Patch Version\n\t- Identifier\n\t- Status (Assigned - In Progress - Done)\n\t- Priority (1 - 2 - 3 - 4 - 5)\n\t- Title\n\t- Actions (Edit - Delete)\n- At the bottom there are the filters for the table (by default only the last version\nis displayed)\n\n![Project.](./images/project.png)\n\n### 4.1 Add ECR\n\nBy clicking on the `Add ECR` button, a dialog appears allowing the user to create a new\n**Engineering Change Request**, giving the following parameters:\n\n- `Importance`\n- `Status`\n- `Creation Date`\n- `Closure Date`\n- `Version`\n- `Patch Version`\n- `Title`\n- `Description`\n\n![Add ECR.](./images/add_ecr.png)\n\n### 4.2 Add PR\n\nBy clicking on the `Add PR` button, a dialog appears allowing the user to create a new\n**Problem Report**, giving the following parameters:\n\n- `Importance`\n- `Status`\n- `Creation Date`\n- `Closure Date`\n- `Version`\n- `Patch Version`\n- `Discovery Version`\n- `Title`\n- `Description`\n- `Note`\n\n![Add PR.](./images/add_pr.png)\n\n### 4.3 Add RELEASE\n\nBy clicking on the `Add RELEASE` button, a dialog appears allowing the user to create a new\n**Release**, giving the following parameters:\n\n- `Status`\n- `Version`\n- `Creation Date`\n- `Closure Date`\n\n![Add ECR.](./images/add_release.png)\n\n### 4.4 Add PATCH\n\nBy clicking on the `Add PATCH` button, a dialog appears allowing the user to create a new\n**Patch**, giving the following parameters:\n\n- `Status`\n- `Version`\n- `Creation Date`\n- `Closure Date`\n- `Patch Version`\n\n![Add PATCH.](./images/add_patch.png)\n\n### 4.5 Edit Row\n\nBy clicking on the `pencil` button, a dialog appears allowing the user to edit the\ngiven row.\n\n![Edit Row.](./images/edit_row.png)\n\n### 4.6 Delete Row\n\nBy clicking on the `trash bin` button, a dialog appears allowing the user to delete the\ngiven row.\n\n![Delete Row.](./images/delete_row.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falessionegri%2Fprojectstracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falessionegri%2Fprojectstracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falessionegri%2Fprojectstracker/lists"}