Skip to content

WPF .NET Core application implementing MVVM, Entity Framework Core and a SQLite database.

Notifications You must be signed in to change notification settings

CodeByTarun/ProjectTracker

Repository files navigation

Project Tracker

Keep track of your projects with this easy-to-use Kanban application!

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

image

Project tracker was created because I wanted an easy-to-use lightweight Kanban board application to keep track of projects that I was working on. Also, it was a way for me to showcase a lot of the programming concepts and skills I have developed. A detailed explanation of how to use the application is in the Usage section below.

This WPF application was created using the Model-view-viewmodel (MVVM) design pattern. The separation this pattern provides between the UI and business logic made it easier to make changes to the application. Many other design patterns were used to create this project such as the singleton pattern, composite pattern, command pattern, observer pattern, factory method pattern, etc. IOC containers were used as well for easier use of dependency injection.

All the service classes were created through test driven development (TTD) which saved a lot of time when the service classes dealt with concepts such as linked lists in SQL and SQL queries. The database was created using the Code First approach in Entity Framework. This allowed for creation of the model in C# first and then through configurations of each class in the model, a database was created to match it.

Built With

Getting Started

To use this application you must have Visual Studio 2019. Open the solution in Visual Studio and publish it wherever you would like to store the application. Now you can start using Project Tracker!

Usage

image

When the application is opened you will be taken to the home page. Here is where all your projects are shown in a list. This list can be searched through and filtered by tag and status. To create a project, click on the add button located in the top right. Multiple projects can be opened at once as this application features tabs for easy multitasking. These tabs can be rearranged by drag and drop.

image

Tags are not project specific. To create a tag, click on the tag button located to the left of the minimize button. Tags are fully customizable and are a great way to keep your projects, boards and issues organized. Deleting or editing a tag will be reflected for ALL projects so be cautious when making changes to a tag.

image

After creating a project, double click on it to be taken to the projects page. Here, you can create boards to work on different parts of you project. Each of these boards will have their own set of Kanban groups and issues. This allows for a good breakdown of the different sections of your projects. Boards can be cycled through on the Kanban board page as well for faster navigation.

image

Usage of the Kanban board is straight forward. Create as many groups as needed and then you can create issues under each of the groups. Groups can be rearranged through drag and drop, and issues can be moved to different groups by doing this as well.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Any contributions to this project are welcomed! To contribute:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License.

Contact

Tarun Bola - bolatarun@gmail.com

Project Link: https://github.com/TarunBola/ProjectTracker

Acknowledgments

Releases

No releases published

Packages

No packages published

Languages