Home

Networked Dreams - Stephen Fortune

image

Contents

1. 4H name VARCHAR 245 d date DATE gt category INT 3 id INT suggestion VARCHAR 200 timetype VARCHAR 25 Indexes PRIMARY fk cause data dream1 idx fk cause data causes idx d id UNIQUE m 7 timeuse id INT 1 gt category VARCHAR 45 gt name VARCHAR 200 timeuse id INT 1 Indexes PRIMARY fk_cause_dict_timeuse1_idx Fig 7 Part 3 of ER diagram please note that it has not been possible to display the connection lines in Indexes the above crows foot diagram they are the same as illustrated in Par 2 Both cause and category have the option for the user to offer their own category for the dream if there are no categories that fit their desires This is reflected in the tables user_suggestion_cause and user_suggestion_dr An earlier implementation that used one 28 table for all suggestions was revised once time use research was incorporated into the project 3 2 2 User Journey Design In order to guarantee a user journey that maximises the amount of data gathered it must not be possible for the user to navigate using the browser past a screen that captures data This was designed in the following manner l I 1 lt lt cr gt gt log in create I 1 1 I l l enter data UPDAT lt lt create gt gt lt lt destroy gt gt enter data UPDATE lt lt create gt gt logout php create lt lt
2. In both of these website services expert interpretation is offered as a service both www dreamscloud com and http www dreammoods com follow this model or a wisdom of the crowd approach to interpretation is offered http dreamdoze com My project would instead offer the power of infographics and the ability to form communities with people who dream about similar things as the means of interpretation In allowing users to create micro communities of shared dream subjects am aiming to channel some of the splintered social media that has been evident in the preference for closed media like Whatsapp versus broadcast social media such as Facebook amp Twitter My desire to realise this project was driven by a curiosity to see whether the sociogram visualisation predominant in network culture and social media especially which makes up most of our digital lives would provide an engaging window into our sleeping hours o o o e 6 o o a AliciaAmold amp arleenElouise Clark Anamariaatasha Craig lesha e e rucilla Carl Geraldine Cecily o e o e e a Noelle Rudolf o Melodee Stephan Jakerrancina y won a E e Lilian Y Mem elonie Theo Maxima Ronda Talia Fort e Ser roe ci Jenell Maraie Hester Alain Elmer Karan LPRA o Pr O 7e Debrah Karl peti inso o Lana e Ge Theda Tra pavis Marshall The gt e e Darlene O Darci Los Rowan Sommer y Riva ineDor e ine D e o Tee RU Fairy meni
3. several implementations in both web and mobile app form As such devoted a considerable amount of my time to researching existing applications in the field to best determine how to distinguish my offering One of the more interesting developments in this area has been the overlap between Quantified Self Communitities and Lucid Dreaming Quantified Self designates people across a wide range of demographics who use devices spreadsheets or even humble pen n paper journals to note data from their life and analyse the trends that emerge from their tracking 2 mem incom FS 23 918 cures w T w m BUT s eem rem E y EX ee ee j ER x LIO u ue Bs is EIS 3 ann dal t Pium 7 i h uuu in i m wu MS q 3 4 my mu m FT rr PT mv un ied m me gs gs mus ma B 9 manansss zm m iunn r Taie En iim mm TM at as FE ae m Pm ting M no m mm SAM SAM IDAM 12PM 2PM 4PM 6PM SPM 10PM CRASAS ana as Egudadce o onoo i 12AM 2AM 4AM 6AM Fig 1 Left Chris Dancy s quantifies self journaling Right Stephen Wolframs Decade of Personal Analytics Selection of Quantified Self Communities http your flowingdata com http daytum com https www chartmyself com https fluxtream org welcome A sample of Quantified Self Communities and Services Lucid dreaming is a form of dreaming where the dreamer is awar
4. 2 2 Research To focus the breadth of data possibly contained within any given users dream a categorisation feature was added which is a stipulation of any dream logged These meta categories provide an anchor for data analytics To establish what types of categories users wish to label their dreams as researched as many of the existing web offerings for dream journaling as possible see section 2 3 1 Categorizing the Land of Nod A crucial part of making this app relevant to data analytics as existent within the domain of personal analytics is providing non dreaming data i e waking data to correlate with the contents of ones dreams The app takes account of what a given user was doing the night before they had a dream This is currently done as a subsequent step of any dream being logged Inspiring the waking data gathering was a focus on Time Use Research Time Use Research originated in contemporary workforce management its a means for a worker to diagnose their work life balance This field of research understands time as falling into the following categories Contracted time Committed time Necessary time ded qoum Free time Dagfinn Aas Time Use Studies Dimensions and Applications 1986 utilised these categories as meta ordering principles for the options available to a user to designate what they were doing prior to sleeping and dreaming This is a feature which can be elaborated upon as the proj
5. The rationale behind dispensing with a mobile app delivery was that concluded that the data analytics the most interesting and crucial component of this project and that effort was best expended realising this as properly as possible Moreover a website could be ported to a phone app with less effort than an android app could be ported to a website An agreement was reached in consultation with my supervisor where the app service would be provisioned via a website An option to package the application using PhoneGap was entertained as a potential means of delivering the service as an app However with phonegap the ability to develop an integrated alarm clock was negated The visualisations removal was borne of a realisation that network visualisations were perhaps too complex a requirement to undertaking within the context of project delivery timelines Visualisations still play a part in the project just not on the personal level had originally intended them to be Requirements 4 amp 6 from the original requirement spec Appendix Section 7 6 were intended to be consolidated into a single requirement with three distinct use cases entry points However in the end only 1 entry point was realised as it became apparent that an overhaul of how data was accessed from the database and presented in JSON was requisite to a seamless functioning of the data visualisation 3 1 2 Summary of Requirements Modifications Requirement Func
6. developer specified data to the Document Object Model Once bound data driven transformations can be executed on said data It outputs visualisations in SVG format by performing HTML and CSS transformations through javascript scripting 2 4 2 Development Environments 12 The PHP and Javascript portions of the the project were developed within the Netbeans IDE which has good support for PHP and HTML5 technologies It s support for javascript is less useful With hindsight a from first principles framework focused approach integrating these technologies would be better The WebFlow visual editor was used to construct the HTML and CSS for this project It is a browser based WYSIWYG editor akin to Dreamweaver or Mozilla Komposer 2 5 Structure All imagery contained in this report likewise accompanies the submission on the media containing the code Please note that occasionally this document transforms from a default portrait orientation to landscape for the sake of clarity of the information presented 3 System 3 1 Requirements 3 1 1 Evolution of Requirements from Initial Brief The realised project evolved from the initial brief according to two particular domains There were Theinitial plan for a phone app implementation The primacy of data visualisation as the main customer take away My initial requirements envisioned provisioning this service in the form of an android app the entirety of this proposal and
7. gt array 5 foreach POST as key gt value EH if value t pr ovilled the form has text grab the datarab the data form key VALS explode value F F d Ed dreamDB getInstance gt get_dreamid_by_uid SESSTON uild El toreach torm as 1 1 A if sizeof 1 VALS gt 0 dreamDB getInstance tables d 1 VALS 1 Q x dreamDB getInstance gt many d Si vaLs i TABLE F F echo end of many function lt br gt Fig 13 Snippet comma separated values to associative array source logdream php echo trying to add data POST category POST comment for user gid J lt br gt Using an associative array in this manner is favoured for the sake of DRY don t repeat yourself within the DreamDb class The many function can update several different MySQL tables which share the same column names and structure through the one function 158 E public function many d_id array table amp string 160 qID this gt query SELECT MAX id 1 FROM dr table get query je 161 row qID gt fetch_row create an array listing of above object 162 gid row O acce item indexed at O for value de r d 163 5 foreach array as e 164 gentry this real escape string e iser input 165 gentry this gt formatting entry 166 this query INSERT INTO dr table
8. Allow members to form communities based on dream commonalities Do this in a consent focused manner such that people within the community could form pseudo anonymous communities where they can share their dream data and content This pseudoanonymity has informed the API thrust when pulling data from Facebook and Google Incorporating an alarm clock based mobile app to make the experience better suited to capturing dream data A further scope for the app to evolve would be through the integration of more APIs into the system This API integration would aid the automation of aspects of the user experience which may impede the crucial period during which dream recall is most potent Use case 7 Calibrate friends location objects databases At present the user must input data in two areas where inferenced feedback such as is possible from aggregating data from APIs would be beneficial The Objects data list A scripted means of scraping data from the users Amazon wishlists Pinterest account or indeed a smart selection of what brands the user has engaged with on facebook This scraped data could be autopopulate the Objects List with suggestions relevant to that user A further fun addition could be made for the burgeoning internet of things linking users to the internet activity of items which appear in their dreams The second area is the Waking Data Logging portion of the experience There exist many clever iOS based
9. H O comments TEXT m numppl INT 3 7 dd INT 9 d id INT 1 numplace INT 3 Mag ee cci gt numeact INT 3 m dd INT Q suggestion VARCHAR 200 3 d id INT 15 PRIMARY fk_dream_mmbr_idx fk_dream_dr_category1_idx 9 timetype VARCHAR 25 PRIMARY fk cause data dream1_idx m did m 1 did INTOS 9 location VARCHAR 100 gt em activity VARCHAR 100 gt gt m m sd JGINT S ig NTIS gt object VARCHAR 100 fk cause data causes idx d id UNIQUE m name VARCHAR 200 timeuse id INT 1 timeuse id INT 1 DJ H category VARCHAR 45 PRIMARY uM fk cause dict timeuset id person VARCHAR 100 Fig 6 above is part 2 of ER diagram Dream is the principal table which stores the date category and user id of dreams logged on the service Dreams are taxonomised via 25 categories stored in the reference table dr_category A similar organisation of categories operates in cause which logs the users activity prior to dreaming The cause table has an additional reference table timeuse This reflect the incorporation of timeuse researcher into this project The four tables dr_locale dr_activity dr_object and dr_people are not utilised for the current core functionality of the project However they will be extended in functionality See Section 5 2 1 for more details 27 m id INT 3
10. Part 3 of ER diagram Fig 8 User Journey Sequence Diagram Fig 9 User Journey Flow Diagram Fig 10 Deployment Diagram Fig 11 Singleton Design Pattern Fig 12 snippet formatting function source Includes db php Fig 13 snippet comma separated values to associative array source logdream php Fig 14 snippet DreamDB function to handle csv associative array source db php Fig 15 snippet preserving user input on form refresh source join php Fig 16 User Journey PHP Sequence Diagram Fig 17 Collaboration Diagram Fig 18 SESSION flow diagram Fig 19 snippet ensure one dream per 24 hours Source logdream php Fig 20 snippet dynamically populate forms using jQuery amp PHP source complete php Fig 21 SQL create view demographics Fig 22 snippet dynamically visualise data part 1 Source dataviz php Fig 23 snippet dynamically visualise data part 1 Source dataviz php Fig 24 snippet dynamically visualise data part 1 Source dataviz php Test Records GUI Illustrations Fig 25 Social Media Demographics Fig 26 Android App wireframes part 1 Fig 27 Android App wireframes part 1 Fig 28 Platform Agnostic Wireframes sign up process Fig 29 Platform Agnostic Wireframes sign up process complete Fig 30 Platform Agnostic Wireframes data entry Fig 31 Platform Agnostic Wireframes data visualisation Fig 32 Platform Agnostic Wireframes meta categorise user tags 14 17 26 27 28 29 30 30 31 32 3
11. CIC e D Two Three Congrats Please check your email for registration confirmation 83 Fig 30 Platform Agnostic Wireframes data entry Log Dream Log Dream foommm EE m D Actions Waking Data E Work E Work Out Y Dinner El Drinks O 3 Life M Gadgets O Downtime Places 84 Fig 31 Platform Agnostic Wireframes data visualisation Networked Dreams SS S anos Je Running Falling 85 Fig 32 Platform Agnostic Wireframes meta categorise user tags Networked Dreams An register log in 86 7 6 Deprecated Requirement Specification Requirements Specification RS Document Control Revision History Date Versio Scope of Activity Prepared Review Approv n ed Te 10 3 2014 2 JjUpdte CC CT Distribution List Name Version Stephen Fortune Related Documents Title Comments Title of Use Case Model EEE Title of Use Case Description Stephen Fortune 13119508 10 03 2014 Table of Contents Document Contour caida ec anita Coi bi Dinar Gi al ub doa etn dapi aci Ex C dti Sid Revision Historv 0e nase ana anna nn anne nenne Egg elo diro a fal Ed ERREUR Related DOCU Mens ct a scat cod besos a ct detto e eminet secu RM Felice te LESS Ee eR EE EROR 1 it ure A A a A ee APTO EOL OO di 4 Functional eres iii BOE DOSE Pa moc Satu cc iil ee Da dou l
12. Trinkets and ephemera like this would increase the share ability of content produced within the Networked Dream Platform 5 3 1 Facebook and other social media API integration 61 Provides indexing across multiple datasets Automation of the users activity the day previously Extends the analytics capability of the product https developers facebook com blog post 2013 05 08 platform updates operation develo per love 5 3 2 Enhanced what were you doing before sleeping functionality One of the great appeals of many of the current crops of life logging apps is the extent to which they can automate the story of what you did on a given day through data analysing social media Some exemplary instances of this automated lifelogging include Saga and Kennedy Failing such automation emails such as this is my jam or bookmarklets which expedite the passive logging of waking date relevant information 5 4 Other Technologies 5 4 1 Databases The network diagram database as a model to pursue in the future e g http www neo4j org Graph Database 5 5 Further Research 5 5 1 Analytics Demographics and Taxonomising the Human Psyche One which interesting design consideration that arose during creating the project is how does one concisely categorise i what dreams are about ii tally those themes with elements of the human psyche This is an area for further fruitful research e g 62 the Hall Van de Castle System of Quan
13. in order to allocate them approximately a month of the dreams contained in my dream ID csv 71 The member table auto population tables saw two phases which corresponded to my decisions to partition the registration process into two steps explained elsewhere dream 21042014 sgl contains the 52 members indicative of the combined work of mmbrSQL generate php dreamSQL generate php scripts The names were from my social network The ages instead randomly assigned according to demographic breakdowns of age groups took Facebook as my inspiration Age Range Add Relationship 18 to 22 Languages DEM 30 to 38 Religious 40 to 49 Views 50 to 59 60 to 69 70 to 99 Political Views WORK AND EDUCA Other Fig 25 Social Media Demographics e g Facebook Each user was randomly assigned a profession from the list of Gender was split 50 50 Marriage was randomly assigned from the list of Currently learning was randomly assigned When the mmbr profile table was amended reflecting a reorganisation of the Entity Relationship Diagram driving the project a second stage of auto generation of entries was necessitated The original ages were used because there was sufficient work in modifying the ages 72 into a YYYY MM DD format Once member profile was generated the final autogeneration was in the wakingdata table This was a simple random assignment exercise Scripts Read Me taggrab class php
14. those relationships information that network diagrams usefully explicate potential for comparison to aggregate analytics that data analytics of the bulk user data affords The aspiration is that the app will provide memory recall tools It is a noted phenomena that logging your dreams aids you with subsequent recall of dreams The data analytics will be a feasibility study of the scale required to create micro networks for users of the app have conducted research on sleep tracking apps that exist in the market have concluded that only one iOS offering DreamOn currently incorporates a friend tagging mechanism 3 Technical Approach Research Product research of existing sleep logging apps All of the sleep tracking apps include a custom alarm clock feature so am following a predominant design paradigm in the market Research leads me to believe that design aesthetics would be a crucial factor of any such app Ultimately the app will strive for a fluid user experience and an aesthetic reskin would be saved for future versions have not attempted data visualisation before to familiarise myself will get acquainted through GEPHI I do not believe this can be implemented on android ergo the use of GEPHI will be purely a learning exercise for the author Requirements Capture Requirements will be determined via Object Oriented design process literature review My literature review is concerned entirely with network visualisat
15. DB is not updated HTTP interaction PASS 48 8 4 PHP HTML javascript javascript javascript javascript javascript javascript javascript javascript javascript javascript javascript javascript ensuring that if no value entered for a form field nothing is added to DB same as above same as above same as above same as above same as above same as above same as above same as above same as above same as above same as above same as above same as above disable javascript wakingdata php index php log in index php join login php login php SOLUTION problem with logic of login php fixed see user journey below join php submit join php password prompt join php email detection complete php cities complete php radio button logdream php logdream php submit logdream php Submit amp comments field as sanity check HTTP that DB is not FAIL interaction updated optimal behaviour if no entry it reloads but doesnt commit to DB This can be circumvented by clicking submit however HTTP interaction PASS ERE nav menu doesn t degrade HTTP interaction PAIE EAE user who has redirect to not logged PASS dream logdream php user who has redirect to logged dream profile php Pasa PASS FAIL header redirect to complete php fails FAIL FAIL FAIL PASS FAIL FAIL FAIL PASS Val 3
16. LogOut WakingData dream_id int correlate boolean false CheckUID _ SESSION uid false header index php logged CheckDreamDate SESSION todaysDream false header profile php og CheckCauseCorrelation correlated true header profile php setDreamID dream_id correlated Scorrelated LogOut true Profile DataViz dream_id correlated checkRegistered SESSION registered false header complete php checkUALIAS SESSION ualias false header index php CheckDreamDate SESSION todaysDream false header logdream php CheckDream SESSION dream_id false SESSION dream id setDreamID CheckCauseCorrelation Scorrelated false header wakingdata php setDreamID Sdream id LogOut Fig 18 SESSION flow diagram Diagram Note Profile and DataViz share the exact same control flow methods and for the sake of space they have been represented as the one object above The author acknowledges that this would not be proper practice in actual software engineering practice 37 3 3 4 Notes on Control Flow Most of the session assignment consists of checking whether there is correspondence in terms of primary and foreign keys or of other unique indexed columns of a given table to determine whether a new update operation is permitted The one area which requires different logic is the detection of whether a users dream date is current or not MySQL records
17. MM It is cumbersome to query that format Therefore the created view calculates the age based on the entered data of birth CREATE VIEW demographic AS SELECT m usrid m gender m marital m job DATE FORMAT FROM DAYS TO DAYS NOW TO DAYS m dob Y AS age FROM mmbr profile m querying the view SELECT COUNT d d id as occurrences m gender m marital m job m age FROM dream d INNER JOIN demographic m ON d usrid m usrid WHERE d category SPARAMETER AND m gender M m gender F AND m marital SINDEX AND m job SINDEX AND m age BETWEEN 18 AND 24 GROUP BY d usrid Fig 21 SQL create view demographics Data Viz The project deploys the D3 javascript visualisation library see Section 1 3 Libraries for further details This allows the dynamic generation of visualisations based on data from the database As is convention for the project DreamDB handles the retrieval of data from the database In accordance with the server side client side cooperation of PHP and Javascript respectively an intermediary PHP file has been used in order to dynamically access data based on the selections made by the user 40 In a manner similar to the jQuery snippet illustrated above in Section 3 3 4 Notes on Control Flow changes in a dropdown menu are detected when the submit button is pressed 43 label class dream selector label for dreams gt Show me who dreams about lt label gt 42 lt form
18. and CREATE READ and UPDATE functions A private function handles the formatting of text values entered to the database It removes whitespace and other alphabetical character separating characters and replaces them with underscores It additionally converts all text to lower case This ensures consistency of comparison queries executed on the database 177 H private function formatting param 178 param trim param 179 param preg replace param 180 param preg replace param 181 param preg_replace w 7 w lt w param 182 param strtolower param 183 return param 184 Fig 12 snippet formatting function source Includes db php There is one instance where the DreamDB class encapsulation may be broken in terms of one of the the PHP pages also knowing the names of the tables being updated This is located within logdream php where the comma separated values entered in the form fields Embodied Activity People Objects and Places are allocated into an associative array which uses the MySQL table names as KEY indexes 32 sid sEssroN ul form array lea gt array TABLE gt activity VALS gt array ppl gt array TABLE gt people VALS gt array 2n obj gt array TABLE gt object VALS gt array 1 plc gt array TABLE gt locale VALS
19. class selector box action onSubmit return formUpdate this gt 44 lt select class w select dream_selector id dreams name category data name Dreams gt Fig 22 snippet dynamically visualise data part 1 Source dataviz php This invokes the formUpdate functions 176 E function formUpdate form IFF 178 var url parseInt form category value 179 Li d3 json Includes jsonFetch php val url function json graph json 180 console log within the db json section 181 182 O function graph jsondata 183 var data jsondata 184 Fig 23 snippet dynamically visualise data part 2 Source dataviz php formUpdate is a function that contains calls to two subsequent functions d3 json part of d3 library see below for function definition graph jsondata user defined function definition d3 json function url callback d3 text url application json function text callback text JSON parse text null y callback function json graph json in above diagram 41 Complicating matters a little is the use of a Javascript anonymous function call illustrated in the above diagram with the curly braces highlighted yellow The function definition is included for reference The x Axis of the visualisation is defined as a linear scale with a domain between 0 and 100 This allows the data returned to be visualised as percentages EG when you query what peopl
20. data driven development approach Per the necessity of users logging data standard CRUD functionality was implemented as web service Data Driven Development necessitates a well modeled entity relationship diagram The entity relationship diagram determined the database that was core to this project 25 have split the diagram in two you can view it full scale in the supplementary files accompanying this submission to illustrate the reference tables and their relationship to the core tables m 9 dob DATE gender VARCHAR 1 m name VARCHAR 100 m email VARCHAR 100 ualias VARCHAR 100 name VARCHAR 200 password VARCHAR 100 gt al Fig 5 above is part 1 of ER diagram User details essential to authentication are stored in the mmbr table An additional mmbr profile table holds the users demographic data age gender location marital status and employment status Mjob mmarital mcountry and mcity are all reference tables This allows for instance in the case of jobs and country amp city for subsequent additions of rows to be made to these tables extending the scope of demographic information attainable EG Currently registration caters for users who wish to join from Ireland with a county by county 26 granularity The rest of Europe is catered for in terms of capital cities 2 password VARCHAR 100 RR 0 d date DATE category INT 3
21. destroy gt gt Fig 8 User Journey Sequence Diagram This was further designed with additional control flow steps 29 index php addUser php Sign Up today s dream exists gt gt H M SPLELDELFLELLELE completeReg php profile php dreamEntry php wakingData php Complete Reg H Edit Member Profile Add Dream Add Causes journal php completeReg php provides scope Weekly Log for email authentication prior to dream data entry Fig 9 User Journey Flow Diagram The registration process is broken into two steps indicated above as addUser php and completeReg php This is to permit an immediate sign up and to separate the additional data from the bare minimum data required to begin Partitioning the sign up process in this manner permits an entry point for a subsequent email authentication step Architecture The components are architecture of the project conform to this diagram Network fC HTTP f AEN Hl ABE Application MySQL Database Client Server i Server Fig 10 Deployment Diagram 30 3 3 Implementation Per data driven development a well modeled entity relationship diagram was key Using MySQL workbench visually re designed the database allowed constraints to be added This both guided the correct procedure for updating tables and their associated tables and thus reduced my reliance upon PHP error catching correctly updating the approp
22. directed to a screen where they enter a name for Friends Object Location 1 4 2 User selects a photo from their gallery to append as a thumbnail autonavigate to gallery part of phone from there should be able to access Instagram and other folder for images and such 1 4 3 Thumbnail and name created as button added to the Friends Object Location database and menu Class A3 2 Access calibration via settings screen A3 2 1 User may select from a menu containing Friends Objects and Locations A3 2 2 Dependant on above selection sub flows 3 1 1 3 1 2 or 3 1 3 may be triggered Termination Post condition Database containing the users data is readied Requirement 8 Alarm Clock Description amp Priority The user sets an alarm clock of their choosing for the following morning 1 1 5 2Use Case Scope The scope of this use case is to set an alarm which facilitates data entry upon awakening Description This use case describes the process of setting an alarm the use case that triggers the data entry Flow Description Precondition User has opened the app Activation Selection of an alarm clock time or create new alarm option Main flow User selects preexisting alarm 1 User creates new alarm 2 User modifies alarm time parameters HH MM repeating 3 User modifies snooze and wake up enhancers 4 User selects save or end to indicate that they wish this alarm to be set for X hour
23. existing websites That process is now detailed utilised scripts URLHarvester php URLregex php and dreamHarvester php to parse the user logged dreams and categories of dreamdoze This returned the HTML as text which I ran through some regular expression regex text parsing scripts All of these scripts were ran as batch files from the command line in an ad hoc manner See Scripts Read Me below The end result of mass scraping was 1470 URLs however not all were comment regex compliant equates to 29 dreams for 50 people hand classified the 1470 URLs allowing this process to inform the meta categories I had tentatively devised thus far now possessed a CSV file of URLs and their categories per my projects ontology The database was constructed in such a way that kept a record of each dream URL which had been assigned to a given member This enables me to at a later point do more in depth and accomplished text mining of the URLs filling out the tables dr activity dr category dr locale and dr people with data that might at least have some originary relation to the taxonomy imposed on the raw data With an indexed CSV the next stage was to assign these dream IDs to pseudo users of the website again erred away from total randomness instead using the names of people who had already appeared in my dreams This list was complemented through performing a sociogram analysis of my friends on facebook 50 members were desired
24. list and taps the image of each person who was in their dream 1 2 4 App greys outs displays a tick over each user when selected 1 2 5 User selects done button to complete tag logging 1 3 Objects in dream subflow 1 3 1 App presents an input bar at top of screen User may enter items by keyboard with commas separating items 1 3 2 User may select objects from an A Z thumbnail list 1 3 3 App presents an A Z ordered list of objects represented by thumbnails and name 1 3 4 User scrolls through list and taps the image of each object item who was in their dream 1 3 5 App greys outs displays a tick over each user when selected 1 3 6 User selects done button to complete tag logging 1 4 Places in dream subflow 1 4 1 App presents an A Z ordered list of people represented by thumbnails and name 1 4 2 User scrolls through list and taps the image of each person who was in their dream 1 4 3 App greys outs displays a tick over each user when selected 1 4 4 User selects done button to complete tag logging 1 5 Emotions actions in dream subflow 1 5 1 App presents an input bar at top of screen 1 5 2 User enters emotions and actions from dream and uses commas to separate their entries 1 5 3 User selects done button to complete tag logging Alternate flow A1 At any given quadrant user could select done without selecting anything in order to quickly get a longer snooze This behaviour will be accommodated by
25. reimplemented and extended to users 3 1 3 1 10 Use Case Scope The scope of this use case is to provide a means of analysing the aggregate data available on the platform with reference to a given users data Description Logging into an additional section of the website enables the user to compare their dream content against demographic parameters Users can compare their own dream trends to the dream trends of the population of platform users Flow Description Precondition Each user of the platform must have completed their member registration demographic information part of their profile Activation This feature can always be accessed by the admin users of the system Regular users of the system have this feature unlocked after certain criteria are met N amount of data inputted completion of metacategories completed end user license agreement Main flow 23 1 The user selects a meta category of dreams from a menu 2 The app generates a visualisation illustrating what a subset of users do before they dream of certain topics 3 This visualisation remains displayed until the user makes another selection from the first drop down menu Sub Flows 1 1 User adds additional parameters demographics via a GUI the query sent to the database is amended accordingly Exceptional flow User has no data but accesses this screen anyway Termination When the user returns to homepage Post condition 3 1 4 Data Req
26. script sourced from this website enables use of CURL to scrape HTTP data URLHarvester php Requires an array or a file to be read as an array of URLs It will parse all URLs and return a text file that contains every link that is hyperlinked to from a given URL in the above array URLregex php Requires URLHarvester php to have been executed Reads URLS from a carriage return separated txt file Writes cleaned text to a new text file dreamHarvester php Requires an array or a file to be read as an array of URLs that contain data formatted as dreams per the dreamdoze com format Writes title of dream to a file dreampara php Unutilised but can be used to strip all descriptive words used in relation to a dream LogicSearch php Extension of above unutilised parser designed to locate words ending with ing and ed as a means of quickly locating keywords relating to activity and this ea activity database table Compress php 73 Utilised to strip recurring URLs from a text file Important because I utilised a CRON job implementation of the data scraping Scripts designed to randomly choose URLs from an array and to append rather than overwrite to the scraper file over time this helped account for timeout requests on the part of CURL 74 7 4 Original Proposal Project Proposal Networked Dreams Stephen Fortune 13119508 stephen fortune student ncirl ie Degree Programme Name HDSS
27. supporting artifacts and rationale can be viewed in Appendix Section 7 4 and Appendix Section 7 5 The reasoning was that dream logging is best conducted immediately upon waking and therefore an application that 13 incorporated integrated alarm clock functionality was an excellent way to meet this criteria To further consolidate the ease of use graphical data entry was envisioned where users could quickly tag people places and object from precalibrated thumbnail databases Below was the original use case diagram compare with Fig 4 Revised Use Case Diagram p17 Calibrate Friends Place Locations ge cm EnterDreamData AnalyseBackEndData Admin GenerateDreamviz e CompareUserData EnterActivtyData Fig 3 initial use case diagram use case diagram Additionally wireframes of this initial mobile app project can be viewed in Appendix Section 7 5 Wireframes Providing the user with network diagram visualisations of the people places objects and emotional content present in their dreams was also a strong guiding imperative of the project This was due to the authors desire to create a platform that permitted the understanding of dreams through the power of dynamic infographics 14 Both these requirements are not part of the delivered prototype The app instantiation of the project idea was removed circa week 4 The personalised visualisation during week 12 see Project Management Gantt Chart Appendix 7 7
28. 09 05 14 09 05 14 form entry sanity checking 10 05 14 10 05 14 ensuring that entered data is not 11 05 14 11 05 14 hashing user passwords 12 05 14 12 05 14 design GUI for admin data access 21 04 14 21 04 14 HTML for admin GUI 21 04 14 21 04 14 for every dream randomly popula 06 05 14 06 05 14 SQL for ADMIN search 06 05 14 06 05 14 accessing facebook API through 16 05 14 16 05 14 User Manual 11 05 14 11 05 14 Run Book technical User Manual 13 05 14 13 05 14 script amp process for backups 08 05 14 08 05 14 populate cities table more compr 16 05 14 16 05 14 more precise data scraping scripts 16 05 14 16 05 14 mock up of what data visualisatio 19 05 14 19 05 14 cram for Advanced Programming 09 05 14 09 05 14 cram for Data Structures amp Algori 11 05 14 11 05 14 cram for Web Services 14 05 14 14 05 14 gather myself for Leona consultat 23 04 14 23 04 14 logic for lodgement PUT 24 04 14 24 04 14 slide 11 17 for Balance amp Lodge 25 04 14 25 04 14 sequence diagram web API proj 24 04 14 24 04 14 108 Gantt a a projec t Name java revision input output java revision exceptions java revision threads java revision socket java revision web services java draft two Career Bridge Reflection RESTful api documentation consistent palette tagging mock ups of UML Web Diagrams proof read code comments methods session diagram project mock up final tweaks responsive for dataviz page PROJECT F
29. 1 00 GMT where the comparison function detailed below cannot reconcile a day having passed To test the CSS of the website went to http jigsaw w3 org css validator and used the tool there to check the CSS To Test the HTML accessed http validator w3 org and used the tool there to test the HTML For HTML purposes the PHP contents of the file were commented out My project doesn t implement a great deal of classes In future revisions PHPUnit would present a useful way of testing this project 43 44 Ze 28 _SESSION SESSION SESSION SESSION SESSION SESSION SESSION SESSION SESSION SESSION SESSION same as above same as above same as above same as above EDGE CASE Ensure that URLS join php complete php can only be accessed when a registered user is not logged in and that join php is inaccessible once the db update it triggers has occurred same as above same as above same as above same as above same as above index php join php complete php login php visit join php when redirected to complete php invoke function DreamDB create user debug Log in Visit join php logdream php wakingdata php profile php dataviz php logout php HTTP interaction HTTP interaction HTTP interaction HTTP interaction HTTP interaction HTTP Interaction FORM param username test pwd test
30. 3 33 34 35 36 37 38 39 40 41 41 42 44 49 51 56 72 80 81 82 83 84 85 86 1 Summary Networked Dreams is a prototype venture into my efforts to create a dream logging app The app aspires to maximise the potential of information visualisation to both compel users to keep using the service and to offer users unique insight into that great unknown realm the subconscious This report describes the implementation of a Create Read Update Delete application in the vein of the above concept and appraises the prototypes suitability to the apps ambitions 2 Introduction 2 1 Background wished to develop a dream logging app for users to easily log their dreams and to provide data visualisation as a means for users to understand the connections existing within and between their dreams wished to use those visualisations and personal logging as a means into creating dream communities linked by trends discerned from aggregate data am targeting self trackers or Quantified Self and lucid dreamers in particular and a causal audience curious about their dreams Dreams are an aspect of peoples lives that people are always curious to learn more about Dream logging is an activity long undertaken by humans For instance there exists a 1955 microfiche digital archive of dreams it holds the collected records of people s inner lives their dreams their life histories Lemov R The Database of Dreams Dream Logging has
31. Candace o o rg 0 Lavera Maura e Ama 6 5 years tt kxet 5 a GO ra Oo 4 50 12 Fig 2 Immersion a network diagram interface to email Will Hunting 159 collaborators 20 849 emails Emails Sent 800 600 400 200 0 07 09 1112 14 Emails Received wished to explore the affordances of Network Visualisation infographics This is because Network Diagrams are very apt to our current state of digital technology interaction where vast amounts can be inferred about who you are based on the connections between the metadata you produce in interaction with digital systems It struck me that foregrounding the data visualisation as an interface to comprehension and using networked diagrams as the principal visualisation metaphor was a means to distinguish my product form extant Dream Logging offerings In the middle of my development it came to my attention that comparable research had been recently completed by DARPA and Indiana University s Center for Complex Networks and Systems Research Varol O Menczer F Connecting Dream Networks Across Cultures 2014 To me this is indicative that have hit upon an area of attention to a great many actors academic societal and personal 2 3 1 Categorising the Land of Nod Dreams are easily the most theorised area of human existence and as such kept a relatively arms length approach to the detail of some theories Instead when designing keyword categories
32. D Date 17 02 2014 1 Objectives Develop a dream tracking app for mobile Android combining an alarm clock and ability to tag feelings friends objects and places occurring in the users dream The alarm clock awakes users and prompts them to tag their dream meta data along the quadrants of emotions people present objects and places locales see diagrams The users data permits the generation of a network diagram data visualisation that illustrates connections between emotions and places people and objects An interactive section of the app lets user select an emotion tag and then visualise the connections in people places and objects accrued to that emotion over time spent in the land of nod The ambition would be to build this singular experience intended to be compelling enough to prompt repeat visits and use it into a self tracking community Users could build private communities with one another and compare if they share recurring themes in their dreams Connections would be visualised using network diagram visualisations This is a deliberate echo of sociometric diagrams commonly deployed to visualise social network connections The inherent appeal is that users can compare their dreams against other people and see if there is any commonality As proof of concept a personal singular experience will be designed will harvest the data from users of the app to a central server located database The alarm clock feature is inte
33. Date in a manner distinct to how date can be recalled via PHP A conversion of these two would never equate Therefore a conversion to epoch time limited to the YYYY MM DD is necessary in order to determine if a dream has already been logged for the given date at time of login 83 84 85 id dreamDB getInstance get uid by alias SESSION ualias 86 y 87 SESSION uid id 88 date dreamDB getInstance gt most_recent_dream id 89 90 t date Ymd time 91 E if strtotime t strtotime date 1 92 I 93 SESSION todaysDream true q header Location profile php 95 E else 96 SESSION todaysDream false 97 Fig 19 snippet ensure one dream per 24 hours Source logdream php Javascript The javascript used client side is rudimentary perfunctory It is ad hoc and designed to be as functional as possible It lends dynamism where needed For instance it enables the population of cities based on the country selected on the same screen 38 63 lt script src js script 65 E script 66 E function 1 68 E country change function 1 70 city load 73 Includes functions php choice country val 74 iE 75 76 M 77 lt script gt Fig 20 snippet dynamically populate forms using jQuery amp PHP source complete php am convinced that beginning with jquery earlier i
34. Fortune logged his own dreams for the period of 4 6 weeks 3 3 Definitions Acronyms amp Abbreviations Meta Categories Dream Data parameters 4 User Requirements Definition Functional Requirements 1 Functional requirements 1 1 1 Requirement 5 Configure Meta Categories 1 1 2 Description amp Priority This shall permit the user to taxonomise their data This increases the utility of visualisations Users may associate people places and object with the parameters of work leisure and exertion These categories are meta categories which let the user generalise the occurrence of specific actions emotions people and places into categories which can a inform the construction of time series or other temporal visualisation b be compared back to an aggregate dataset of the service 1 1 3 Use Case Scope The scope of this use case is to categorise a users dream content into metacatagories used in data analytics of entire user dataset Description This use case provides the parameters through which a user can engage with the aggregate data analytics function of the service Flow Description Precondition At least N weeks of user data must be completed Activation This use case is accessed via the settings screen If user has not activated this section then they will be prompted to do so before accessing aggregate comparison Main flow 1 User selects settings 2 Aside bar menu of metacategories exists al
35. HTTP interaction HTTP interaction HTTP interaction HTTP interaction HTTP interaction redirect profile php redirect profile php redirect profile php redirect profile php redirect profile php redirect complete php redirect redirect redirect redirect redirect index php index php index php index php index php PASS PASS PASS FAIL FAIL PASS PASS PASS PASS PASS PASS HTTP Auto redirected to 3 1 SESSION same as above logdream php interaction logdream php PASS 3 2 SESSION same as above wakingdata php UR perce mete to PASS 3 3 SESSION same as above profile php DILE Bm to PASS 3 4 SESSION same as above logdream php AU AD IEOIIEEIEG IO PASS interaction wakingdata php see edge case 3 5 below that epoch time function will Ensure that two dreams cannot be logged recognise when the 3 5 SESSION Senn ceu ceu cse within 24 hours Testing epoch time HTTP DD portion of a U Midnight conversions to ensure that session flow interaction YYY Y MM DD is 24 operates as planned hours different to a record in the database testing dream logging logdream php amp HTTP 3 5 1 SESSION n wakingdata php user journey around 23 00 to PASS FAIL 01 00 interaction Database logs dates based on GMT which has an hours difference in discerned epoch time 45 3 5 1 SESSION 46 SESS
36. INISHED 109 gathering imagery and links for T surmising the academic fields wi fix session flow and suggestion b test installation resources ensu ss Q Begin date End date 21 04 14 22 04 14 23 04 14 24 04 14 25 04 14 22 04 14 25 04 14 21 04 14 23 04 14 25 04 14 16 05 14 21 04 14 13 05 14 16 05 14 19 05 14 14 05 14 15 05 14 16 05 14 16 05 14 20 05 14 Itestin february reflective journalDue Prototype Build 21 04 14 22 04 14 23 04 14 24 04 14 25 04 14 22 04 14 25 04 14 21 04 14 23 04 14 25 04 14 16 05 14 21 04 14 13 05 14 16 05 14 19 05 14 14 05 14 19 05 14 16 05 14 16 05 14 20 05 14
37. ION SESSION PHP PHP PHP PHP EDGE CASE If user has successfully registered without inputting username and password Ensure session time out acts as programmed same as above same as above same as above same as above same as above visit logdream php SESSION P see PHP test 8 1 set time out to 30 seconds in epoch attempt to access pages when redirect logic malfunctions disable javascript leave username vacant disable javascript leave password vacant disable javascript leave password2 vacant disable javascript misspell one of the two password fields add two dreams for the same date to database HTTP interaction HTTP amp PHP interaction HTTP interaction HTTP interaction HTTP interaction HTTP interaction PASS PASS user not permitted to enter dream but the header redirects breakdown redirects go haywire but no page Will load See Test 6 redirect to a 404 or other error page PAIL the header logic which is rewritten for each file may be a problem to solving this page reload prompt username required PASS page reload prompt password required PASS page reload prompt please confirm PASS password page reload prompt PASS password mismatch PHP PHP PHP does form preserve data if the wrong fields are entered incorrectly same as above add a user name with quote marks w
38. Networked Dreams Technical Report Table of Contents 1 SummM ary a 5 2 Introd ction cie e pee c e Seek RR ERE ERE RE XR ME Ile read 5 2 1 Background te cenfet Aaa 5 2 2 ReSG8I Cl edi td ora eae Uii bean iori t than aed tar esee e eee Leno 7 2 9 PMS acess Su iE oe UU vb ees gos Ar de cdi a cv unn Ea E Pn a Tru doi ue Die dnte uia ET S 8 2 3 1 Categorising the Land of NOO occooocccccooocccnnncncccnnonnonononnnnnnnnnnncnnnnonnnonononnnnnnnnnnnncnnannnnnnnnnnonnnns 10 2 3 2 Ambitions Vs What Was RealiSe d 00 ccc cere er nr deere nnne nennen 10 VIL MIT di o RRRRRRREE AS75SZZ 11 2 4 T Libraries oer nem iere otn t eie At 12 2 4 2 Development ENVITONMENTS cccccccononononononcnnnnnnnnononononononnnnnnnnnnnnononnnnnnn non nnne nnne nnn nnn 12 DU e t AH t o 13 RACE CuUME 13 3 1 Req irernents neve e Rf is 13 3 1 1 Evolution of Requirements from Initial Brief 13 3 1 2 Summary of Requirements MoOdifiCatiONS ocoocccccconnononononcnnnnnonccnononano nono nnnnnnnnonccnnnannnns 15 3 1 3 Functional Requirements ssessssesssssseeen nennen nnne een nnn nnne nnn nennen nnn nnns nenne nnn 16 3 1 4 Data Requirements tne tae gne en a E RM POL EAE ERR s 24 3 1 5 Performance Response time requirement nnne 25 3 1 6 User Requirement
39. PASS FAIL FORM Val 1 I Comments PASS PASS sanity index TECHNOLOGY 49 10 3 javascript 10 10 10 10 10 10 javascript javascript javascript javascript javascript javascript FUNCTIONALITY same as above same as above same as above same as above same as above same as above same as above ACTION logdream php submit suggestion amp comments field as sanity check wakingdata php radio button wakingdata php select boxes wakingdata php submit wakingdata php submit amp comments field as sanity check dataviz php select data for comparison logout php PARAMS FORM VAL 100 comments sanit EXPECTED PASS RESULT FAIL radio button free time Comments sanity radio button no free time comments no free time destroy session updates dream table fine also updates dream suggestion with blank suggestion Acceptable FAIL FAIL FAIL FAIL FAIL PASS logs as O PASS PASS logs cause cat as O FAIL PASS FAIL PASS 3 5 Graphical User Interface GUI Layout The GUI for this application runs in a web browser The application utilises responsive design to be functional on both desktop browsers tablet browsers and mobile browsers Both desktop and mobile screens are included in side by side comparisons The key flows are demonstrated here 50 Sign Up 51 Enter yo
40. VALUES gid d id gentry 167 1d 168 169 eturn string if debug 4 170 Fig 14 Snippet DreamDB function to handle csv associative array source Includes db php 33 3 3 2 User Journey It was earlier noted in Section 3 2 2 User Journey that the partitioning of sign up allows an entry point for subsequent email authentication It is also a matter of expediency The partitioning ensures that there is no entry field within complete php that would cause a page refresh that prompts the user to reenter details as is the case with password email and username on join php For instance within join php the file that handles the users signing up several fields must be subject to server side validation checks necessitating the reload of the page To prevent a poor user experience only those fields which fail the validation are re presented as empty The fields that pass are preserved through the following code 127 input class w input id email 2 type email placeholder Enter your email address 128 name email value 129 O lt php if isset POST email 1 1 echo htmlentities POST email gt 130 data name email required required autofocus autofocus gt 121 Fig 15 snippet preserving user input on form refresh source join php By contrast complete php consists nearly entire of dropdown selection menus Preserving user selection here is not pos
41. aluation DOCUMENTATON testing 19 02 14 25 02 14 24 02 14 24 02 14 25 02 14 03 03 14 10 03 14 07 04 14 21 04 14 06 05 14 16 05 14 05 05 14 07 05 14 07 05 14 07 05 14 07 05 14 07 05 14 08 05 14 08 05 14 08 05 14 08 05 14 08 05 14 08 05 14 17 05 14 gt lt o GANTT gt 4 Begin date End date Itestin february reflective journalDue March April May 19 0214 DA fe 8 BAD EN B B EN NB B NJ 24 02 14 _ Hil E E E NM BN BN NM NM BN E EN 24 02 14 25 02 14 03 03 14 10 03 14 07 04 14 21 0414 06 05 14 16 05 14 17 05 14 07 05 14 07 05 14 07 05 14 07 05 14 07 05 14 08 05 14 08 05 14 08 05 14 08 05 14 08 05 14 08 05 14 17 05 14 e S Ui Begin date End date testin february reflective journalDue Prototype Buildleta Version GANTT yect De Name e DOCUMENTATION references 05 05 14 05 05 14 9 DOCUMENTATON GUI layout 07 05 14 07 05 14 e DOCUMENTATION appendix 27 03 14 9 DOCUMENTATION journals 01 05 14 DOCUMENTATION proposal 27 03 14 o DOCUMENTATION project plan 15 05 14 e DOCUMENTATION req spec 09 05 14 9 DOCUMENTATION other mate 09 05 14 9 create reveal presentation 15 05 14 9 check scraping code that is liste 17 05 14 9 proof read documentation 19 05 14 9 decode webflow Javascript for co 06 05 14 e index page with nav bar 11 04 14 9 design member profile page 12 04 14 e design dream journal 7 days pa 06 05 14 9 consistent CSS
42. ap tid 2 1 2 1 Description amp Priority uiia ii A graeci edid BN ec ERREUR PA 2 1 3 Reg irement 2 lt Enter Dream IDE Lusia stas baeo o ae ll Suc uS Cid and Sas a AR E 2 3 1 Descrip PEIOEID ise nee ieh 223 DER Pi on A GS cu an LADO ait Ario cra E 2 MISE COSC A san keiten een eareneeen 2 OT ld ds 2 1 10 Recover AAA IAE a AAA AAA 2112 EII A A A AS 2 1213 nas das T A 2 1 14 Maintainability re 2 c iret eos nnt eese ees sno linie 2 1 17 Reusability requirements ERE 2 1 18 Resource utilization require ment ui ii a clio delia rris 1 Introduction 1 Purpose This document sets out the requirements for the development of the Networked Dreams application and service The intended customers are anyone who is curious to gain insight into their dreams 2 Project Scope The scope of the project is to develop a web based application where users can store their data and utilise the service application platform to gain insight into their dreams via data analytics and visualisation The system shall have means for data entry facilities for data visualisation and user management services The ranking of the requirements has been determined by a shift from an initial mobile application first development imperative to creating a web native application which could be scaled to mobile through future iterations developments To establish requirements Stephen
43. apps which analyse a users daily activity conducted online their Google calendar check ins tweets and pictures posted on Instagram to auto generate a journal entry for their days activity If the same algorithmic automation could be plugged into this app the users could have an automatically generated journal to compare their dream data to I guess it makes sense dreamt of pirates given what watched on Netflix last night Another area that would benefit from automation is the metacategories assignment section This would be possible once a certain threshold of active users on the network have participated in that feature This would both offer a feature to the end user and also improve the data analytics back end by providing a heuristic taxonomy from which analysis can be derived 7 7 Project Management Plan see below for graphics 104 105 Name use case diagram requirements spec due detailed UC SetAlarm detailed UC EnterDreamData testing specifications february reflective journal Analysis amp Design Due Prototype Build Beta Version review requirements against wha testing spreadsheet DOCUMENTATION DOCUMENTATION introduction DOCUMENTATON background DOCUMENTATON aims DOCUMENTATON conclusions DOCUMENTATON further deve DOCUMENTATION abstract DOCUMENTATON technologies DOCUMENTATON requirements DOCUMENTATON implementa DOCUMENTATON customer te DOCUMENTATON ev
44. asking the user are you sure you don t remember anything A1 1 If yes then snooze reverts to regular interval A1 2 If user still says yes an alternate case will involve the screen being presented on the eventual disablement of the alarm in question Exceptional flow Termination The flow terminates once all data entered Post condition Todays alarm disabled for 2 minutes Todays alarm disabled for remainder of day when all data gathered Previous nights dream data added to database 2 Non Functional Requirements 1 1 7 Performance Response time requirement For aggregate data comparisons speed of recall will be important Access transparency will be secured via use of database permission tables 1 1 8 Availability requirement Internet access is a prerequisite to sync dream data to server and to access networked visualisations For future phone iterations certain server resources will need to be made available to local app instantiations 1 1 9 Recover requirement As a learning goal it would be good to learn how to have best practices in ensuring database recovery 1 1 10 Robustness requirement Fault tolerance is not envisioned as being essential to this build of the app The front end for the system must function in any internet browser 1 1 11Security requirement In either case of users entering personal data or users opting out of statistical monitoring aggregate comparison analytics there has to be very good se
45. at least 5 chars long and passwords must contain capitals and numbers You must complete the second screen of registration before you can log your dream details How to Log Your Dreams Each member is only permitted to log one dream and its associated causes for a given day Step One LogDream php On the dreamlogging screen you have a number of entry form fields The first is the most important you log your dream via a metacategory This helps produce the data visualisations and also enables you to form private communities with like minded dreamers 66 The four subsequent forms Embodied Activity People Objects and Places are fields for you to tag the things that appear in your dream The last field comments is where you can extensively document your dream if you so wish It can be hard to recall all of your dream initially so try to tag the above fields as memory prompts Step Two WakingData php Have you ever wondered if there might be some connection between what you do before bedtime and what s running through your mind during dream time You know beyond the cheese nightmares Here s where you can make a note of what you were up to the night before We ve broken things down into two categories free time and no free time More often than not the latter is unavoidable but when you do have time to unwind before bed it can make a difference to the quality of your sleep Don t see a category that fits No
46. considered the taxonomies that already existed at a range of websites offering similar dream logging services Examples of Sites Researched http www dreammoods com dreambank http dreamdoze com http www sleeps com dictionary dictionary html http www dream analysis com interpretations htm Through a process of data trawling please see the section on data scraping in Appendix Other Materials Used for more determined 25 categories for use am less concerned with these categories faithfulness to theories of dreaming which are many and diverse and present in many disciplines What is more interesting for me is providing some means of equivalence between the activities of the dreamer before they went to sleep and what their dream was about This establishes a homology between time use research and threat rehearsal dream hypothesis 10 2 3 2 Ambitions Vs What Was Realized With that noted it was not possible to implement the visualisation as desired for this iteration However as noted subsequently in Section 2 1 Data Analytics amp Visualisation endeavours have been made in terms of data representation that these visualisations could be readily implemented The initial aim as illustrated in Appendix Original Proposal and Appendix Original Wireframes was to provide this service as a mobile phone application integrated with an alarm clock The reason for this is that it is well r
47. curity 1 1 12 Reliability requirement The service must always be accessible whenever a user wishes to add data to their dream log 1 1 13 Maintainability requirement Subsequent builds maintainability will be contingent on server size and load for initial build none 1 1 14 Portability requirement Future iterations user experience is 10096 contingent on an intuitive portable experience 1 1 15 Extendibility requirement To meet the requirement for a phone app being a subsequent iteration of the system will need to require comprehensive documentation of how a users account is accessed APIs to social services may become an important part of the platform ergo documented app API access will be important Neither of the above features are intended for this build but they will be borne in mind when constructing the build 1 1 16 Reusability requirement The app will be built to work web native but with a consideration of how code produced during this iteration could be reused for future platform variations of the idea The server side database is envisioned as a component which can be reused for future iterations 1 1 17 Resource utilization requirement System shall be built to prototype on localhost with an online server earmarked as a potential future resource 6 Interface requirements 8 System Evolution A bookmarklet web extension that allows people to log their dreams with one click from their browser
48. e did before dreaming of abandonment or betrayal the bars of the bar chart are scaled according to a percentage of the total amount of those who dreamed of abandonment or betrayal Show me who dreams about abandonment or betrayal x confrontation 2 household 16 internet 16 ae roces m reading 9 sideproject 7 solo_leisure 14 Fig 24 snippet dynamically visualise data part 1 Source dataviz php The function returns false in order to prevent a screen reload which would prevent the graph from being displayed 3 4 Testing My test plans followed an ad hoc testing process note examples on a spreadsheet approach The possibilities for scripting tests was diminished due to the need to check PHP javascript and other interactions as they unfolded in the browser Before detailing the process it is worth noting the two notable edge cases identified 42 through the process which lack a resolution at this point see section Further development or research for how these are planned to be remedied The edge cases relate to the User Journey which as explained in Section 3 Design and Architecture and Section 3 2 2 User Journey has been instantiated via the SESSION array One notable edge case surfaced Edge Case One Dream a Day In order to ensure that users do not enter multiple dreams on a given day several control flow structures are in place However an edge case occurs between 00 00 and 0
49. e that they are dreaming and can shape their dreams at will It is a skill that can be cultivated Wiseman R Night School 2014 and one way to do so is to log your dreams The more you log your dreams the more you remember the content of your dreams and the better able you are to lucid dream The intersection of these two trends was the spur for my project have a long standing interest in quantified self and the pedagogical power of infographics Quantified Self communities believe in self knowledge through numbers Lucid dreaming is likewise associated with unlocking inner potential and improving self awareness Barrett A Study of Dream Incubation 1993 wished to develop an easy to use in terms of data entry application which would render the users dreams into some form of quantitative analysis likewise wanted to open dreams up to data visualisation an area which is widely regarded as having the power to illuminate complexity in a concise immediate manner It is my opinion that responsible use of infographics can be a powerful aid to self awareness have covered digital technology trends for the past three years in my previous employment and engaged with what data amp data visualisation mean to people through my digital art practice Creating an app that married the subjective and poetic realm of dreaming with an ascendant means of understanding everything you do via databases and data analytics struck me as an engaging topic
50. e user experience on the existing product logging dreams via a browser see Plug In amp App extensibility of User Contributed Data below 5 2 3 Phase 3 Trial Dream Communities Allow members to form communities based on dream commonalities Do this in a consent focused manner such that people within the community could form pseudo anonymous communities where they can share their dream data and content Dream communities can form from commonalities in dreams and allow users access to a similar form of aggregate data visualisation as it presently available to admin access in Requirement 4 5 2 4 Phase 4 Integrated Alarm Clock A final step would be an integrated app with alarm clock functionality With the above components this app would have many distinguishing features from existing dream logging offerings 60 5 3 Plug In amp App extensibility of User Contributed Data LI DO o gt uQ lt mn lt x u vO 2 4 3 re one gt lt lt Zz zncx 3cuc gt c gt u mIo Zv OOOD n1m 4wco9oc9 omn ma lt IZCOD NN nw lt mzn gt u rrm AE r m omox ozzoxo c OOWoIW lt OmTINZCA QDOf c Zmrmrmo0 mn ZmnmZN ADOQ TZ FCN lt o0ozDouwuw ZzZzmu gt ve mTrOO0nnx gt lt OTICI lt O L K H E ie X 3 O ie F Y S A je N Imagine generating a similar graphic from the names place people and objects the user has entered with a similar horoscope like appeal to the irrational in human nature
51. ect develops It also aligns the app with the prerogatives of a significant section of quantified self users concerned with optimising productivity and also with the aspirations of lucid dreaming to unlock ones hidden potential Time Use Research enables my project to channel the research hypothesis threat rehearsal dream hypothesis The ambition is to create this project as an app but in its current incarnation it has been developed principally as a website that can be accessed by any browser mobile or desktop The aim is to continue building toward the mobile experience This app needs to compete with other dream logging apps which all have the advantage of immediate access because they can interacted with on a mobile device 2 3 Aims This app allows dream logging in a fashion that permits later elaboration by data visualisation To distinguish my application and service from existing websites and apps focused on data visualisation and capturing data from the user related to what they did prior to sleeping and dreaming a given dream The latter category was supported by research into the taxonomies of Time Use Research Capturing what the user did prior to dreaming was intended to aid the users self discovery and also add a powerful additional category to the data analytics side of the project Utilising visualisation sets my project aside from browser based efforts like www dreamscloud com and www dreamdoze com
52. er enters dream data via text entry in accordance with the four parameters of dream data Flow Description Precondition A registered user must be logged in Activation When the user accesses the website When the user logs in to the website Main flow 1 User enters text into Friends Object Location Action text fields 2 Any text separated by a comma or similar delimiter is stored as an item for the field itis associated with 3 User clicks complete 4 Data is logged to a database Sub Flows 2 1 If the user leaves any field empty a prompt window will seek assurance from user that they deliberately intended to leave field blank Termination The flow terminates once all data entered Post condition User s database is updated with latest data 3 1 2 Requirement 3 lt Waking Data Survey 3 1 3 1 5 Description This use case shall harvest information relating to the users activities before going to sleep This is done through a categorisation format that unfolds from an initial yes no question The yes no question determines if the user had free leisure time 19 before going to sleep This enables a more cohesive drop down menu to be presented to the user 3 1 3 1 6 Use Case Scope The scope of this use case is to gather supplementary data related to a users waking activity The user annotates their waking data activities through a bespoke data entry interface designed for quick enjoyable na
53. erate as follows 35 Client Browser Database Server HTTP Session Static Page Dynamic Page Fig 17 Collaboration Diagram Sessions generate a unique id UID for each visitor It permits storage of bespoke variables through an associative array called SESSION A detailed activity diagram of how the projects PHP files methods and variables orchestrate the User Journey control flow follows In the subsequent diagram the pages methods can all modify the SESSION You can conceptualize it in object oriented terms even though that is not strictly what is happening did so to work with UML and also as an aid to ordering the logic of my pages 36 Index false sign up true checkUALIAS SESSION ualias true header profile php checkRegistered SESSION registered false header complete php checkRegistered SESSION registered true header logdream php completed Complete dream checkUALIAS SESSION ualias true header profile php logged checkRegistered SESSION registered true header logdream php destroySession false try again DreamEntry checkUALIAS SESSION ualias false header index php checkRegistered SESSION registered false header complete php CheckDreamDate SESSION todaysDream true header profile php setTodaysDreamDate SESSION todaysDream setUID Suid compareDate t date setTodaysDreamDate
54. ervice which is incredibly ubiquitous among web hosting providers This ubiquity was a positive attraction to using these technologies HTML HTML5 and CSS were used for presentation purposes to style the visual elements of the project Ensuring as much cross device compatibility is possible through responsive design PHP ran server side performing data handling duties All connections to the MySQL database were made through PHP and MySQL Any data retrieved from the database was accessed and encoded for presentation by PHP Use of PHP was a decision reached in consultation with my lecturer It also makes sense for planned but presently postponed subsequent integration with Facebook API which has excellent support for PHP given that it originated in that language Combinations of client side jQuery and Javascript with server side PHP handled the data validation portions of the website Jquery also enables dynamic interaction with webpages transforming the static webpage paradigm of PHP into a dynamic one PHP executes server side where jQuery and javascript execute client side 2 4 1 Libraries Several Javascript Libraries were used for the data visualisation portion of the project Sigma was experimented with but decided to postpone representing the MySQL database with graph abstract data types until a subsequent version instead utilised the D3 javascript library D3 stands for data driven documents it binds arbitrary i e
55. es com projects kennedy accessed 17 05 2014 Twitch http twitch stanford edu accessed 17 05 2014 DreamOn http www dreamonapp com accessed 17 05 2014 Saga http www getsaga com accessed 17 05 2014 Shadow http www discovershadow com accessed 17 05 2014 Dreams http www dreammoods com dreambank accessed 17 05 2014 http dreamdoze com accessed 17 05 2014 http www sleeps com dictionary dictionary html accessed 17 05 2014 http www dream analysis com interpretations htm accessed 17 05 2014 http dreamstudies org category dreaming technology accessed 17 05 2014 Graph Abstract Data Type amp Network Diagram Visualisations Immersion https immersion media mit edu demo accessed 17 05 2014 neo4j Graph Database http www neo4j org accessed 17 05 2014 Nodus Labs http noduslabs com accessed 17 05 2014 Quantified Self amp Personal Data http your flowingdata com accessed 17 05 2014 http daytum com accessed 17 05 2014 https www chartmyself com accessed 17 05 2014 https fluxtream org welcome accessed 17 05 2014 Chris Dancy http www chrisdancy com accessed 17 05 2014 https webflow com 65 7 Appendix Tables of Contents User Manual amp Technical Manual make into header Other Materials Used Original Proposal Wireframes Deprecated Requirements Project Management Plan 7 1 User Manual amp Technical Manual 7 1 1 User Manual Members can register via join php User names must be
56. esearched that the moments immediately after awakening are the most important for logging your dream Rather than rely on long form text the application was to expedite the entry process by means of four fields emotions locations people and objects which could be entered visually However as development advanced it was clear that an android application would need to wait until a further iteration The revised aim consisted of a website accessible as mobile application While the alarm clock is absent this service should still be accessible on mobile devices thus expediting the data entry process upon awakening The distinguishing features of this app would be data visualisation waking data capture and microcommunities made possible by aggregate analytics All three features would be extended to any future mobile application with all the affordances for augmentation said platform would afford see Section 5 Further Developments for more on this 2 4 Technologies This project was realised utilising web technologies The nature of web technology development entailed a variety of technologies specifically PHP HTML and HTML5 CSS Jquery and Javascript A MySQL database was utilised for the projects data requirements A web technologies project can run on any device equipped with internet access and a browser 11 MySQL was familiar to the author Together with Apache and PHP it represents an open source solution to hosting a web s
57. esent the users friends objects locations and common emotion actions This allows the user to graphically select what occurred in their dream and can serve as a memory aid to things which may have occurred in their dream 1 1 6 2 Use Case Scope The scope of this use case is for the app to gather data from the user about their dream via linear progression through a series of interfaces Description Combined with the alarm functionality this use provides the user with a graphical interface upon awakening This case enables the user to quickly enter dream data Use Case Diagram Flow Description The use case described is a loop or iterative i e each screen concludes returns to home asks for more data until finished Precondition Calibrate friends location objects databases use case must be completed Activation When the user accesses the website When the user logs in to the website Use case will continue to iterate until the user has checked DONE on each screen of the quarter divided circle Main flow 1 User selects a quadrant proceeds to quadrant specific data entry screen see sub flows below 2 User selects ticks done 3 User returns to main screen 4 Repeat Sub Flows 1 2 Friends SubFlow 1 2 1 People in dream subflow A Z list only later an order by facebook graph option 1 2 2 App presents an A Z ordered list of people represented by thumbnails and name 1 2 3 User scrolls through
58. ext iteration of the project is the inclusion of dynamic network diagram visualisations call these indi visuals think that providing the users with an engaging network diagram visualisation provides the following benefits Enforces an artificial period of data accumulation during which user would build up something sufficient to compare to the aggregate Supports harvesting of unique keywords that can be later taxonomised for instance by a more sophisticated association determination algorithm into aforementioned metacategories or indeed into different metacategorisations Permits the network visualisation in a more rewarding fashion believe the network visualisations are important because Keep the user busy accumulating their data Constructing the dataset with network visualisations at the fore enables dovetailing with several exciting uses of this abstract data type as exemplified by Nodus Labs 59 Their Graph Database Structure Specification Nodus Labs 2014 uses a totally different method of data storage neo4J implemented in javascript As the main form of visualisation want to provide to users is a Graph Abstract Data Type driven visualisation it may prove prudent to consider the viability of this alternative method of data storage and retrieval 5 2 2 Phase 2 Improve Logging Experience and Incentive With the visualisation amp analytics section consolidated the next step would be improving th
59. hich would disrupt the query wrapping and format conducted by the DreamDB class disable javascript enter username that is already taken disable javascript misspell one of the two password fields USERNAME error due to quote username test escapes good news for robust regex HTTP FAIL Email amp name to 47 PHP PHP PHP PHP HTML HTML HTML HTML ensuring that if no value entered for a form field nothing is added to DB ensuring that if no value entered for a form field nothing is added to DB EDGE CASE user has advanced to logdream php without fulfilling mmbr_profile table ensuring that if no value entered for a form field nothing is added to DB disable javascript join php disable javascript complete php disable javascript logdream php disable javascript logdream php interaction retain values PASS Username email amp DN n name to retain PASS values HTTP that DB is not interaction updated PAIE HTML5 recognises that the email field is blank but whitespace will suffice on the other entry points that DB is not updated FASO however the page can progress and alters the session such that sequence advances to logdream where multiple dreams can be entered HTTP interaction that DB is not updated HTTP interaction FAIL SESSION todaysDream remains unset user cannot progress to wakingdata php or profile php that
60. ile Page 54 Home Log Out User ee Jay User name Jay Dream Data ALCOUM SENS Top Dream Topic losing control forgetting or disintegration Top Dream Person Benjamin Dream Data Top Dream Topic losing control forgetting or disintegration Top Dream Person Benjamin Last Fortnights Dream Entries ma mulum S I 55 Home problem solving or accomplishm x Submit dates start date Eg end date z L Select one Select one Art music writing Submit 3 6 Evaluation Customer Testing was not undertaken in this phase of the product The user experience was tested with and without javascript which illustrated that javascript is essential to its current functioning something that could lead to interoperability consequences See Section 3 4 Testing above modified my MySQL population scripts using the autogeneration scripts see Appendix Section 7 3 filling the database with 10000 members and a corresponding ratio of dreams as was contained in the original script 29 per member 4 Conclusions 4 1 Web Implementation vs App Realisation For this iteration the project has been implemented using web technologies This has benefits in that it exists as a an accessible web based app The customer can use the website in much the same way as they would a mobile phone app However I believe that integrating this functionality with an alarm clock app as ha
61. ions The literature on what dreams mean is vast and ultimately inconclusive The point of reference am drawing upon is the threat rehearsal thesis of why dreams happen Threat Rehearsal Thesis posits that the dreaming brain is acting out fight or flight scenarios in order to practice for what to do if such a scenario happens during waking hours The thesis makes the interesting observation that there are scenarios of survival common to all humans due to our shared evolutionary history but that these scenarios are cross pollinated with the scenarios which constitute contemporary day to day life Hence the bizarre chase dreams transpiring against the backdrop of a call centre The aim of the app is to not laden the app with interpretative bias of what dreams mean and instead provide a tool that captures data and presents the data back to them in as clean a data visualisation paradigm as possible 4 Special resources required Feasibility appraisal from experienced developers Server for syncing user data to SQL database Application Logic Android SDK Eclipse IDE Data Visualisation software API access Frameworks Design Patterns 5 Project Plan Gantt chart using GanttProject cross platform open source Project Management Tool with details on implementation steps and timelines 6 Technical Details intend to implement the App in Java as much as possible 7 Evaluation will capture an offline dream diary per the parameter
62. k would merit a commitment to learning the best practices of a framework This is a learning objective have set myself but it was a time commitment which was evaluated and considerate incommensurate to timely delivery of the project do not doubt that learning a framework will be easier having hand rolled CRUD system 5 Further Development Pragmatically several areas require implementation prior to making this project live for consumer use 5 1 Pragmatic Next Steps 5 1 1 Back Ups back up mechanisms to preserve the data logged This will include regular back ups of the main MySQL Database wherever it is hosted 5 1 2 Robust Security Security is a requirement subsequent builds will implement proper password hashing 58 5 1 3 User Journey The tests illustrated that there are several edge cases of the user journey which need to be caught and remedied see Section 3 4 testing 5 1 4 Expanded Membership Profile Data Currently registration caters for users who wish to join from Ireland with a county by county granularity The rest of Europe is catered for in terms of capital cities Subsequent iterations will take in USA EMEA and Rest of World Pragmatics aside have prioritised the subsequent stages of development requisite to implementing the project as originally proposed see Appendix Section 7 4 5 2 Iterative Stages of Improvement 5 2 1 Phase 1 Providing Network Diagram Visualisation The most pressing n
63. ment 1 User Registration 3 1 3 1 1 Description This use case shall register a user for the service and application It is integral to providing the app with data to populate subsequent use cases 3 1 3 1 2 Use Case Scope The scope of this use case is to register a new user Description This use case describes the process for setting up user profile data for the first time Flow Description Precondition If the website is being accessed for the first time Activation When the user clicks the register or sign up button This use case can also be accessed via log in see alternate flow Main flow 1 The user is presented with a slide by slide set up wizard 2 Name age gender and profession are entered next button is pressed to advance to next set up section Sub Flows Alternate flow The alternate flow is a user logging in It follows the same access flow minus the set up wizard No changes are made to user database during log in alternate flow Termination Post condition Database containing the users data is readied 3 1 4 Requirement 2 Enter Dream Data 3 1 3 1 3 Description This use case shall enable a user to log their dream data This use case is integral to gathering the data which the user will be encouraged to visualise and analyse 3 1 3 1 4 Use Case Scope The scope of this use case is to gather dream contents data from a user of the service Description 18 This use case describes how a us
64. n a projects development would lend itself to much cleaner and better encapsulated code HTML amp CSS Design and Residual from WebFlow The WebFlow visual editor was used to construct the HTML and CSS for this project Webflow provides comprehensive javascript client side validation and server side handling however as had coded my own backend in PHP none of this functionality was included WebFlow provides a very neat solution to responsive design which have availed of The sophisticated and visually appealing animations and transitions possible via Webflow have not been used in the GUI would need to ensure for graceful degradation across a range of browsers and a plethora of devices this represented an increase in the amount of time for GUI implementation disproportionate to the time had available to deliver the project 3 3 5 Data Analytics amp Visualisation In order to implement the functionality of data analytics requirements it was necessary to populate the database with pseudo entries Data Scraping 39 Code snippets and the steps implemented to populate the database are detailed in Appendix Section 7 3 Several command line executable scripts were necessary These scripts were written in PHP and utilise CURL to fetch information from the internet Database When querying the database during data analytics a view is created to make demographics queries easier Members date of birth is stored as YYYY DD
65. nded to meet the immediacy of logging and data entry This is a crucial design factor dreams are most easily recalled on the moment of awakening Dream diary apps suffer from the fact that a touchscreen keyboard is not as immediate as pen and paper Tagging elements of your dream in a visually compelling manner along with auto suggested tags is this apps answer to that problem A question asking unlock screen as inspired by Stanford s Twitch data crowdsourcing Android launcher is a UX inspiration Any dream journaling will be the last data entry point in this app and is largely incidental to the apps core functions However it is anticipated that the lack of such of function would deter users In order to glean meaningful trends from the user data it is desirable to have some form of waking data to compare to the content of dreams Ideally this process would be automated following the lead of apps like Kennedy However such automation may be too complex for the purposes of this project 2 Background Sleep tracking and dream journaling apps are a niche section of the app market A recent app Shadow generated a lot of interest on kickstarter for its mooted approach to dream journaling Dreams are an aspect of peoples lives that people are always curious to learn more about this app will attempt to sate and stir that curiosity through the medium of data visualisation Specifically it will surface relationships over time and the strength of
66. nnnonanonannnnnnnnnnnccnnnnnnann nnns 57 4 2 Implementation ReflectiONS ccoooccccoocooccnnncccncnonanonnonnnnnnnnnnnonnnnnnnno non n nennen nnne nnne nnn nnn nnns 58 5 Further Development dern tres e rete eaten Woes da d ape Pet Ae 58 521 Pragmatic NexEStEeps 2 Rede cett id 58 5 1T Back Ups tete teta to dde n NI ee 58 LR ROUSSEAU e ees eoim EIN eet ede ed 58 5 3 3 USer JOUFTIOV iie eic cir eee su eh eek a EXC LOE ELA ER RRRRNR E REN RARE E CER E EN ECDURA o nda ds 59 5 1 4 Expanded Membership Profile Data ooo oooocccncccccccnnnooonoonnnnnnnnnccnonnnnanon ono nnnnnnnnnnccnonnnnnnnnns 59 5 2 lterative Stages of Improvement ssssssssssssseeeeeeee en nennen nnne nnne nennen nnns nnn nnns 59 5 2 1 Phase 1 Providing Network Diagram VisualiSati0N cccconnnncoooooncnnnnncccnnonnanannnnnnnnnnnnnnnos 59 5 2 2 Phase 2 Improve Logging Experience and INCeNtiVe cccccnnncccoononnnnnnncncnononananan nn nnnonnnnnnos 60 5 2 3 Phase 3 Trial Dream Commumnities esssssssssssseeeenn eene 60 5 2 4 Phase 4 Integrated Alarm CIOCK ssssssseeeeeeeeeennnnnnnne nnne emen nnn 60 5 3 Plug In App extensibility of User Contributed Data ssem 61 5 3 1 Facebook and other social media API integratiON cccoconocccoononnnnnnncccnononanononononnnnnnnnnnnnnnnos 61 5 3 2 Enhanced what were you doing before sleeping functionality ee
67. ongside a tab interface that includes every word that has been logged beneath Friends Object Location Action fields 3 Selecting a word occurrence associates that word occurrence with a metacategory 4 user completes the above process iteratively until satisfied 5 User saves 6 system updates metacategories database Sub Flows Alternate flow Exceptional flow Termination The user exits this section of the app Post condition Database containing the users data is updated 1 1 4 Requirement 7 Calibrate friends location objects databases 1 1 4 1 Description amp Priority The window for recalling the most about what one has dreamt about is quite a narrow time period The time lost in logging in and manually entering data points by typing amounts to two additional screens impeding immediate data entry A graphical entry system would improve user experience Calibration of said entry system on a user by user basis is necessary This use case describes this requisite calibration 1 1 4 2 Use Case Each requirement should be uniquely identified with a sequence number or a meaningful tag of some kind Scope The scope of this use case is to itemise data in the users life to streamline data entry Description This use case describes the process for setting up user data into a menu format amenable to a graphical representation Flow Description Precondition User must be registered on service User mus
68. php dataviz php index html index php join php logdream php login php logout php profile php wakingdata php Step 2 Configuration Includes db php contains settings that will need to be changed according to your local MySQL user configurations private user SQL USER private pass SQL PASSWORD private dbName dreamdemo or beta prototype private dbHost localhost AMEND SQL_USER SQL_PASSWORD For these parameters it is recommended that you add the username and password of a user profile for your PHP installation that has root access rights Step 3 Launch navigate to localhost project to proceed through the project You can log in with username test and password test 69 Code Errata Notes for Code addUser php refactored to join php completeReg php refactored to complete php dreamEntry php refactored to logdream php userdataViz dataviz php Notes on Databases The provided dataset was used by stephen fortune to log his own dreams as extension of his analog dream diary Stephen s ID was 2 all this data has been removed from the database Accordingly the mmbr table has no entry for 2 but continues from 0 1 and then 3 52 70 7 3 Other Materials Used In order to test my database queries it was necessary to populate the database with pseudo entries wished to have a depth of data to draw upon so rather than populate completely randomly scraped data from
69. riate foreign key fields This ensures a database not likely to be corrected and ensures users data will be captured The project is comprised of PHP files which utilize HTML amp CSS for display and javascript for dynamic interactions db php is responsible for generating the dreamDB class 4 SINSTANCE Singleton getInstance Singleton Singleton Fig 11 Singleton Design Pattern The dreamDB class employs the singleton design pattern and keeps the connection variables private to itself The Singleton design pattern can only have one instance and provides a global point of access to itself It handles the connections to the MySQL and the DML and DDL queries executed in response to the users input Requests are issued and executed to the MySQL database using the object oriented mode of mysqli The user interacts via HTML in a browser with PHP used to process the users input All PHP files require an instance of the dreamDB class 31 have learned that much of the time spent on hand rolling CRUD functionality could be saved through the utilisation of frameworks such as Smarty Cake of Yii given my language choice of PHP This is a lesson learned for subsequent development please see section 3 for further elaboration upon my appraisal of how well suited this development model was 3 3 1 DreamDB class Most of the functions in this class pertain to connection maintaining Singleton Class encapsulation
70. s essssssssssesseeeeeennn EE nennen nennen nennen nne n nnn nnns enne enne nns 25 3 1 7 Environmental RequireMentS coconcccooococcnnnnccccconnnonononononnnnnnnconnnnnnnnnn non nnn nnne nnn nnne nnns 25 3 1 8 Usability RequireMentS coococccooooccncncconoconononoonnnnonnnnnnnnncnonnnnnn non nnnnnnnnnncnnnnnnnnnn nn nnn nnne nn nnn nnns 25 3 2 Design and Architecture ccccccnonocooooooncnnnononcnononononononnnnnnnnnnnnnonnnnnnr nn rnnnnnnnnnnnnnonnnnnnnnnnnnnrrennnanss 25 3 2 1 Entity Relationship Diagrams amp Data Driven DevelopMeNt cccconnnnccoooccncnnnonononnnncnnnnnnnnnnnnnns 25 3 2 2 User Journey D6eslgn ie rte reed A Wt Dee ee AA ae p cetus 29 3 3 ImplermentatiOn etie rg iet n ee or ture ea Teese oreet E 31 3 3 T DreambB Class eser Per Hier Reel 32 3 3 2 User OU uo ee c peccet ete Pe VP e aee devolves Senn Tvs eR Ee ce d 34 A i e GbR Eo detener t en E p t e Deae op e peas 34 3 3 4 Notes on Control Flow rere bre tr ALD debe ka Ra ERA Ron dat qudd 38 3 3 5 Data Analytics VisualisatiOn esessessssseeeeeeneneeneee nnne nemen nnn nini 39 3 4 Testigos aede entitatem M E d EU otra 42 3 5 Graphical User Interface GUI LayOUt cccconnnccooooooccnnnncccononononononononnnnnnncnnnnnnnnn ono nrnnnnnnnnnnnrrnnnnnananinos 50 Som isi iaa 57 4 GonclusionS E M 57 4 1 Web Implementation vs App RealisatiON coooonccooooccccnnnncco
71. s been the norm within several other apps see Section 2 2 Background amp Research earlier would enhance the apps purpose It is therefore a limit of this app that it doesn t integrate with a users alarm clock service precious human recollection time is lost in this regard That noted believe it was good to appreciate the complexity required in realising something in languages and technologies i e web technologies with which am acquainted The added complexity of navigating Android app development a new technology development environment in terms of the skills possess would have hobbled the realisation of this project 57 4 2 Implementation Reflections have learned that much of the time spent on hand rolling CRUD functionality could be saved through the utilisation of frameworks such as Smarty Cake of Yii given my language choice of PHP This is a lesson learned for subsequent development The project is a long distance away from being what hoped for Creating an engaging data analytics dashboard is clearly a huge undertaking in and of itself It is very apparent that to make such a system work the project would need to be designed with a framework like jQuery for the GUI elements of the website from the very beginning That noted there were some advantages of hand rolling the CRUD functionality My database makes use of many foreign key relations and reference tables To properly implement this in a framewor
72. s of the app to see how much my posited quadrant is a useful filter for dreams to be captured through The aim will be to have a working app by the beta data and then begin gathering data by my interaction with it The aspiration here it to get it to a potentially usable state by a select group of friends will need to enlist good friends as a favour This phase will be conducted in order that the data analytics facet of the project can be tested Stephen Fortune 19 02 2014 7 5 Original Proposal Wireframes Actions Add Data Da i c Actions Actions Y SAVE 2 E A MS EN E z wie rit yju amp a 7 flelh j k 1 T PA A p BHBHBBB ri 124 e 4 Fig 26 Android App wireframes part 1 80 Friends Friends Objects Location Location SAVE alleli ylei olo ast gini eli ale f OBOBADARI zu ial uit T i2 x c vb njm En 2 i i i Z X C V m Ul xicivibinimis ull ixiciv m fi o i IE E H s H Y S y 24 4 4 124 4 Fig 27 Android App wireframes part 2 81 Fig 28 Platform Agnostic Wireframes sign up process Networked Dreams cm gt Networked Dreams f c SED e DJ tone rom email cnt ent 1 pos E 82 Fig 29 Platform Agnostic Wireframes completed Networked Dreams
73. s subsequent Alternate flow A1 User creates new alarm User stipulates hour minutes A1 1 User selects preexisting alarm A2 User deletes alarm or otherwise modifies alarms not directly related to ones due to trigger in next 24 hours A3 A3 1 User accesses settings to change the sound of their alarm clock volume and other parameters A3 2 User can modify the volume of their alarm A3 3 User can select sounds from the library of sounds available to phone Exceptional flow E1 An exceptional flow is that there is no alarm set for the next day The system needs to be able to recognise this and feed it back to the user E2 An exceptional flow is that more than one alarm is set to trigger within 24 hours This could create junk entries in the user database A solution may be that once a dream log entry is acquired then no subsequent screen lock overrides by app can occur E3 A user may decide to change the sounds for the alarm Termination Post condition Another alarm clock is saved to the catalogue sic of alarm clock times available to the user The system is readied to expect another instance of Enter Dream Data use case The system is in a wait state counting down until stipulated alarm clock time at which point another use case can be triggered 1 1 6 Requirement 9 lt Graphical Dream Data Entry gt 1 1 6 1 Description amp Priority The data added in use case 7 provides a dataset to graphically repr
74. s to log there must be a way of facilitating their desire while capturing all relevant metadata 3 1 3 1 8 Use Case Scope This use case must capture relevant categorical data when the databases existing meta categories are insufficient to a users needs Users data is categorised and a table populated with data that will later inform additions revisions to the databases metacategories Description On occasion when dream meta category or activity prior to sleeping meta categories are ill fitting to the user the user may enter a freehand category to classify the dream Flow Condition Precondition A registered user must be logging either a dream or logging waking data i e on the respective pages for both the activities detailed in Requirement 2 amp 3 Activation The user must select give me another option from the meta category drop down menu Main Flow 1 user selects give me another option 2 The meta category drop down menu is replaced with a free text form field 3 User submits data along with all other forms requisite as detailed in Requirement 2 amp 3 22 Exceptional Flow The user enters no suggestion This results in the dream being lost to metacategory data analysis Termination When the user clicks save 3 1 4 Requirement 5 Compare Dream Data 3 1 3 1 9 Description Sum total of users dream data can be compared for analysing trends This is an admin specific function which can be
75. seeeeesssses 62 54 Other Technologies s iet c e RU c HR eta ee cett EST OT ctt eds 62 5 4 1 D tabases a ae M PEE Rn AN pasate Eee sepe beget ith edo deed 62 5 5 Further ResearCh ooococccnnnoncccccononnccononconnencnnnnnnn ren nn nano ner enana R snnt tnn RR nni nintr nares trenes arent nen nn nnn 62 5 5 1 Analytics Demographics and Taxonomising the Human Psyche 62 6 References s tu uedoatecitte o EAT Ud 64 TiN a OLEINO D o tte ort Mu eme m Ade AL 66 7 1 User Manual amp Technical Manul 00 cece ee ieee ee deere nennen nennen nnne nnne nnn 66 FLAT User Manual cic tret ra e en seed diee ke eden ePi asics 66 2 2 Technical Manualin m ot re eset t ettet Deuce Aa eerie cere 68 7 3 Other Materials USed rre a an 71 TA Original Proposal eiii f ebat teet ette pr uet Deed Ee oe D aea a RA ER RR EP EL RENS Ys 75 7 5 Original Proposal WirefraMeS ooooooocnnnccconononooonnononnnnnnncnnnnnnnnn ono nnnnnnnnnnncnnnnnnn non ne enne nnn annee nnns 80 7 6 Deprecated Requirement SpecificatiON cooccccconococnnccnncconnnonononnnnnnnnnnnnnononanano non nnne nnne nnns 87 7 7 Project Management Plan ssessssssesseeenennenene eene eem nnn nennen nennen nnn nnn n ansia nnn nnns 100 List Of Figures Fig 1 Quantified Self Examples Fig 2 Network Diagram Visualisation Example Fig 3 Initial Use Case Diagram Fig 4 Revised Use Case Diagram Fig 5 part 1 of ER diagram Fig 6 part 2 of ER diagram Fig 7
76. sible as many of these forms are lengthy Country City Job and to save on both repetition of code and improve code legibility these fields are autopopulated by php files contained in Includes functions php Preserving the users selection upon a form refresh as is necessary with the server side validation performed in join php is difficult to implement 3 3 3 Sessions In Section 3 Design and Architecture and Section 3 2 2 User Journey the user journey was shown in abstract form Here is a sequence diagram illustrating the PHP implementation of that same logic 34 HTTP HTTP SERVER SERVER SERVER SERVER DATABASE client browser authenticate dream category dream cause dashboard dreamDB Class SERVER l lt lt create gt gt lt lt create gt UPDATE lt lt create gt lt lt enable gt gt enter data UPDATE logout php lt lt destroy gt gt Fig 16 User Journey PHP Sequence Diagram Where in Fig 8 p29 the user journey was envisioned as being controlled by destruction of data entry objects it is here accomplished by rendering pages inaccessible through session variables Sessions a feature of PHP are used as part of the sites control flow which guarantee a certain user flow as indicated by this sequence diagram Several code sections have been written to issue header redirects dependent on whether certain variables have been saved amp set The collaboration would op
77. styling 10 04 14 9 descriptive names for CSS tags 10 04 14 10 04 14 106 GANTT ee dp Begin TF End date Name consistent palette tagging make db php properly encapsulat colour palette reconciliation sequence_diagrams PHP user flow diagram state diagrams wireframes PHP admin flow diagram DOCUMENTATON design amp archit admin DB class code overlap between completeR redesign form fields on adduser add a date age drop down to ne SQL that updates date drop dow new sql and db php for updated r script to populate mmbr profile wi cookies best practices see if textbook exists as ebook a index page logic design additional member data p session logging log out functionality 107 15 05 14 06 05 14 20 05 14 05 05 14 05 05 14 05 05 14 05 05 14 07 05 14 08 05 14 06 05 14 07 05 14 19 04 14 20 04 14 21 04 14 22 04 14 16 05 14 07 05 14 08 05 14 16 04 14 17 04 14 16 04 14 18 04 14 19 04 14 15 05 14 06 05 14 20 05 14 05 05 14 05 05 14 05 05 14 05 05 14 07 05 14 08 05 14 06 05 14 07 05 14 19 04 14 20 04 14 21 04 14 22 04 14 16 05 14 07 05 14 08 05 14 16 04 14 17 04 14 16 04 14 18 04 14 19 04 14 2014 testin february reflective journalDue Prototype Buildleta Version CT MD Name Begin date End date determine the entry points for pr 17 04 14 17 04 14 ER diagram for web API project 17 04 14 17 04 14 jQuery can be used for user sug
78. t have been using the service for a certain period of time Activation When the user logs in When the user accesses the bookmarklet Main flow 1 The user selects a tab or link to friends objects locations actions 2 The user completes each of the above 3 The user saves their entry 4 Entry is committed to system with appropriate time stamp Sub Flows 1 1 Friends SubFlow 1 1 1 User has option to get friends from facebook or from google contacts 1 1 2 Request is sent from app to facebook 1 1 3 User is prompted to authenticate the app by facebook 1 1 4 Upon authentication the app gets Name Profile Thumbnail from facebook 1 1 5 It populates a menu 3 thumbnails wide with all the friends ordered alphabetically 1 1 6 All thumbnails selected by default User is prompted to deselect those they consider unsuitable to their persons list 1 1 7 User is then prompted to add people who may not be on facebook GOTO 1 4 Manual Thumbnail Creation Subflow 1 2 Objects SubFlow 1 2 1 Objects subflow is the only one that can pregenerate and come bundled with the app 1 2 2 User is presented with a grid presentation of objects Alternate flow 1 1 5 1 1 5 1 1 2 3 User presses to highlight each object they have in their life 1 3 Locations SubFlow 1 3 1 Locations subflow will come prebundled with generic icons to represent places like those on Google Maps 1 4 Manual Thumbnail Creation Subflow 1 4 1 They are
79. t to worry We ve taken a lot of time to find out what the most common broad categories of dreams and before bedtime pursuits are But we don t doubt we ve missed some Just select something else and fill out the suggestion box Your dream will be tagged with that category so keep it succinct Visualisations Once you ve logged a fortnight worth of dreams you ll be able to access the networked dreams visualisations For now you can see what the existing data says regarding what people do before they go to bed Those advanced options are off limits until we roll out the communities functionality Also coming soon are the networked dream visualisations where you can see the common occurrences of people places and objects with the emotions you experience 67 while in the land of nod 7 2 Technical Manual Installation A MySQL database is required to run this project Step 1 Database Installation Open MySQL enter the following commands create database dreamdemo use dreamdemo source dreamDB sql populate script OR source installation sql To run this project a WAMP LAMP or MAMP local virtual server must be installed Depending on your operating system the directory where you need to place this project source files will differ Windows c wamp www Linux var www Mac Applications MAMP unzip project zip into the indicated folders above You should see the following css 68 js images Includes nbproject complete
80. tionality Reason for Revision 8 Android app App no longer provisioned as android mobile app alarm clock functionality not applicable to website 9 Android app App no longer provisioned as android mobile app graphical tagging not a priority is user has keyboard available to them Moreover API integration was deprioritised as a requirement for the project 15 5 Database design Permitting the user with free form dream categorisation would result in problematic database design It also risked diluting the quality of analysis that could be derived from the data This requirement was revised that all dreams are mandatory categorised upon data entry but that users can provide their own suggestion if none of the provided categorisation fit their needs 4 amp 6 User Experiences Complexity appraisal deemed beyond scope of this iteration of project While it has not been possible to implement the visualisation portion of this project all necessary work has been done to ensure that data visualisations can be implemented easily i e providing a means for converting the underlying data into JSON for use with a plug in visualisation library 3 1 3 Functional Requirements Updated Use Case Diagram 16 register for service Enter Dream Data Log Activity Prior To Dreaming store optional categories user data viz dream data Fig 4 Revised Use Case Diagram 3 1 0 Require
81. titative Dream Content Analysis http www2 ucsc edu dreams Coding 63 6 References BOOKS Barrett D The Committee of Sleep A Study of Dream Incubation for Problem Solving Dreaming Vol 3 No 2 1993 Dagfinn Aas ed Time Use Studies Dimensions and Applications Central Statistical Office of Finland 1986 Varol O Menczer F Connecting Dream Networks Across Cultures arXiv 1402 2297 cs SI http arxiv org abs 1402 2297 accessed 17 05 2014 Lemov R The Database of Dreams Social Science s Forgotten Archive of How to Be Human Ongoing Research Max Planck Institute for the History of Science http www mpiwg berlin mpg de en research projects Deptl Lemov Dreams Nodus Labs Cognitive Graph Database Structure Draft Proposal 2014 http noduslabs com cases graph database structure specification accessed 17 05 2014 Wiseman R Night School Wake Up to the Power of Sleep Wolfram S The Personal Analytics of my Life http blog stephenwolfram com 2012 03 the personal analytics of my life accessed 17 05 2014 CODE Creating a Database Driven Application With NetBeans https netbeans org kb docs php wish list tutorial main page html accessed 17 05 2014 http underscorejs org accessed 17 05 2014 c 2009 2013 Jeremy Ashkenas DocumentCloud and Investigative Reporters amp Editors Underscore may be freely distributed under the MIT license WEBSITES 64 Apps Kennedy http brendandaw
82. uirements The system will require back up mechanisms to preserve the data logged This will include regular back ups of the main MySQL Database Security The database is protected from malignant attacks by using mysqli real escape string and strip tags Subsequent builds will implement proper password hashing 24 3 1 5 Performance Response time requirement For aggregate data comparisons speed of recall will be important Access transparency will be secured via use of database permission tables 3 1 6 User Requirements Future iterations user experience is 10096 contingent on an intuitive portable experience 3 1 7 Environmental Requirements Internet access is a prerequisite to sync dream data to server and to access networked visualisations For future phone iterations certain server resources will need to be made available to local app instantiations Fault tolerance is not envisioned as being essential to this build of the app The front end for the system must function in any internet browser Maintainability subsequent builds maintainability will be contingent on server size and load for initial build this is not a necessity 3 1 8 Usability Requirements Reliability the service must always be accessible whenever a user wishes to add data to their dream log 3 2 Design and Architecture 3 2 1 Entity Relationship Diagrams amp Data Driven Development The projects design and architecture followed a
83. ur username enter your password IN Enter your name Username Enter your email address Password Please confirm your password Submit hi Sign Up cont Nearly there Complete to start logging Age January 1 gt 1914 Gender male Usernames must be at least 5 Relationship characters Single OK Your Profession Art music writing z Currently leaming Oyes Om Country Ireland z City Kildare gt Your Passion Your Passior Complete 52 Dream Entry enter last nights dream Category Select dream category z what did you do yesterday User name Jay before sleeping Account Settings Did you have free time before bedtime O Free Time No Free Time Embodied Activity No free time huh E enter the emotions and actions from your d Dream Data Comments Top Dream Topic losing control forgetting or disintegration Example Text Top Dream Person Benjamin enter people from your dreams Last Fortnights Dream Entries mm oo _ ubmi Objects enter objects you remember from your drec enter the locations in your dream Comments any additional comments Desktop several of the pages are comparable to the Mobile version so only those that differ are displayed A responsive counterpart for the data visualisation dataviz php is not provided because responsive design with the D3 library 53 Enter your username Prof
84. vigation Description This use case is important to including robust data gathering into the system from the outset In order that the app provides useful information against which users dream data can be compared against this use case seeks to determine what the users waking activity consisted of before they went to sleep and dreamed Flow Description Precondition A registered user must be logged in User must have logged a dream Activation User clicks log my dream data The waking data form is presented to the user Main flow 1 User clicks link and or logs in 2 User completes the question and selects from subsequent drop down menu 3 Upon completion the data is saved to their profile Sub Flows 2 1 On each tab with questions user may annotate the data with tags Friends Object Location Action format or a diary entry 2 2 this data is added to sum data to be saved to user profile 20 Alternate flow Exceptional flow E1 1 The user attempts to access the screen past the allotted time Termination When the user clicks save When 12 24 hours have elapsed since the notification was sent Post condition Waking Activity table updated 21 3 1 3 Requirement 4 Optional Category Storage 3 1 3 1 7 Description 3 1 3 3 All dreams must be classified with a meta category All waking data entries must have a cause and a time use category For occasions when the categories do not conform to what the user wishe

Download Pdf Manuals

image

Related Search

Related Contents

Pinnacle Products International 300I User's Manual  View Product Label - KellySolutions.com  Drivenics ISD500 シリーズ 【取扱説明書】  pdf - Colmenares Vilata Arquitectos  Une sélection de ressources sur la poésie à l`école élémentaire  Mode d'emploi  Identifier les problèmes  WETTERdirekt Station (WD 9000)  Samsung Galaxy Tab 3 8.0 Hướng dẫn sử dụng(Kitkat)  Instrucciones y puntos de seguridad  

Copyright © All rights reserved.
Failed to retrieve file