Development logs for GSoC 2015

Community Bonding Period

  • Scrutinizing meteor framework.
  • Getting to know more about workflow of OGV.
  • Exploring bootstrap.
  • Listing possibilities of production ready plan.
  • Updating the production ready plan after discussions with Sean.
  • Communicate with Shubham to discuss and dug the things deeper.

Coding Period

May 25

  • I have decided to work with the landing page, the first and the foremost requirement.
  • Studied different designing pattern.
  • Developed the prototype for the landing page(roughly).
  • It would consist of the 4 slides
  • Customizing the header as it is less responsive.
  • The first slide will be symbolizing that OGV is 3D viewer and introductory part along with the login link to login page. Little confused, with the content what to add more such that user at the first look can identify that it is a 3D viewer.
  • Second page would depict the working of OGV.
  • Third page confused :-/. What to add?
  • Last slide would comprise the important features expressed in interactive manner.
  • Footer which contains links to BRL-CAD site / blog / updates etc.

May 26

  • Where models were shown that was removed from the existing one, instead an icon is created in the header, clicking of which will take us to the models page.
  • Reason for doing this is such that on clicking of an icon (OGV) it takes us to the landing page and not models page.
  • Make few changes in routes.js according to their functionality.
  • Continuing with the creation of the landing page but facing bit problem. This problem is either due to something wrong in routes or CSS. Working on it.

May 27

  • Problem rising in CSS has been resolved.
  • In the landing page, out of four one is complete fully. The page is almost resposive.
  • Started with the 2nd slide also, gathering stuff for that.
  • The page has been post to my github account, soon will be sending the PR.

May 28

  • The second slide is also complete of the landing page.
  • The slide is fully responsive.
  • Gathering ideas and content for the third slide.

May 29

  • Slide 1 is completed. And it is fully responsive.
  • Little enhancement needs to be done in all the pages and as the colour of the slide do not relate to each other so improvements are needed.
  • I have added the slide to my github repo. After completing with the third slide I would send a PR and will make the changes as per the reviews.

May 30

  • Final slide along with footer is also done.
  • Modification have been made in colour combination. Not well satisfied. Exploring more for it.
  • First slide plus sub-part of first slide is also modified.
  • Almost responsive.

May 31

  • Little change in color combination of landing-page.
  • Looking for the cause of invalid error messages that occurs during submit button.
  • Before, meteor accept only .jpg file for model image but now user can upload .jpg, .jpeg, .png file for his model that are shown in My Models tab.

1 June

  • I completed the landing page and sent that for review but sean pointed out mistakes. The detail of which lies on the mailing list.
  • According to the reviews given I made the improvement and I got positive review from sean about that.
  • Now the most important thing of the concern is the license of the icons that are used in OGV. I'm looking for the other sites that provide the free icons so that no issues are there.
  • While uploading the images, when no image was selected it didn't give any kind of error. This could be done through either adding onValid function in file or passing message in throwError. And I used throwError method for that.

2 June

  • Moving towards the second milestone which is to add the loader.
  • Studied the different packages to add the loader.
  • Facing problems so I am studying the code and trying to understand it.

3-4 June

These two days I couldn't work much as I am suffering from viral-fever and doctor has strictly told for a bed rest. I concentrated on the loader part. I have tried using Meteor n-progress package for adding the progress bar. It worked but the progress bar is not synchronized with the backend process, the progress bar shows it completed but the backend process is still in progress. Also, I have posted the problem on Mailing List and even Inderpreet is also trying to look for it. Also, I have tried with the waitOn function but no success. Currently I am scrutinizing FSCollection and trying with the similar progress examples and will then apply a Loader. Hope to complete it the soon.

5 June

Today I again dealt with the loader but I'm quite disappointed with myself as I'm unable to implement it till now. I looked for circular-progress packages and "tomi:upload-server and tomi:upload-jquery" package. The example of this is working but their is problem in implementation as it uses it own "tomi:upload-server" whenever I use it OGV stop responding due to conflict in the names of the templates. Still working on it. Secondly, I made little improvement in the landing to send the PR.

6 June

I worked on the error part that of the notification previously, during saving if there is any error an empty box was shown with no alert message this thing has been corrected and now the proper error message is shown when the image is not uploaded correctly. Secondly, I have tasted the uplaoder using cfs progress upload the progress bar is shown but it immediately completed.

   {{> FS.UploadProgressBar bootstrap=true class='progress-bar-success progress-bar-striped active' showPercent=true}}

According to me, I think something needs to be done at the backend so as to synchronize the process with the front-end. I have posted my confusion and question on BRL-CAD devel-mailing list.

7 June

  • Today I decided to include the feedback form in the landing page as shubham has almost completed the back-end part of the feedback form so I thought to complete from my side too.
  • I designed a wireframe for the feedback form and looked for the different ideas. to design the page.
  • I have tried my best to keep the page simple and informative.

8 June

  • Shubham send the PR for the feedback form but I thought to have that this page to be included in the landing page rather than making the separate template for it.
  • I have also convinced shubham degrading this by telling him advantages and dis-advantages regarding this.
  • Both logged In / Out user are able to fill the feedback form.
  • I have designed my own icon for this purpose as there need not to be issue of copyright or license.
  • I faced little problem for sending the email but now this is solved.
  • The page is also responsive and I have also send the PR.

9 June

  • Today I started with the basics of Three.js so as to work with issues like setting the zoom limit, camera position etc.
  • Also, I worked on my fourth miltestones i.e related to the error notifications. In many of the cases no error message or not a correct error message is shown. Like the uploading a image of the incorrect format didn't show any message but now the proper error message is shown. At some places there is still a problem, continuing with that.
  • Earlier the image of only .jpg format was uploaded but now .PNG and .JPEG are also the accepatable formats. This was not correctly done in the earlier commit, now it is corrected.

10 June

  • Looking into error notification problem.
  • All the methods already exist but there is the problem in error handling procedure, that may be due the updated version of meteor.
  • I tried with the example of try-catch on updated version which successfully implemented, now working according to that.
  • Also another thing I worked upon is the camera perspective. Previously, the model on the first sight viewed too large, even without any zoom in and the preview being too large was not shown completely. Now the camera perspective is set and scene shows the model correctly.

11 June

  • Simple notification replaced with sAlert notification. It adds to lot many features such that the success, warning etc messages remains for particular period of time. For e.g on clicking on the embed model the notification would last for about 10 sec, so that the user can copy it also. Similarly warning and error messages would last for 8 and 4 seconds respectively and so on.
  • Found bug in exception handling. Exception handling not working properly due to some missing parameter or due to improper coding. Because of this
   if(err) { 

not working. Looking for the root of problem.

12 June

  • Done with the setting of the zoom limit. Earlier the minimum distance was zero, and the maximum distance was infinity. But now the limits are set. The minimum distance I have kept is 20 and the maximum is 10000.
  • Camera position is also set now. Earlier at the first look the model shown was either much zoomed out or zoomed in that is camera position was not set properly. Now it is corrected.
  • Also, I tested different .g files, and found that it doesn't work correctly for larger file sizes. On uploading it, for smaller amount of time after rendering all went well but after that my laptop froze and there was either no or very slow cursor movement. I posted a mail regarding it, that how to overcome it.

13 June

  • Merged new icons made by Inderpreet with mine icons.
  • Minor changes in landing page.
  • Added HTML5 validation on feedback form. Meteor validations pending will do ASAP.
  • Added error message if user upload file instead of .g or .obj.
  • Added different view functionality to view model from different angle on keyboard button press. F for front-view, R for rear view, T for top view and B for bottom view. It's working but there is a small glitch in it, after pressing any of these button I have to zoom out little bit to get perfect view :-/. Checked at lot but didn't find any perfect solution for it. Will solve this bug ASAP.

14-15 June

  • Nothing much, little busy in college paper work.
  • Designing new icons for front-end page.
  • Worked on feedback form validations.

16 June

  • Talked on three.js IRC regarding my onKeyDown button problem. They provide me solution to make changes on few places but bad luck nothing worked for me :-/. Looking something else for this problem.

17 June

  • Made header part more responsive and did proper alignment according to different screen sizes.
  • I have tested the feedback page, there were little fluctuations so made them correct and now it's working fine.
  • Applied validations on feedback form input fields. Facing little problem in meteor validations.

18 June

  • The views set previously were not working correctly as we need to zoom it or out a little to view. There were certain conflicts in the code and scene position was not correctly set, as I was using OrbitControls as well as controlling the camera directly. Glitches has been removed now and one can properly see all the views of the model.
  • To make it user friendly, by using the CSS I have designed an indicator / icon to the bottom left hand side of the model viewer page. This will, on hovering will indicate the user to switch to different views on pressing the respective keyboard keys.

19 June

  • Went through work done till now. Find out minor bugs and resolved them.
  • Had a meeting with Sean. I showed my work done till now. Some of the mistakes and issues were indicated by him.
  • Started resolving the issues as said.

20 June

  • Working on the issues.
  • Now when the user logs in, view model button is shown instead of sign-up button which was shown earlier on the landing page.
  • If someone navigates to the wrong / incorrect page 404 error is shown( Designing work is pending)
  • Little modification in routes after log-in.
  • Description is shown on the My-Models page to the new user (earlier it was empty).
  • Working on the validation part of feedback form.

21-22 June

  • Added safari validations in feedback form.
  • Made minor changes in model viewer part.
  • Working on error message which will occur if .g to .obj conversion fails. Working perfectly on console.log but facing problem in calling on client side. Posted mail on devel-mailing-list waiting for reply.
  • Searching / Looking ideas for the design of 404 page :).

23-24 June

  • Corrected 404 page path in routes.
  • Done with the designing of 404 Page.
  • Almost responsive.

25 June

  • Nothing much, looking for the solution to set default model image when the user dose not upload any.

26-27 June

  • Error message on .g to .obj conversion part started working. Right now it works only for true or false case i.e
   if (.g to .obj conversion === true) 
       show success 
       show error

Still have to do lots of improvement on it but at later stage. Like if conversion is in progress and so on stuff.

28-29 June

  • The newly designed icons have been implemented in the landing page, just minor changes need to be done.
  • Due to the freeBSD support on the server, I'm learned to install freeBSD and now I'm playing with it virtually on my machine. Currently, I'm learning the steps to deploy OGV on the server.