meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
maemo2010:grp11:start [2010/08/20 13:34]
grp11
maemo2010:grp11:start [2010/08/26 19:19] (current)
grp11
Line 5: Line 5:
 ===== Idea ===== ===== Idea =====
  
-In construction site there is many tasks/events that is done, and some task need to be informed to other workers/people.  +In construction site there are many tasks/events that are done, and some tasks need to be informed to other workers/people.  
-Idea of the work is to inform when some events are done and what kind of event is it. This will keep outsiders out of the site where is egheavy lifting.. This can also be used by scheduling different tasks so when one is done then another can be started after it.+Idea of QtConstruction is to inform when some events are done and what kind of event is in question. This will keep outsiders out of the site when something potentially dangerous is happening (e.g. crane lifting heavy concrete pieces)Because the application is designed to be used on the site and typing in those conditions can be hard, QtConstruction doesn't require any typing. Calendar events and times are selected by tapping icons and dates in a calendar.
  
  
Line 22: Line 22:
 |Maps/Location/GPS|2|Not Done| |Maps/Location/GPS|2|Not Done|
 |Shared data|3|Not Done| |Shared data|3|Not Done|
 +
 +===== Implementation =====
 +
 +{{:maemo2010:grp11:qtconstruction_classes.png|Design}}
 +
 +The application is divided into two parts: view and model. View part has control and user interface part of the applications while model handles and stores the data. View consists programs controller and UI, Model consists of Event storage class, Event and Event type model. Event type model is handled as QStandardItemModel which allows its usage straight in QListViewWidget and other Qt view widgets. For events a custom storage class called Event is used. Event class holds information about event start time and end time, date, type and location.
 +
 +MainWindow launches ViewDialog and AddDialog. ViewDialog gets a pointer to EventStorage so that it can access the events.
 +
 +===== Tools used ====
 +
 +We used NokiaQtSDK for making the application mainly because we couldn't get Maemo to run on our computers and we had limited time. Also because Maemo5 has native Qt support we wanted to try that out. NokiaQtSDK is easy to install and can be downloaded for Linux and Windows. It has IDE, QtDesigner for drawing the UI and tool chains for making Symbian and Maemo packages. However, we found out that it builds Maemo packages with invalid packet structure. We don't know how to fix this.
 +
 +
 +We also used Subversion version management system and a SVN repository for storing and merging the code. We created accounts in Assembla.com for the codecamp, created a SVN repository there and installed a program called RabbitVCS on Ubuntu which has a Nautilus integration. SVN makes sharing and merging the code easier but in conflict situations it makes a bit of a mess of the code and it requires manual cleaning.
 +
 +===== Future improvements =====
 +
 +In the future, the system could be modified to support map api. The user could draw the area of the notification on the map and the location would be saved in Event class. Because Event is used through interface MEVent, a new implementation of it wouldn't require many changes. Also, the application could use more event types. That would basically mean just drawing more icons and adding them to the event type model. 
  
 ===== Screenshots ===== ===== Screenshots =====
Line 28: Line 47:
  
 {{:maemo2010:grp11:mainmenu.jpg| Main Menu }} {{:maemo2010:grp11:mainmenu.jpg| Main Menu }}
 +
 +Also shows todays events.
  
  
Line 47: Line 68:
 {{:maemo2010:grp11:addmenu_hours.jpg|Adding time}} {{:maemo2010:grp11:addmenu_hours.jpg|Adding time}}
  
-Slides is easy to use for setting up the time...+Slides are easy to use for setting up the time...
  
  
Line 58: Line 79:
 ===== Code ===== ===== Code =====
  
-Upload and attach your project **source code** package here. +The armel debian package might not install on emulator or deviceNokiaQtSDK's QtSimulator can be used to run the application. (We don't know why NokiaQtSDK doesn't build a working Maemo install package). 
-  * Clean up compiled binary files before making package + 
-  * Use .zip format+{{:maemo2010:grp11:qtconstruction-packet.zip|QtConstruction source package}}
      
 ===== Conclusion ===== ===== Conclusion =====
  
-Maemo programming environment is bad to install. So we ended up with Maemo Qt which was easy to install. +Maemo programming environment is horrible to install and to run. So we ended up with NokiaQtSDK which has ready made Maemo tool chainWe tried both Linux and Windows version of the IDE and it couldn't build a working Maemo application installer packet. Otherwise it offers complete development environment. Nokia's QtMobility libraries should support Maemo and it should be possible to use their APIs in Maemo programs. We wanted to use the map API in our application but we couldn't get it to work and all the tutorials we found were for Qt for Symbian. 
-Was difficult to add map or gps in to the software. And also because we had only less than 24 hours of time, we needed to skip few functionalities that would be nice and great for this application+