Track features and bugs across multiple projects
- Introduction
- Languagaes & Libraries
- Project's Structure
- References
- GitHub Repositories
- Dashboard
- Add Project
- Add Solution
- Edit Project
- Edit Solution
- Delete Project / Solution
- Move Project
- Solution
- Add Sub Project
- Edit Sub Project
- Delete Sub Project
- Extract Sub Project
- Project
- Add ECR
- Add PR
- Add RELEASE
- Add PATCH
- Edit Row
- Delete Row
The Projects Tracker application has the objective to keep track of Engineering Change Requests (ECR)
and Problem Reports (PR) for different projects.
The application is developed in C# 12 - .NET 8.0 and uses the following packages:
MaterialDesignThemes 5.1.0for material designMicrosoft.Data.Sqlite 8.0.7for SQLite database managementMicrosoft.Extensions.DependencyInjection 8.0.0for page navigationNewtonsoft.Json 13.0.3for JSON conversion of SQL query resultsSharpVectors.Wpf 1.8.4for including .svg icons
The front-end is developed in WPF using the XAML language.
The project is structured in the following folders.
icons: icons used in the GUIimages: README imagesrc: resourcesrc\ResourceDictionaries: resource dictionaries from Microsoft
src: back-end of the applicationDatabase: all interfaces with SQLite databaseModels: modelsMVVM: ModelView-ViewModel design patternServices: services for page navigationUtility: list of useful methodsViewModels: view models (MVVM)
ui: front-end of the applicationDialogs: list of dialogsPages: list of pagesUserControls: list of user controls used in the GUI
App.xaml: root file of the projectMainWindow.xaml: main view of the project
MaterialDesignInXamlToolkit
The application opens on the Dashboard. It contains two types of card:
Standalone Projects: projects not inside a solution,Solutions: container for multiple sub projects that are grouped together.
Each Project/Solution is represented with a card divided into three parts:
Headercontaining the wording PROJECTS / SOLUTIONBodycontaining the name of the item and other informationsFootercontaining the buttons for editing / deleting
By clicking on the Add Project button, a dialog appears allowing the user to create a new project,
giving the following parameters:
Project NameSolution ReferenceNo Solutioncreates a standalone projectCreate New Solutioncreates a new solution (with the given name) and insert the project insideAdd To Existing Solutionmoves the project in the selected solution
By clicking on the Add Solution button, a dialog appears allowing the user to create a new solution,
giving the following parameters:
Solution Name
By clicking on the Edit button on a project card, a dialog appears allowing the user to modify
a project's parameters:
Project NameSolution ReferenceNo Solutionleave it as a standalone projectCreate New Solutioncreates a new solution (with the given name) and insert the project insideAdd To Existing Solutionmoves the project in the selected solution
By clicking on the Edit button on a solution card, a dialog appears allowing the user to modify
a solution's parameters:
Solution NameExtract All Sub-Projectsif checked extracts all the sub-projects and turn them into standalone ones
By clicking on the Delete button on a project/solution card, a dialog appears allowing the user to
delete a project / solution. Pay attention that by removing a solution, all the sub-projects inside
will be deleted too: before confirming, it could be better to extract all subprojects.
A project can be moved inside a solution by dragging it.
By clicking on a solution card you enter in the Solution page. It is very similar to the dashboard
one, a part that only the sub projects are shown.
The user can go back to the dashboard page by clicking on the Home Icon.
By clicking on the Add Sub Project button, a dialog appears allowing the user to create a new
sub project, giving the following parameters:
Sub Project NameSolution ReferenceLeave In Solutioncreates a project in the current solutionExtract From Solutionmoves the created project in the dashboard as standaloneAdd To Existing Solutionmoves the project in the selected solution
By clicking on the Edit button on a sub project card, a dialog appears allowing the user to modify
a project's parameters:
Project NameSolution ReferenceNo Solutionleave it as a standalone projectCreate New Solutioncreates a new solution (with the given name) and insert the project insideAdd To Existing Solutionmoves the project in the selected solution
By clicking on the Delete button on a sub project card, a dialog appears allowing the user to
delete a sub project.
A sub project can be extracted from the solution by dragging it over the orange icon.
By clicking on a project / sub-project card you can enter in the Project page, which is
composed of three parts:
- At the top there are the buttons to add a new ECR / PR / RELEASE / PATCH
- In the middle there is the table comprising the following informations
- Creation Date
- Closure Date
- Version plus the Discovery Version for PR
- Patch Version
- Identifier
- Status (Assigned - In Progress - Done)
- Priority (1 - 2 - 3 - 4 - 5)
- Title
- Actions (Edit - Delete)
- At the bottom there are the filters for the table (by default only the last version is displayed)
By clicking on the Add ECR button, a dialog appears allowing the user to create a new
Engineering Change Request, giving the following parameters:
ImportanceStatusCreation DateClosure DateVersionPatch VersionTitleDescription
By clicking on the Add PR button, a dialog appears allowing the user to create a new
Problem Report, giving the following parameters:
ImportanceStatusCreation DateClosure DateVersionPatch VersionDiscovery VersionTitleDescriptionNote
By clicking on the Add RELEASE button, a dialog appears allowing the user to create a new
Release, giving the following parameters:
StatusVersionCreation DateClosure Date
By clicking on the Add PATCH button, a dialog appears allowing the user to create a new
Patch, giving the following parameters:
StatusVersionCreation DateClosure DatePatch Version
By clicking on the pencil button, a dialog appears allowing the user to edit the
given row.
By clicking on the trash bin button, a dialog appears allowing the user to delete the
given row.