Master Thesis : Amanote - a Modern Note-Taking Application

Master Thesis : Amanote - a Modern Note-Taking Application

http://lib.uliege.ac.be http://matheo.uliege.be Master thesis : Amanote - A modern note-taking application Auteur : Fery, Adrien Promoteur(s) : Boigelot, Bernard Faculté : Faculté des Sciences appliquées Diplôme : Master en sciences informatiques Année académique : 2016-2017 URI/URL : http://hdl.handle.net/2268.2/2612 Avertissement à l'attention des usagers : Tous les documents placés en accès ouvert sur le site le site MatheO sont protégés par le droit d'auteur. Conformément aux principes énoncés par la "Budapest Open Access Initiative"(BOAI, 2002), l'utilisateur du site peut lire, télécharger, copier, transmettre, imprimer, chercher ou faire un lien vers le texte intégral de ces documents, les disséquer pour les indexer, s'en servir de données pour un logiciel, ou s'en servir à toute autre fin légale (ou prévue par la réglementation relative au droit d'auteur). Toute utilisation du document à des fins commerciales est strictement interdite. Par ailleurs, l'utilisateur s'engage à respecter les droits moraux de l'auteur, principalement le droit à l'intégrité de l'oeuvre et le droit de paternité et ce dans toute utilisation que l'utilisateur entreprend. Ainsi, à titre d'exemple, lorsqu'il reproduira un document par extrait ou dans son intégralité, l'utilisateur citera de manière complète les sources telles que mentionnées ci-dessus. Toute utilisation non explicitement autorisée ci-avant (telle que par exemple, la modification du document ou son résumé) nécessite l'autorisation préalable et expresse des auteurs ou de leurs ayants droit. MASTER THESIS Amanote: A modern note-taking application Author: Supervisor: Adrien FERY Prof. Bernard BOIGELOT A thesis submitted in fulfillment of the requirements for the degree of Master in Computer Science by Adrien FERY in the Faculty of Applied Sciences Department of Electrical Engineering & Computer Science Academic Year 2016-2017 iii Declaration of Authorship I, Adrien FERY, declare that this thesis titled, “Amanote: A modern note- taking application” and the work presented in it are my own. I confirm that: • Where any part of this thesis has previously been submitted for a de- gree or any other qualification at this University or any other institu- tion, this has been clearly stated. • Where I have consulted the published work of others, this is always clearly attributed. • Where I have quoted from the work of others, the source is always given. With the exception of such quotations, this thesis is entirely my own work. • I have acknowledged all main sources of help. • Where the thesis is based on work done by myself jointly with others, I have made clear exactly what was done by others and what I have contributed myself. Signed: Date: v “Build your own dreams, or someone else will hire you to build theirs.” Farrah Gray vii University of Liège Abstract Faculty of Applied Sciences Department of Electrical Engineering & Computer Science Master in Computer Science Amanote: A modern note-taking application by Adrien FERY This thesis discusses the reasoning - in terms of technological choices, method- ologies, and workflow - behind the construction of a scalable and modern application intended for a large number of users. The work takes the development of Amanote, a note-taking application for slides and syllabuses, as the main thread. Firstly, it covers the development, the deployment, and the testing of the client-side, favouring low-cost and open-source technologies. It then explains the construction of a serverless architecture for the server-side, enabling high scalability and availability. The results tend to show that the technologies used were well suited and in accordance with the requirements. Two years after the start of development, the application is still maintainable and acquired more than 20,000 users in 7 months. ix Acknowledgements I wish to express my gratitude to Professor Bernard BOIGELOT for his super- vision as well as to Thomas FRANÇOIS, Patrick FERY, and Matthias HURDE- BISE for their proofreading. I sincerely thank Olivier DE WASSEIGE and Vincent KEUNEN for their pre- cious advice in both Management and Computer Science. I also want to thank Laurine ROSSION, Nathan SORET, Etienne GERKENS, Baudouin DE HEMPTINNE, Remi COMTE-OFFENBACH, François RIGO, Noé DELÉPINE, Yoric PETITFRÈRE, and all those not mentioned for their support in Testing, Marketing and Management. x Contents Declaration of Authorship iii Abstract vii Acknowledgements ix 1 Introduction1 1.1 Why Amanote............................ 1 1.1.1 The growth of digital communication supports..... 1 1.1.2 Handwritten versus computer-based note-taking.... 1 1.1.3 Note-taking solutions before Amanote.......... 3 Text editor.......................... 3 PDF Viewer ......................... 3 1.2 The birth of Amanote........................ 4 1.2.1 Basic features ........................ 4 1.2.2 Advanced features ..................... 5 Cloud storage........................ 5 Audio recorder ....................... 5 Statistics about the slides.................. 6 1.3 Work overview ........................... 6 2 Client-side7 2.1 Introduction............................. 7 2.2 Requirements ............................ 7 Targeted platforms..................... 7 User-centered design.................... 8 Continuous delivery.................... 8 Cost.............................. 8 Copyright .......................... 9 2.3 Technology.............................. 9 2.3.1 Native versus cross-platform comparison . 10 Native ............................ 10 Cross-platform ....................... 10 2.3.2 Selection criteria for a cross-platform framework . 11 Open source with a large community .......... 11 xi A popular programming language............ 12 Fulfilled requirements ................... 12 Quality of existing applications and documentation . 12 2.3.3 Description of some popular cross-platform frameworks 12 JavaFX ............................ 13 Haxe ............................. 14 Electron ........................... 16 Mono............................. 18 Others ............................ 18 2.3.4 Motivation for choosing Electron............. 19 Electron versus JavaFX................... 19 2.3.5 More detail about Electron................. 21 Basic Electron app example................ 23 Auto-updater ........................ 24 2.3.6 JavaScript framework ................... 25 2.4 Working environment........................ 25 2.4.1 Directory structure..................... 25 2.4.2 Automated workflow.................... 27 2.4.3 Version control system................... 27 Technologies......................... 28 2.5 Bug handling............................. 29 2.5.1 Knowing the technologies................. 29 2.5.2 Code review......................... 29 2.5.3 Tests ............................. 30 Unit testing ......................... 30 Integration and validation testing............. 30 2.5.4 Reporting .......................... 32 2.5.5 Crash resilience....................... 32 2.6 Build, release and deliver...................... 33 2.6.1 Build............................. 33 2.6.2 Protection and defend ................... 33 Technology.......................... 34 Obfuscation example.................... 34 2.6.3 Release............................ 35 2.6.4 Certificate and Authentication .............. 35 2.6.5 Delivery ........................... 36 Mac App Store........................ 36 Windows Store ....................... 36 Update............................ 37 xii 3 Server-side 39 3.1 Introduction............................. 39 3.2 Requirements ............................ 39 3.2.1 Scalability .......................... 39 3.2.2 Availability.......................... 40 3.2.3 Programming language .................. 40 3.2.4 Serverless architecture................... 40 3.3 Technology.............................. 41 3.3.1 Cloud provider ....................... 41 3.3.2 Choice of a cloud provider................. 42 3.3.3 More details about Amazon Web Services . 44 Computing platform - AWS Lambda........... 44 Storage - Amazon Simple Storage Service (S3) . 45 NoSQL database - AWS DynamoDB........... 46 User management - Amazon Cognito .......... 46 3.4 Working environment........................ 47 3.4.1 Development versus Production ............. 47 3.4.2 Apex ............................. 47 3.5 Analytics............................... 48 3.5.1 Requirement......................... 48 Event tracking........................ 48 User profiles......................... 48 Triggered campaigns.................... 48 A/B Testing......................... 48 Compatibility........................ 49 3.5.2 Metrics to track....................... 49 Churn rate.......................... 49 3.5.3 Technology.......................... 50 3.6 Tests.................................. 50 3.6.1 Automated tests....................... 50 4 Results 53 4.1 Introduction............................. 53 4.2 Overview............................... 53 4.2.1 Compatibility........................ 53 4.2.2 Download.......................... 54 4.2.3 Installation.......................... 55 4.2.4 User interface........................ 55 4.2.5 First use ........................... 55 4.2.6 Open a document...................... 56 xiii 4.2.7 Highlighting......................... 57 4.2.8 Note-taking ......................... 57 4.2.9 Save the notes........................ 58 4.2.10 Cloud storage (Premium) ................. 59 4.2.11 Exportation ......................... 59 4.2.12 Audio recorder (Premium)................. 60 4.2.13

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    88 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us