forked from suvajitgupta/Tasks
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
228 lines (151 loc) · 8.06 KB
/
README
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
GETTING TASKS & SPROUTCORE CODE
==============================================================================
Change to the directory where you would like to work on Tasks and type...
git clone git://github.com/sproutit/sproutcore-abbot.git abbot
git clone git://github.com/suvajitgupta/Tasks.git tasks
cd tasks
# if you want to play with the 'touch' version
git branch --track touch remotes/origin/touch
git checkout touch
cd frameworks
git clone git://github.com/etgryphon/sproutcore-ui.git scui
git clone git://github.com/etgryphon/sproutcore-uds.git scuds
git clone http://github.com/etgryphon/sai.git
git clone git://github.com/suvajitgupta/sproutcore.git
# if you want to play with the 'touch' version
cd sproutcore
git remote add upstream http://github.com/sproutit/sproutcore.git
git fetch upstream
git branch --track touch upstream/quilmes
git checkout touch
cd ../../
If you don't have the latest Ruby gems, type...
sudo gem install thor
RUNNING PERSEVERE
==============================================================================
To start the Persevere server...
./server-start.sh
To stop the Persevere server...
./server-stop.sh
INITIAL PERSEVERE SETUP
==============================================================================
After starting the Persevere server (see above), run a script to create the
first user (after which you can log into Tasks and use the User Manager GUI):
./user-add.sh 'System Admin' 'SA' 'Manager' localhost:8088
(enter/reenter password and remember it!)
./user-add.sh 'Guest User' 'guest' 'Guest' localhost:8088
(press Enter twice to create a blank password)
ADMINISTERING PERSEVERE
==============================================================================
Navigate to the following URL to directly manipulate Persevere data:
http://localhost:8088/tasks-server/explorer.html
RUNNING TASKS
==============================================================================
1) Start the SproutCore server...
../abbot/bin/sc-server --port 4400
2) Navigate to the following URL...
http://localhost:4400/tasks
3) Enter 'SA' in the dialog box and the password you set earlier and press Enter.
The Tasks GUI should come up.
4) Add a project, add tasks to it, hit Save periodically, have fun!
Alternatively, to get some sample data to play with, you can click
on the Import button and paste in the contents of the file:
apps/tasks/tests/data/import_data.txt
GOOGLE APP ENGINE (GAE) DEPLOYMENT (Fast Path)
==============================================================================
1.) Run the following command from inside Tasks' root directory
> python tasks.py setup <app identifier> <build indetifier>
-- where <app identifier> is your GAE application identifier (i.e. tasks-demo)
-- and <build identifier> is you build name or number (i.e. beta1)
2.) Then follow steps 8 & 9 above in the GOOGLE APP ENGINE DEPLOYMENT
GOOGLE APP ENGINE (GAE) DEPLOYMENT
==============================================================================
If you want to deploy Tasks on the cloud, you can get a GAE account and deploy it:
1) If you don't have a GAE account, sign up here:
http://code.google.com/appengine/
2) Download the GAE SDK if you don't have it (link for Mac below):
http://googleappengine.googlecode.com/files/GoogleAppEngineLauncher-1.2.8.dmg
3) Install sproutcore as a gem if you haven't done that already:
sudo gem install sproutcore
4) Build Tasks for deployment & get a cup of coffee...
sc-build -rc --build=<build id>
5) While enjoying your Java, get the Tasks-GAE server code:
cd ../
git clone git://github.com/joshholt/SproutCoreTasks-AppEngineBackend.git tasks-gae
cd tasks
6) After sc-build finishes, copy tasks production build to tasks-gae:
cp -r tmp/build/static ../tasks-gae
7) Inform GAE about production build:
<your-favorite-editor> app.yaml and fill in your <build id> and your
GAE <application identifier> (first line)
8) On a Mac, run GoogleAppEngineLauncher (downloaded with GAE SDK earlier):
From 'File' menu, choose 'Add Existing Application...'
Browse to tasks-gae and press 'Choose', then press 'Add' button
Press 'Run' button at top left to test production build locally by pressing the 'Browse' button
Signup as a new user from login screen and ensure Tasks comes up and works
9) Now deploy to the cloud by pressing 'Deploy'
Sign up on Tasks running on GAE deployment at http://<application identifier>.appspot.com
Make newly created user a Manager using GAE 'Dashboard' button at top right:
Click on 'Data Viewer' under Datastore section on left
Select 'User' table from select field view
Click id of user and change 'role' to '_Manager'
Login to Tasks now and start adding projects/tasks/users...
RUNNING LEBOWSKI
==============================================================================
1) From another terminal window, run the Lebowski server:
lebowski-start-server
2) From another terminal window, run Lebowski scripts:
cd spec
lebowski-spec -f n main.rb
3) Before reruning step (2), stop Lebowski server (Control-C) and restart it (Step 1)
TASKS OVERVIEW
==============================================================================
Welcome to "Tasks!" - it was created for a few reasons:
1. To become a comprehensive sample application that goes beyond "hello world"
examples (like "clock") and snippets showing off facets of SproutCore
(like "drag"). SproutCore is very elegant and powerful framework and my
goal is to use Tasks to ramp up as well as showcase its capabilities on the
desktop and iPad with a single application.
2. To illustrate how to engineer a non-trivial application using things like
a task plan (scope/assignments), wireframes/mockups (vision/GUI design),
statecharts/MVC structure (technical design), and integration with a remote
server via REST/JSON.
3. We all build software and "Tasks" can become your agile software management
tool - you won't need the cumbersome task tracking & bean counting tools
overhead staff like to justify their existence with :-)
4. Last year, SproutCore has undergone an explosive launch and maturation.
During this metamorphosis, Tasks has become the SproutCore issue tracking tool
What better that an application built with SproutCore itself!
Tasks is "in progress" - I plan tom ature it into a tool to manage the development
of very complex applications. I hope you will find Tasks useful as you start your
journey with SproutCore. Please send me your feedback or code contributions!
-Suvajit Gupta ([email protected])
TASKS ARTIFACTS
==============================================================================
To start getting oriented with Tasks, scan the following artifacts in the
docs/ folder:
1. TasksPlan.txt: shows the work breakdown and assignments - feel free to pick
up an item that is not "Done" and hack away at it!
2. TasksWireframe.png: shows the initial GUI design with callouts explaining
the key functionality.
3. TasksMockup*.png: shows the visual design concepts we used to style Tasks.
4. TasksStatecharts.pdf: shows the states/transitions within the GUI.
5. TasksControllers.pdf: shows how the various controllers are wired together
and how the views relate to them (implementing thge root controller pattern).
6. TasksAPI.xml: drag this file into your browser - the files in the "include"
folder render this specification in a nice format for you to understand the
REST API endpoints.
7. TasksJSON.xml: documents the model object structure for what is sent to the
server via REST calls.
8. TasksFileFormat.txt: Shows the simple/intuitive syntax for importing data
into and exporting data from Tasks. In fact, the TasksPlan.txt is itself
written in this format and can be imported into Tasks!
TASKS ATTRIBUTIONS
==============================================================================
The filter on/off icons:
Diagona Icons
Copyright (C) 2007 Yusuke Kamiyamane. All rights reserved.
The icons are licensed under a Creative Commons Attribution 3.0 license.
The color indicators on the filter icon, as well as numerous other icons in Tasks:
Silk icon set 1.3
Mark James - http://www.famfamfam.com/lab/icons/silk/