• Post Reply Bookmark Topic Watch Topic
  • New Topic

Trying to build a kanban board  RSS feed

 
Ian Tail
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,

this is my first program that I'm trying to build... and I'm having trouble with where to begin...

Does this sound like the best way to go....?

Sticky class to create the sticky, with title and info.
Then a ready class with array to hold ready stickies, a doing class with array to hold doing stickies and a done class with array to hold done stickies.
Then a board class to create a board to hold the 3 arrays.

Sorry, any help would be greatly appreciated
 
salvin francis
Bartender
Posts: 1653
37
Eclipse IDE Google Web Toolkit Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, I dont know exactly what a Kanban board is, googling showed me a few pics and I got a basic idea about it.


Here's my suggestion:

 
Stephan van Hulst
Saloon Keeper
Posts: 7973
143
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I like Salvin's approach, but make sure the fields are private and final. StickyNotes can be immutable.
 
Ian Tail
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the responses guys....

I'll try the suggestions... and see how I get on
 
salvin francis
Bartender
Posts: 1653
37
Eclipse IDE Google Web Toolkit Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Stephan van Hulst wrote:I like Salvin's approach, but make sure the fields are private and final.

Ah, I forgot to add the access modifiers.

Stephan van Hulst wrote:StickyNotes can be immutable.

Hmm, Maybe no since I see a transition of a note from Doing > Done > Ready. Unless I have misunderstood the kanban board meaning ?
 
Stephan van Hulst
Saloon Keeper
Posts: 7973
143
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Looking closer, it seems the statuses are more closely associated with a column on the board than with individual sticky notes. I would make the board have a Map<Status, Collection<Story>>, or if stories have a unique ID: Map<Status, Map<Integer, Story>>
 
Stephan van Hulst
Saloon Keeper
Posts: 7973
143
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
salvin francis wrote:
Stephan van Hulst wrote:StickyNotes can be immutable.

Hmm, Maybe no since I see a transition of a note from Doing > Done > Ready. Unless I have misunderstood the kanban board meaning ?


Well, if we're going this way (see my post above), then stickies can be immutable and simply return a new sticky with a different type using a method like withType(StickyNoteType type)
 
Dave Tolls
Ranch Foreman
Posts: 3056
37
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would hesitate with implementing that enum.

Kanban does not necessarily have 3 states for a card.
I've seen boards with a dozen columns.

So, let's take a simple setup with Analysis, Dev, Test, Deploy.
Each of these will have a "doing" (I prefer "in progress") and a "done".
The "done" of one is the "ready" of the following column (so "dev done" is the "ready" for "doing test").
This means that there needs to an "analysis ready", but that won't have a WIP.

Since the number of columns varies, I would not use an enum to represent them.
 
Stephan van Hulst
Saloon Keeper
Posts: 7973
143
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dave is correct of course. It seems we can make the Board generic and let the client specify the type of the column headers.
 
salvin francis
Bartender
Posts: 1653
37
Eclipse IDE Google Web Toolkit Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Interesting
So, maybe a simple Map can surfice?

Map<Category, List<Sticky>> stickyMap;

Like Stephan suggested
 
Stephan van Hulst
Saloon Keeper
Posts: 7973
143
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, but it needs to be generic, because a 'Category' would likely be nothing but a marker.

My suggestion:


 
Ian Tail
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi guys, thanks for all your responses, I'm still working on this... As I'm new to java and still learning, I've not dealt with maps before. So I'd gone with an if loop that determines the category and then places it in the array list of that category.

But I'll look at maps, as that might be easier?

Especially as I'd like to build a GUI for this, and have the categories as physical columns, and the objects/stickies as coloured squares that can be moved across the columns as the category changes
 
salvin francis
Bartender
Posts: 1653
37
Eclipse IDE Google Web Toolkit Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ian Tail wrote:
Especially as I'd like to build a GUI for this, and have the categories as physical columns, and the objects/stickies as coloured squares that can be moved across the columns as the category changes

Good luck, let us know if you are stuck anywhere. There are forums such as Swing AWT SWT where you can ask for help if you are making this in swing.
 
Knute Snortum
Sheriff
Posts: 4276
127
Chrome Eclipse IDE Java Postgres Database VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would suggest that if you add a GUI you use JavaFX, which has its own forum.
 
Ian Tail
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Didn't know about JavaFX, and just having a brief check on it, it'd seem JavaFX might once I've got to grips with Java Swing first. That sound fair?

Although, it does sound like JavaFX offers more individual/unique skin design options... Which is nice

 
Dave Tolls
Ranch Foreman
Posts: 3056
37
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ian Tail wrote:Didn't know about JavaFX, and just having a brief check on it, it'd seem JavaFX might once I've got to grips with Java Swing first. That sound fair?

Although, it does sound like JavaFX offers more individual/unique skin design options... Which is nice



Swing and FX work quite differently.
I would pick FX, if only because it's the current GUI for Java Desktop.
 
Tim Holloway
Saloon Keeper
Posts: 18792
74
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Swing is alive and well. So is GWT, as far as I know - it's the GUI framework for the Eclipse IDE and the Pentaho Spoon GUI designer for their Kettle ETL tool. And those are just items I can recall readily. I might also suggest looking at what jGannt and ArgoUML run off of, as they perform well as graphical desktop environments.

On the other hand, Kanban is a collaboration tool, and I can't really see why you'd want to run it as a desktop app. It's generally run as a web-based application to make it easier for multiple users to participate.
 
Les Morgan
Rancher
Posts: 779
19
C++ Java MySQL Database Netbeans IDE Oracle Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would look at using objects that implement Collection, rather than, arrays.

Ian Tail wrote:Hi all,

this is my first program that I'm trying to build... and I'm having trouble with where to begin...

Does this sound like the best way to go....?

Sticky class to create the sticky, with title and info.
Then a ready class with array to hold ready stickies, a doing class with array to hold doing stickies and a done class with array to hold done stickies.
Then a board class to create a board to hold the 3 arrays.

Sorry, any help would be greatly appreciated
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!