Coder Social home page Coder Social logo

codebytarun / projecttracker Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 18.34 MB

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

C# 100.00% Smalltalk 0.01%
kanban-board kanban-application wpf csharp entityframeworkcore sqlite mvvm-architecture netcore testdrivendevlopment

projecttracker's Introduction

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 - [email protected]

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

Acknowledgments

projecttracker's People

Contributors

codebytarun avatar

Stargazers

 avatar

Watchers

 avatar

projecttracker's Issues

Favourites

Be able to select favourite projects and boards for easier access to them.

Expanders

Expanders for groups. With this change it will be easier to manage your issues when there are a lot of groups.

Group Template

When adding a board, provide three groups automatically at the beginning. To Do, In Progress, Completed.

Accounts

Have to add a way to save the database on the web so that the users can backup there data.

Themes

Light and a Dark theme. Right now there is only a dark theme.

Timer

A timer that doesn't integrate with the rest of the application but is just a neat feature to help stay on task for a set period of time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.