all repos — h3rald @ b8370013393ca9da6c0132ad49c4c7afbac7d883

The sources of https://h3rald.com

contents/articles/simply-on-rails-1-concepts-map.html

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
-----
title: "Simply on Rails - Part 1: Concepts and Bubbles"
content-type: article
timestamp: 1183786980
tags: "rails|website|web20"
-----
<p>The first thing I do when I start developing a new application is write down some ideas.</p>
<p>Pen and paper normally do the job, but nowadays there are some valid online and offline applications which work as
	good if not (probably) better.</p>
<p>I&#8217;ve never been a fan of <a href="http://en.wikipedia.org/wiki/Mind_Mapping">Mind Mapping</a>. I&#8217;ve been
	to a seminar on problem solving and creativity and they were showing how mind mapping can unleash your creativity,
	but it didn&#8217;t really work for me. I found the concept-idea-concept-idea sequences a bit too restrictive for my
	liking.</p>
<p>So I decided to try something different: bubbles! <a href="http://www.bubbl.us/">Bubbl.us</a> is an interesting
	online flash application which lets you create bubbles. You can create bubbles and relationships between them,
	change their color, their dimensions etc. And above all it&#8217;s absolutely fun to use. I created two bubble
	sheets, the first one to define how content will be organized in the next version of ItalySimply:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
		codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="450"
		height="340" id="bblviewer"><br />
		<param name="movie" value="http://bubbl.us/sys/view.swf?sid=26306&pw=yaeyI.megNtZcMTh3azVsVjhwVEt0TQ" /><br />
		<param name="quality" value="high" /><br />
		<param name="SeamlessTabbing" value="false" /><br />
		<param name="AllowScriptAccess" value="always" /><br />
		<param name="FlashVars"
			value="_sid=26306&_title=ItalySimply%20v3%20-%20Content&_z=75&_pw=yaeyI.megNtZcMTh3azVsVjhwVEt0TQ" /><br />
		<embed src="http://bubbl.us/sys/view.swf?sid=26306&pw=yaeyI.megNtZcMTh3azVsVjhwVEt0TQ"
			FlashVars="_sid=26306&_title=ItalySimply%20v3%20-%20Content&_z=75&_pw=yaeyI.megNtZcMTh3azVsVjhwVEt0TQ"
			quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"
			type="application/x-shockwave-flash" width="450" height="340" allowscriptaccess="always"
			SeamlessTabbing="false" name="bblviewer"></embed><br />
	</object></p>
<p>The diagram identifies three main types of content:</p>
<ul>
	<li>Houses &#8211; basically what the site is about: house listing with information and pictures about houses for
		sale or rent.</li>
	<li>Links &#8211; Either swapped with partners or suggested by users.</li>
	<li>Pages &#8211; Static content.</li>
</ul>
<p>which will be organized in three different ways:</p>
<ul>
	<li>Tags</li>
	<li>Categories</li>
	<li>An internal search engine, allowing people to filter houses according to some criteria.</li>
</ul>
<p>The other sheet focuses on relationships between content and users.</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
		codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="450"
		height="340" id="bblviewer"><br />
		<param name="movie" value="http://bubbl.us/sys/view.swf?sid=26307&pw=yaeyI.megNtZcMTgxeUw0S0FSNzhFNg" /><br />
		<param name="quality" value="high" /><br />
		<param name="SeamlessTabbing" value="false" /><br />
		<param name="AllowScriptAccess" value="always" /><br />
		<param name="FlashVars"
			value="_sid=26307&_title=ItalySimply%20v3%20-%20Communication&_z=75&_pw=yaeyI.megNtZcMTgxeUw0S0FSNzhFNg" />
		<br />
		<embed src="http://bubbl.us/sys/view.swf?sid=26307&pw=yaeyI.megNtZcMTgxeUw0S0FSNzhFNg"
			FlashVars="_sid=26307&_title=ItalySimply%20v3%20-%20Communication&_z=75&_pw=yaeyI.megNtZcMTgxeUw0S0FSNzhFNg"
			quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"
			type="application/x-shockwave-flash" width="450" height="340" allowscriptaccess="always"
			SeamlessTabbing="false" name="bblviewer"></embed><br />
	</object></p>
<p>At the far sides we have users and administrators, and in the middle how they interact between themselves or with
	content, in particular:</p>
<ul>
	<li>Users will be able to access house feeds and be notified automatically of new additions</li>
	<li>Users will be able to ask questions or comments to each house (they&#8217;ll be moderated, of course).</li>
	<li>Users will be able to suggest links, or contact administrators using a &#8220;House Preferences&#8221; form or a
		more generic contact form.</li>
</ul>
<p>Bubbles are fun, but while I was creating these two diagrams, I felt I absolutely needed to name the relationships
	between each entity or concept, so I spend some time trying to find a tool who would let me do so in an easy and
	fast way.</p>
<p>Yep, I needed to create a <a href="http://en.wikipedia.org/wiki/Domain_model">domain model</a> to move a bit closer
	to create the database architecture of the site.<br />
	It turns out that this magic tool exists, and it&#8217;s free for non-commercial use: <a
		href="http://cmap.ihmc.us/download/">CmapTools</a>.<br />
	It&#8217;s not web based, and it&#8217;s a 59MB Java desktop application which can be used to create <a
		href="http://en.wikipedia.org/wiki/Concept_map">Concept Maps</a>.</p>
<p>Within minutes I was able to create a simple but pretty and functional enough domain model for my site:</p>
<p><img src="/images/ItalySimply-v3_domain-model.jpg" alt="" /></p>
<p>Basically all the concepts I used are going to become models, and all the named relationships will become model
	associations in Rails.</p>
<p>Next step: database architecture.</p>