]> git.mxchange.org Git - shipsimu-docs.git/blob - shipsimu-docs/Browser-Game.mm
Documentation more splitted into smaller mind maps
[shipsimu-docs.git] / shipsimu-docs / Browser-Game.mm
1 <map version="0.7.1">
2 <node LINK="Ship-Simu Ship-Simulator.mm" TEXT="Browser-Game">
3 <font NAME="SansSerif" BOLD="true" SIZE="18"/>
4 <icon BUILTIN="messagebox_warning"/>
5 <node TEXT="Procedures" POSITION="right">
6 <font NAME="SansSerif" BOLD="true" SIZE="14"/>
7 <node TEXT="Registration procedure">
8 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
9 <node TEXT="Make sure the user account is only used once">
10 <node TEXT="An AJAX request may give the user faster feedback"/>
11 </node>
12 <node TEXT="If required make also sure that the email is used once">
13 <node TEXT="Another AJAX request might be helpful here"/>
14 </node>
15 <node TEXT="Both passwords must match as verification"/>
16 <node TEXT="Non-required form fields are checked only if there is content for XSS or other bad things"/>
17 <node TEXT="Encrypt/hash the password (should always be performed)"/>
18 <node TEXT="Complete the registration by adding the user account to the database"/>
19 <node TEXT="Registered partners shall be notified with different ways">
20 <node TEXT="XML-RPC is the default"/>
21 <node TEXT="Different notifiers shall also be possible"/>
22 <node TEXT="This might be queueable to avoid long waiting times for slow partner pages">
23 <icon BUILTIN="xmag"/>
24 <icon BUILTIN="messagebox_warning"/>
25 </node>
26 </node>
27 <node TEXT="Send out confirmation mail if requested by configuration"/>
28 <node TEXT="Redirect the user to a new page">
29 <node TEXT="Default is the &quot;Registration completed&quot; page"/>
30 <node TEXT="Home page shall be chooseable"/>
31 <node TEXT="Other URLs can be used as well"/>
32 </node>
33 <node TEXT="Alternatively login to the internal area">
34 <node TEXT="The account is not useable if email is not confirmed"/>
35 </node>
36 </node>
37 <node TEXT="Login procedure">
38 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
39 </node>
40 <node TEXT="General">
41 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
42 <node TEXT="Most steps shall be done by an intercepting filter pattern"/>
43 </node>
44 </node>
45 <node TEXT="Pseudo-3D graphics" POSITION="right">
46 <node TEXT="Still graphics">
47 <node TEXT="Different ships">
48 <node TEXT="Passenger ship"/>
49 <node TEXT="Oil tanker"/>
50 <node TEXT="Container ship"/>
51 <node TEXT="Misc small ships"/>
52 </node>
53 <node TEXT="Buildings">
54 <node TEXT="Shipyard"/>
55 <node TEXT="Dry dock"/>
56 <node TEXT="Terminal building"/>
57 </node>
58 <node TEXT="Vehicles">
59 <node TEXT="Container carrier"/>
60 <node TEXT="Crane"/>
61 </node>
62 <node TEXT="All pics should be self-shooted">
63 <node TEXT="This avoids copyright conflicts"/>
64 <node TEXT="The requested buildings/vehicles must be found in reality"/>
65 </node>
66 </node>
67 <node TEXT="Slightly moved graphics (GIF)">
68 <node TEXT="Water surface"/>
69 <node TEXT="Sky texture"/>
70 </node>
71 </node>
72 <node TEXT="Tick-based simulation" POSITION="right">
73 <node TEXT="Cronological job (cron)">
74 <node TEXT="Addional requirement for installation"/>
75 </node>
76 </node>
77 <node TEXT="Click-based simulation" POSITION="right">
78 <node TEXT="User clicks a button, action performed"/>
79 </node>
80 <node TEXT="Fully XHTML 1.0" POSITION="right">
81 <node TEXT="Latest Internet standard"/>
82 <node TEXT="Older browsers will make lesser trouble"/>
83 <node TEXT="Should validate with the W3C HTML Validator">
84 <node LINK="http://validator.w3.org" TEXT="http://validator.w3.org">
85 <icon BUILTIN="attach"/>
86 </node>
87 </node>
88 </node>
89 <node TEXT="Design is CSS-based" POSITION="right">
90 <font NAME="SansSerif" SIZE="12"/>
91 <node TEXT="Themes are possible"/>
92 </node>
93 <node TEXT="Nice AJAX features" POSITION="right">
94 <icon BUILTIN="idea"/>
95 <icon BUILTIN="desktop_new"/>
96 </node>
97 <node TEXT="Website structure" POSITION="left">
98 <font NAME="SansSerif" BOLD="true" SIZE="14"/>
99 <node TEXT="External guest area">
100 <cloud/>
101 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
102 <node TEXT="News on the front page (home)">
103 <node TEXT="The news source can be choosen from different">
104 <node TEXT="Previously typed and stored in database"/>
105 <node TEXT="Local XML files">
106 <node TEXT="Hint: Created by external generators">
107 <font NAME="SansSerif" SIZE="12"/>
108 </node>
109 </node>
110 <node TEXT="Remote XMLs like RSS feeds"/>
111 </node>
112 <node TEXT="The typer can choose a category">
113 <node TEXT="New categories can be suggested by the typer"/>
114 <node TEXT="An admin can create new categories"/>
115 </node>
116 <node TEXT="Comments are allowable">
117 <node TEXT="Logged-in users"/>
118 <node TEXT="Guests as well">
119 <icon BUILTIN="clanbomber"/>
120 <node TEXT="Secured with CAPTCHA">
121 <icon BUILTIN="messagebox_warning"/>
122 </node>
123 </node>
124 </node>
125 <node TEXT="One object for all news should be fine">
126 <node TEXT="Do not use one object per news entry!">
127 <icon BUILTIN="clanbomber"/>
128 <icon BUILTIN="stop"/>
129 </node>
130 <node TEXT="The object receives a &quot;Requestable&quot; object">
131 <node TEXT="Obtain page number and sent comment data from it"/>
132 </node>
133 </node>
134 </node>
135 <node TEXT="Registration form" STYLE="fork">
136 <node TEXT="One single page"/>
137 <node TEXT="Multiple pages"/>
138 </node>
139 <node TEXT="Login form">
140 <node TEXT="With guest login (disable by the admin)">
141 <icon BUILTIN="bell"/>
142 <icon BUILTIN="idea"/>
143 </node>
144 <node TEXT="Password reminder"/>
145 <node TEXT="Link to the registration form"/>
146 <node TEXT="Different login methods configureable by admin:">
147 <node TEXT="By username+password"/>
148 <node TEXT="By email+password"/>
149 <node TEXT="By username/email+password"/>
150 </node>
151 <node TEXT="Wether cookie-based or session-based login">
152 <node TEXT="This shall be configureable by admin">
153 <icon BUILTIN="messagebox_warning"/>
154 </node>
155 </node>
156 </node>
157 <node TEXT="Screenshot gallery">
158 <node TEXT="Comments are allowable"/>
159 <node TEXT="Should be kept simple"/>
160 </node>
161 <node TEXT="List of enabled features" STYLE="fork"/>
162 <node TEXT="Statistics of the game (not whole network!)"/>
163 <node TEXT="List of playing users">
164 <node TEXT="With link to their public profiles"/>
165 </node>
166 <node TEXT="Pillory">
167 <node TEXT="Username (who got locked)"/>
168 <node TEXT="Date&amp;Time"/>
169 <node TEXT="The admin"/>
170 <node TEXT="Stated reason"/>
171 </node>
172 <node TEXT="Small extra pages">
173 <node TEXT="Imprint (required in Germany)"/>
174 <node TEXT="Privacy policy (required in some countries)"/>
175 </node>
176 </node>
177 <node TEXT="Internal game area">
178 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
179 <node TEXT="News on first login page">
180 <node TEXT="Like on &quot;home&quot; page except that there is no captcha required"/>
181 <node TEXT="Including history of recent events since last login"/>
182 <node TEXT="Announcements in special sub-category for newly founded shipping/travel companies"/>
183 </node>
184 <node TEXT="Create new game character">
185 <edge STYLE="bezier"/>
186 <cloud/>
187 <font NAME="SansSerif" SIZE="12"/>
188 <icon BUILTIN="password"/>
189 <node TEXT="The gamer can have all varriants">
190 <node TEXT="This may be limitable by admin"/>
191 <node TEXT="The player still cannot make contracts with own characters">
192 <icon BUILTIN="messagebox_warning"/>
193 </node>
194 </node>
195 <node TEXT="It should cost somewhere a fee">
196 <node TEXT="The fee shall be payed from user account"/>
197 </node>
198 <node TEXT="For first character creation he shall have enougth game money plus some extra"/>
199 <node TEXT="Types of characters">
200 <node TEXT="Shipping company founder">
201 <node TEXT="This includes the fee for funding new company"/>
202 <node TEXT="A news for the community shall be placed">
203 <node TEXT="The admin/mod can still moderate it"/>
204 </node>
205 </node>
206 <node TEXT="Travel company founder">
207 <node TEXT="Like shipping company..."/>
208 </node>
209 <node TEXT="Jobholder">
210 <node TEXT="Starts unemployed"/>
211 <node TEXT="Some money left for sending applications out"/>
212 <node TEXT="May ask goverment for financial help"/>
213 <node TEXT="Has to pay monthly fees">
214 <icon BUILTIN="stop"/>
215 <node TEXT="Rent for a &quot;fake&quot; house"/>
216 <node TEXT="Meal and drinks (faked)"/>
217 <node TEXT="Others costs like phone,electricity"/>
218 </node>
219 </node>
220 <node TEXT="Merchant">
221 <node TEXT="Raw resources"/>
222 <node TEXT="Constructed ship parts"/>
223 <node TEXT="Smaller complete ships"/>
224 </node>
225 <node TEXT="Marketing Agency">
226 <node TEXT="Sells marketing/merchandising products"/>
227 </node>
228 </node>
229 <node TEXT="This is only possible if account is activated">
230 <font ITALIC="true" NAME="SansSerif" SIZE="12"/>
231 <icon BUILTIN="messagebox_warning"/>
232 </node>
233 </node>
234 <node TEXT="&quot;Load&quot; existing character">
235 <cloud/>
236 <font NAME="SansSerif" SIZE="12"/>
237 <icon BUILTIN="password"/>
238 <node TEXT="Contains link to &quot;Create new character&quot;"/>
239 <node TEXT="Player sees some basic data about listed characters"/>
240 <node TEXT="Locked characters should not be removed instead marked with &quot;Locked&quot;">
241 <icon BUILTIN="idea"/>
242 </node>
243 </node>
244 <node TEXT="Refill account points">
245 <node TEXT="The admin may choose if the in-game can be converted with a low rate to account points"/>
246 <node TEXT="This option might be disabled by admin">
247 <node TEXT="Then the gamer can only refill in-game money per character"/>
248 </node>
249 </node>
250 <node TEXT="Update gamer/user profile">
251 <node TEXT="Enter the current account password"/>
252 <node TEXT="Send email to the user only if no email has changed, or if ..."/>
253 <node TEXT="Has the email been changed?">
254 <icon BUILTIN="help"/>
255 <node TEXT="Send new confirmation to new email"/>
256 <node TEXT="Send notifier to old email"/>
257 </node>
258 <node TEXT="Change account password">
259 <node TEXT="Enter current account password"/>
260 <node TEXT="Enter new password twice"/>
261 <node TEXT="Send an email to the user"/>
262 </node>
263 </node>
264 </node>
265 <node TEXT="General infrastructures">
266 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
267 <node TEXT="Point system (in-game money)">
268 <font NAME="SansSerif" SIZE="12"/>
269 <icon BUILTIN="password"/>
270 </node>
271 <node TEXT="A.I. goverment">
272 <cloud/>
273 <icon BUILTIN="flag"/>
274 <icon BUILTIN="password"/>
275 <node TEXT="Shall help unemployed gamers staying alive (but not becoming rich)"/>
276 <node TEXT="May later on collect taxes from companies">
277 <node TEXT="For paying unemployed people"/>
278 <node TEXT="Financial support for broken companies"/>
279 </node>
280 <node TEXT="May ofer social security services">
281 <icon BUILTIN="xmag"/>
282 <icon BUILTIN="pencil"/>
283 </node>
284 <node TEXT="Goverment is not playable at the moment">
285 <font NAME="SansSerif" SIZE="12"/>
286 <icon BUILTIN="messagebox_warning"/>
287 <node TEXT="It should be &quot;played&quot; abstractly by the server"/>
288 <node TEXT="Gamers may help each other with financial support"/>
289 </node>
290 </node>
291 </node>
292 </node>
293 <node TEXT="Strict coding guidelines for clean PHP code" POSITION="left">
294 <font NAME="SansSerif" BOLD="true" SIZE="14"/>
295 <icon BUILTIN="xmag"/>
296 <node TEXT="General code structure">
297 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
298 <icon BUILTIN="messagebox_warning"/>
299 <node TEXT="Fully object-oriented">
300 <node TEXT="Use of different but practical design patterns">
301 <node TEXT="Factory-method pattern for smother initializing of objects"/>
302 <node TEXT="Template method pattern where it matches"/>
303 <node TEXT="MVC pattern for the website core"/>
304 </node>
305 <node TEXT="Only one index.php shall provide access to the whole game"/>
306 <node TEXT="Slower in PHP5">
307 <icon BUILTIN="clanbomber"/>
308 </node>
309 </node>
310 </node>
311 <node TEXT="Documentation">
312 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
313 <node TEXT="In-line documentation">
314 <node TEXT="Script header with full copyright and license as requested by GNU GPL 3"/>
315 <node TEXT="Method headers with Doxygen compatible tags"/>
316 <node TEXT="Comments above single lines for better understanding what is happening"/>
317 </node>
318 <node TEXT="Files in directory &quot;docs&quot;">
319 <node TEXT="COPYING*">
320 <node TEXT="License files"/>
321 </node>
322 <node TEXT="Conception">
323 <node TEXT="As OpenDocument and later PDF as well"/>
324 </node>
325 <node TEXT="NEWS">
326 <node TEXT="Latest news around the game (coeer and gamer)"/>
327 </node>
328 <node TEXT="README">
329 <node TEXT="Includes installation instructions and general gaming guidelines"/>
330 </node>
331 <node TEXT="ArgoUML diagram">
332 <node TEXT="For visualization of the class structure"/>
333 </node>
334 <node TEXT="FreeMind document">
335 <node TEXT="...">
336 <icon BUILTIN="ksmiletris"/>
337 </node>
338 </node>
339 <node TEXT="THANKS">
340 <node TEXT="All people helped in some direct or indirect way, less or more."/>
341 </node>
342 <node TEXT="minmap_yyyymmdd.html">
343 <node TEXT="Exported FreeMind maps to HTML with CSS and JavaScript"/>
344 </node>
345 </node>
346 </node>
347 <node TEXT="Folding of the code">
348 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
349 </node>
350 <node TEXT="Tabs and spaces">
351 <font NAME="SansSerif" BOLD="true" SIZE="12"/>
352 </node>
353 </node>
354 </node>
355 </map>