User:MeShubham99/GSoc15/proposal

Personal Information[edit]

Name: Shubham Chauhan

Email Address: Shubham13099@iiitd.ac.in, shubham.chauhan1@gmail.com

IRC Username: Shubham

Background Information[edit]

I study in 2nd year B.Tech (Computer Science and Engineering) at Indraprastha Institute of Information and Technology, New Delhi (India). I can write in C, HTML/CSS, Python, PHP, Javascript (beginner level). I was just recently introduced to the organization, which just grabbed my attention and willingness to get associated with it. I plan to look forward to get attached to the organization on a long term basis even after GSOC'15.

Project Information[edit]

Project Vision[edit]

Initial HTML pages started from having p tags, then came <img> and now is the era of not onty images but audios, videos and also as recent as .gifs. There have been a lot of tools and technologies developed in the past few years that work behind the scenes to render these objects. These technologies allow us to manipulate and access 2d and 3d graphics right in the browser. OGV is a potential platform to showcase 3D models and designs to a large audience not only for showcasing but also to provide inspiration to a target audience (just as sites like youtube has provided the world with videos, or behance for graphic design).

Brief Summary[edit]

Online Geometry Viewer started as a GSoC 2013 project by Harmanpreet Singh continued and enhanced by Inderpreet Singh as GSOC 2014 project . It's an online 3D geometry viewer that works on WebGL using three.js. It uses vanilla PHP on server side whereas jQuery and Bootstrap on the front-end. node.js forms a solid foundation for the Viewer. meteor as a framework is being used which is a great advantage for beginners.

I intend to complete the back-end features of OGV which are pending at this point making it production-ready and finally deploying the online viewer.

TODO[edit]

  • Camera position for better viewing

Will include work on model-view, making it optimal and better for user to view models in any way possible. Configure threeJS for better and easy viewing. Enable movement through model and not just a zoom in zoom out movement. Enable editing configurations.

  • edit model

rename, delete, change thumbnail options for models.

  • Basic Viewer functionality up to the mark

We will move on to enable the user to upload other 3D files as well. But first we need to ensure that there are no issues in the *.g files whatsoever. Some *.g files are not being uploaded. Need to check on that.

  • Add feedback system

Just so that the user can send the developer feedback and report bugs directly while using the web-app.

  • Deploy the web-app
  • oAuth module and bug-free login system

There should be not one problem in the login process. The user should login through facebook and google IDs (even github, twitter if asked for). Forget-Password is not working.

  • Enable model tagging

Try to join uploaded and shared model with tags for searching purposes. The way youtube enables the user to add tags to their videos. See these: meteor-bootstrap-tagsinput meteor-tags

  • Search models and users

Enable model searching through name, tag-name, date-time, uploader.

  • Users can follow other users

Users can follow other users and can get notified of their work/activity.

  • enhanced dashboard and profile pages for user: backend

Dashboard/landing page after login: Will be more like a notification center for the user. Activity of the user he/she follows, search options etc. Profile page: I thought it must look like the one like behance profiles. Details of user on the left and his uploads/models on the right.

Milestones[edit]

Community Bonding Period

  • Get user requirements (already started working on it)
  • Understand code-base and fix errors and bugs.
  • initial setup of a working environment (finalizing interfaces etc.)
  • discussions about change in workflow
  • Learn about Meteor and three.js
  • WEEK 1 (31 May)

Make Login System up-to-date. With working email verification system, forgot password mails and omniAuth.

  • WEEK 2 (7 June)

Make changes to the model-viewer page and making it editable by user. Requires work related to three.js

  • WEEK 3 (14 June)

Complete model viewer page and check for bugs and issues regarding error in uploading of *.g files.

  • WEEK 4 (21 June)

Edit model functionality like rename, delete, change thumbnail options for models. Requires changes to model_meta files.

  • WEEK 5 (28 June)

Finalizing with the model uploading, editing and viewing. Add feedback system in OGV web-app.

  • WEEK 6 (5 July)

Start work on deployment.

  • MID TERM EVALUATION (tentative)
  • WEEK 7 (12 July)

Finish deployment work.

  • WEEK 8 (19th July)

Enable model tagging while uploading models.

  • WEEK 9 (26th July)

Enable searching of models, and categorizing models into tags.

  • WEEK 10 (2nd August)

Work on dashboard and other pages where user information needs to be integrated with front-end elements.

  • WEEK 11 (9th August)

Start writing documentation, and look for ways in which social features can be added i.e. followers/following feature.

  • WEEK 12 (16th August)

Work on making social app. Add issues/enhancements to github repository (whatever noticed). Try resolving issues.

  • WEEK 13 (23th August)

Code testing, adding comments, and cleaning code.

  • BEFORE FINAL EVALUATION

Production ready OGV, ready for release. Github repository up-to-date with persisting issues and enhancements for further development.

My Preparation[edit]

  • I have been looking into the code (pretty straightforward), looking into its working, and thinking about enhancements to be made.
  • I also try to communicate as much as possible in the community on mailing lists and IRC, in the time I had. Contacted inderpreet singh (GSOC'14) few times who worked on the same project.
  • I will be striving hard to submit 1 or 2 patches after the proposal, to show my coding style and abilities.
  • Motivated enough to work all summer along.
  • Look for submitted patches within one week of the proposal submission.
  • This web development project does not require any vast knowledge about previous code-base which is advantage.

Why BRL-CAD?[edit]

Particularly because of my love for visualization, graphics and design, I have always had a soft-spot for organization and people working in such domains.

Why Me?[edit]

  • I am eager to learn from brlcad as much as I can.
  • I am flexible and easy to work with.
  • I try my best to get work done, in the most efficient way as possible.
  • I look forward to work with brlcad, even after GSOC, and want to use this as an opportunity to make first contact with the core development team of the organization.
  • I have tried communicating as much as I can in mailing lists and IRC, in as much time I had.
  • I have no other deadlines and am not occupied with other work so I can devote 100% of my time and my laptop to my GSOC project.

Thanks