Skip to content

Development Handbook

Tony Hu edited this page Aug 24, 2015 · 12 revisions

31/07/2015 - Constructed a frameless icon app and made it draggable

  • We hacked the nw -webkit-user-drag because it disables other html events such as dragover. Now everything that make the icon draggable is based on mousedown and mousemove detection.

01/08/2015 - Backend, drop to upload

  • The Backend is ready for both upload and download together with database indexing of all files. All files are currently tracing by its unique uuid and available for everyone
  • The app is ready for drop to upload, and upload records are saved locally on client machines (no cloud backup) .

03/08/2015 - Recent upload and item function

  • Right click on the float menu will pop up a context menu contains the recent file list, a few checkboexx, a few debug buttons and the about page indicator.
  • Hover on the recent file in the context menu will continue you into the submenu, different subitems are fully functional now, for details please see contextmenu of mind-drop.

04/08/2015 - Image Crop and Mac Menu Bug Fix

  • The nw win-capture is a capture of the page, however to get a fullscreen capture we need to get the tab in fullscreen. However the window transparent and fullscreen don't work together, so we turned back and use getUserMedia to capture the first frame of screen using the screenApi and then using canvas to crop it into an image. Next we deploy cropper jquery plugin to finish the cropping action.

  • On Mac, one menu item (created by new Menu.item) can only be appended to one menu compared to Windows. So every contextmenu generated now is a new one and we made a protection of memory leakage for a better performance.

05/08/2015 - Backend Cron and Mac OS Bug

  • Using node-cron, we are able to make the server clean itself every one hour. Now, all the files uploaded to MindDrop server are cleaned after two days, both from database and hard disk.

  • On Mac, using the screenApi is somewhat different from Windows, the screenId is different from Windows, a os specific configuration needs to be set for this.

06/08/2015 - Web-Page Download and Add Upload Limit

  • Add a basic download interface (Basically nothing but an 'a' tag for auto trigger download)

  • Add upload limitation of single file to 20M. In the future, limitation will be based on users (.e.g 2G per User per month for free plan).

07/08/2015 - Folder Compression and File Dialog

  • Add support for folder drop, when folder is dropped it will be zipped using the node-archiver then uploaded.

  • Add a file dialog button at contextMenu, one for file and one for folder.

10/08/2015 - Socket Tunnel and Screen Sharing

  • Add support for screen sharing built on top of WebRTC APIs. Now people are able to start to share-screen and share a link to friends. Friends are able to view this link on webrtc supportable browsers.

  • Add socket tunnel for currently webrtc usage and future functions.

11/08/2015 - Menu-item Icon rendering and Recent-Item deletion

  • Thanks to TonyChol, his icons bring life and color to the app.

  • The recent-item list is now alterable using the "delete" subitem. A second release together with Mac Version will out soon.

12/08/2015 - User system and socket.io in node

  • User system is all ready and now every user has 2G free space with 5 days long storage. When user is not logged in or out of space, uploads will fail, however the screen sharing is always free and ready.

  • Socket.io itself creates bug when running in window contexts, now it is used in node context as node modules that lives through different windows. Beta version will be out today

13/08/2015 - Release Bug and About page

  • Fixed few bugs in release

  • Add about page. Thanks Yummy Yang.

14/08/2015 - Stable versioning and debugging.

  • Since the current release of MindDrop fulfilled the basic function and stability for daily usage, the update frequency is going to lengthen to weekly

20/08/2015 - Note Support and Local Server

  • Note sending support added, it is designed for work settings, where people send notes through intranet ip addresses.

  • Now whenever MindDrop is running, a port will be opened for it to receive notices ( Default port:10087, no cloud server needed).

  • In the future, multi-office connection will be a priced option since it needs server support.

24/08/2015 - Mobile and Web Development online

  • Web App for MindDrop will be mainly based on viewing and downloading files, implementing current web pages jumped from MindDrop Desktop

  • Mobile will include upload of photos and videos and surely viewing of files. IM functions and desktop view are also listed since the rtc is spreading inside ios and android now. An integration maybe easily made.

  • Development update will be still based on weekly.