Skip to content

A simple project planner designed for small teams. Using Entity Framework with a database and a WPF Frontend

Notifications You must be signed in to change notification settings

AlexGriffinGit/Entity-Framework-Project-Planner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Entity Framework Project Planner

Table Of Contents

Summary

A simple project planner designed for small teams, built with Entity Framework with a SQLServer database and a WPF frontend. The project planner can keep track of projects, features and issues for that project, and general notes that aren't linked to a project.

Project Goal

To create a simple easy to navigate project planner that allows single users or small teams to track their current and completed projects along with any features and issues relating to that project. In addition to this allow the user to add notes that may or may not relate to a given project.

Project Definition Of Done

The project is considered done when:

  • All 4 tables (Projects, Issues, Features and Notes) can be modified with CRUD operations within the program.
  • The GUI is conveying the changes made to the tables.
  • All unit tests that cover all of the aspects of the program are passing, including functional, edge and error cases.
  • The projects has been reviewed and signed off.
  • All user stories are marked as done.
  • The project has a complete README file including class diagrams.

User Story Definition Of Done

A user story is considered done when:

  • Program functions the way defined in the user story.
  • All unit tests for that operation all pass, including edge cases and error cases.
  • When the stakeholder accepts the user story is complete.
  • When the user story is reviewed and signed off.

Sprints

Project Retrospective

What I have learned

Overall I am very happy with the end project planner that I have created over these 3 sprints, I’ve learnt a lot through undertaking this project, but in particular I’ve learned a lot about testing and agile methodology and it’s techniques.

I started off with the code first approach and created four classes which represented the 4 different tables for my database, these are projects, features, issues and notes. At the start of this project I preferred the database first approach where you create a database and then scaffold it with code, however throughout this process I have come to appreciate the code first approach and it’s ability to create a database from C# classes.

A self-imposed hurdle that I ran into in the beginning of this project was not having adequate tests before implementing methods. I identified this as an improvement to make in the subsequent sprints and focused on making sure I had tests for the rest of the project. I think doing this helped me a great deal and made the following sprints run a lot smoother as I was focusing on making sure everything I was implementing was thoroughly tested. I also learnt a lot about the different types of unit tests that can be carried out by NUnit, there are still lots of different types of tests that I haven’t used or that I’m not aware of yet.

Spending time creating and thinking about user stories helped me a great deal in the early stages of the application as it forced me to think about how a user would use the application in the real world. Through this I found that I was able to identify things I needed to include and what I needed to think about in regards to designing the application. I also discovered how many tasks I can complete in a specified time, i.e. a sprint. This information will help me when scheduling tasks in the future and what is reasonable within a given time.

What would I do differently next time?

Next time I would spend a longer time planning out the different portions of the program, especially with how CRUD operations (Create, Read, Update, Delete) are implemented as in my case I had a large file which contained all of my CRUD operations contained in it. Late on into sprint 3 I refactored this file and split it up into separate files for the separate tables. This took development time away from other parts of the program and could have been prevented with planning.

In addition to this I would not create the GUI project until later on in the project as I found that I was spending too much time changing details and fixing small parts of the GUI. This was happening mainly through sprint 2 and 3, I identified this in my second sprint retrospective and had started working on it in my third sprint. By not creating the GUI application till later I would have to focus on the business layer and the testing first.

What would I do next?

The next step for the project planner is to be able to drag and drop items from the feature and issue lists to different columns which would change their status, I would then probably extend this and have the projects listed in a similar way. Further than that I would extend the customisability of the program and allow changes for fonts and colours. This is a major step and would require rewriting a lot of the XAML code.

Class Diagrams

Entity Relationship Diagram

Entity Relationship Diagram

Model Class Diagram

Model Class Diagram

Business Class Diagram

Business Class Diagram

GUI Class Diagram

GUI Class Diagram

Test Class Diagram

Tests Class Diagram

Project Board

Start of Sprint 1

Start of Sprint 1 Project Board

End of Sprint 1

End of Sprint 1 Project Board

Start of Sprint 2

Start of Sprint 2 Project Board

End of Sprint 2

End of Sprint 2 Project Board

Start of Sprint 3

Start of Sprint 3 Project Board

End of Sprint 3

End of Sprint 3 Project Board

Mockups

Default View

Default Mockup View

Project Overview

Project Overview Mockup

Features View

Features Mockup View

Issues View

Issues Mockup View

Note View

Note Mockup View

Screenshots

Project Overview Screens

No Project Selected

No Project Selected View

Add Project

Add Project View

Added Project

Added Project View

Project With Issues And Features

Added Project With Issues And Features View

Project Features Screens

No Features Added

No Features Added View

Add Feature

Add Feature View

Features Added

Features Added View

Features Expanded

Features Expanded View

Project Issues Screens

No Issues Added

No Issues Added View

Add Issue

Add Issue View

Issues Added

Issues Added View

Issues Expanded

Issues Expanded View

Note Screens

No Notes Added

No Notes Added View

Add Note

Add Note View

Notes Added

Notes Added View

Notes Expanded

Notes Expanded View

Search Screens

Empty Search

Empty Search View

Populated Search

Populated Search View

Populated Search Expanded

Populated Expanded Search View

Case Insensitive Search

Case Insensitive Search View

Part Search

Part Search View

Export Screens

Empty Export

Empty Export View

XML Export

XML Export View

JSON Export

JSON Export View

Case Insensitive Search

Case Insensitive Search View

Folder Pre Export

Folder Pre Export

Folder Post Export

Folder Post Export

XML Projects Export

XML Notepad After Export

JSON Features Export

JSON Notepad After Export

Download

Download Project Planner.exe

Download Whole Repository

Back To Top

About

A simple project planner designed for small teams. Using Entity Framework with a database and a WPF Frontend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages