GSoC 2013 Application Laurentiu Ion: Mobile app for iOS and Andriod - sympy/sympy GitHub Wiki

Preliminary Pull Request: https://github.com/sympy/sympy/pull/2073

Name: Laurentiu Cristian Ion

Enrollment: Mathematics and Informatics at the University of Bucharest

Email: [email protected]

IRC Nick: laurion

Github: laurion

LinkedIn: http://www.linkedin.com/pub/laurentiu-cristian-ion/50/787/776

Short Bio / Background overview

I love programming and I think Open Source is one of the best things in this world (other than saving lives not many jobs are this rewarding). I made my first 3D video game (first person shooter) in 9th grade.

Me the programmer

  • I've used linux since 9th grade
  • I like Sublime Text 3 the most. I also use Vim, but only when I feel the need for hardcore fast coding.
  • One of the projects written in Python is Tank AI which you can find on my github profile.
  • I use github-flow :) master is always production, branches = features, and Pull Requests are great.
  • I am commited. I'm one of the Google Code-in Grand Prize Winners from last year: http://google-opensource.blogspot.ro/2012/02/google-code-in-2011-grand-prize-winners.html

Should you choose me, you will have the chance to mentor a very passionate kid.

The Project

  • My project is a SymPy mobile app for iOS and Android.
  • I am excited about this project. In my opinion this could be a decisive feature for a very big number of users. If they need this and they find a cool app in the App Store or Play Store, they are surely going to stick with SymPy.
  • I am planning to use HTML5 and JS to make cross-platform code. I've been working at a start-up doing just this using Cordova(PhoneGap). I also find Titanium interesting, so we'll decide which one would be a better choice.
  • Wolfram Alpha has an app and a cool math keyboard but I think we can do a lot better. First of all, it isn't offline. Wolfram Alpha just gets the text input and sends it to a server, which can be both slow (especially if you are in an exam :D ) and unconvenient.
  • I plan to invest most of my day in this project. I will definitely work at least 40h in a week. There is one exception, a period when I will not invest so much time, due to exams: between July 3rd and 6th and a few days beforehand allocated for school related studying.
  • Rough Timeline:
    • before June 17th: research, research and research, read code. Try different approaches. Make adjustments to the plan
    • week 1 design and implement cool UI and basic features, without worrying about SymPy functionality - first Pull Request
    • weeks 2-3 make the best keyboard for math. inspire from Wolfram Alpha and 'Math Keyboard' for Android. temporarily slowed down rhythm, due to preparation for exams _~ 3 Pull Requests_
    • week 4 dive into actually running SymPy code and displaying everything in a mobile-friendly way _~ 1 Pull Request_
    • week 5 write unit tests. fine-tune everything. make awesome. we should already be proud of it at this stage _~ 1 Pull Request_
    • week 6 dive into offline and online syncing and think about what advantage online gives us _~ 2 Pull Requests_
    • weeks 7 - ? fix issues
    • week ? buffer in case I get behind schedule. try to publish it
    • weeks ? - end time for final code cleanup and documentation touches, presentations etc.

Important things to consider:

It will work offline. I often find myself in need of WolframAlpha or SymPy but I don't have internet access.