Track features and bugs across multiple projects
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.0
for material designMicrosoft.Data.Sqlite 8.0.7
for SQLite database managementMicrosoft.Extensions.DependencyInjection 8.0.0
for page navigationNewtonsoft.Json 13.0.3
for JSON conversion of SQL query resultsSharpVectors.Wpf 1.8.4
for including .svg iconsThe 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
: resources
rc\ResourceDictionaries
: resource dictionaries from Microsoftsrc
: back-end of the application
Database
: 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 application
Dialogs
: list of dialogsPages
: list of pagesUserControls
: list of user controls used in the GUIApp.xaml
: root file of the projectMainWindow.xaml
: main view of the projectMaterialDesignInXamlToolkit
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:
Header
containing the wording PROJECTS / SOLUTION
Body
containing the name of the item and other informationsFooter
containing the buttons for editing / deletingBy clicking on the Add Project
button, a dialog appears allowing the user to create a new project,
giving the following parameters:
Project Name
Solution Reference
No Solution
creates a standalone projectCreate New Solution
creates a new solution (with the given name) and insert the project insideAdd To Existing Solution
moves the project in the selected solutionBy 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 Name
Solution Reference
No Solution
leave it as a standalone projectCreate New Solution
creates a new solution (with the given name) and insert the project insideAdd To Existing Solution
moves the project in the selected solutionBy clicking on the Edit
button on a solution card, a dialog appears allowing the user to modify
a solution's parameters:
Solution Name
Extract All Sub-Projects
if checked extracts all the sub-projects and turn them into standalone onesBy 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 Name
Solution Reference
Leave In Solution
creates a project in the current solutionExtract From Solution
moves the created project in the dashboard as standaloneAdd To Existing Solution
moves the project in the selected solutionBy clicking on the Edit
button on a sub project card, a dialog appears allowing the user to modify
a project's parameters:
Project Name
Solution Reference
No Solution
leave it as a standalone projectCreate New Solution
creates a new solution (with the given name) and insert the project insideAdd To Existing Solution
moves the project in the selected solutionBy 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:
By clicking on the Add ECR
button, a dialog appears allowing the user to create a new
Engineering Change Request, giving the following parameters:
Importance
Status
Creation Date
Closure Date
Version
Patch Version
Title
Description
By clicking on the Add PR
button, a dialog appears allowing the user to create a new
Problem Report, giving the following parameters:
Importance
Status
Creation Date
Closure Date
Version
Patch Version
Discovery Version
Title
Description
Note
By clicking on the Add RELEASE
button, a dialog appears allowing the user to create a new
Release, giving the following parameters:
Status
Version
Creation Date
Closure Date
By clicking on the Add PATCH
button, a dialog appears allowing the user to create a new
Patch, giving the following parameters:
Status
Version
Creation Date
Closure Date
Patch 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.