GSoc 2015 Application Chitrank Dixit Sympy Web Hybrid Application like KAlgebra - sympy/sympy GitHub Wiki

About Me

Basic Information

Name: Chitrank Dixit

Email: [email protected]

University: International Institute of Professional Studies, DAVV , India

Github/IRC: Chitrank-Dixit

Website/Blog: chitrank-dixit.github.io | trackleech.blogspot.in

Personal Background

I am a 3rd year graduate pursuing Master of Computer Applications at International Institute of Professional Studies, DAVV , Indore - 452009 (Madhya Pradesh) India. I have been consistently exposed to the field of Mathematics since my high school, and have taken courses in Higher Mathematics including Abstract Algebra, Linear Algebra, Real Analysis, Discrete Mathematics, as well as in Computer Science including Data Structures and Algorithm Design & Analysis in my Graduation.

Programming Details

I work on Ubuntu 14.04 LTS machine with Sublime text 2 as my primary text editor because of it's user-friendliness and quick learning curve. I am very much familiar with version control system and been using Git(command line) and Github for quite some time now. I have been programming for over 3 years now, I started with C/C++ and then learnt some Object Oriented Concepts and tried Java and Python. I switched to Python over an year ago due to the fact that there is little difference between Pseudo Code and Python code, which makes the life of a Programmer much easier.

Favorite Features of Python: Extended unpacking (Python 3) & Zipping/unzipping of iterables. In SymPy my Favorite feature is the Solvers & Integral Modules, since it implements the things which are often pretty tough doing Manually, that's the prime reason I am extremely Interested in the Solvers Module and Making a Web App wrapper over it so to make sympy available and easy to use for the School Students who just know mathematics but will .

Contributions to SymPy

I started playing with SymPy for my coursework in mid November 2014 & made my first contribution in December 2014, Since then I have been consistently contributing and learning from the great community. I have made 19 Pull Requests out of which 17 were merged.

  • (Resolved) PR #8647 : The Issue was to Reorganize the SymPy GSoC Ideas wiki page. I have fixed this Issue with the Idea template so whenever someone comes up with the Idea and add his/her idea according to the Idea template on Sympy Idea page. Fix Issue #9167.

The Project

Brief Overview

Sympy Web/Hybrid Application like KAlgebra.

Hello Sympy developers I am proposing a new plan for the sympy community. I have read on the very first page of the sympy website. That It aims to become a full featured computer Algebra system, and therefore to I will be adding a feature of making a Sympy Environment or Sympy Notebook where naive students proper guidance to use the sympy Environment to complete their work. Currently Sympy depends on ipython notebook. But this overhead can be removed by making Sympy's own Notebook for those who want to use this notebook. These notebooks would be extensible and cross compatible to be used with the projects like Moodle and other learning management systems. Also these notebook's widgets can help a big website or portal's overhead of programming the Computer Algebra System Repetedly.

The Plan

Currently, The best way to work on sympy module and to test its features is the ipython notebook. It is good for the developers who test and contribute to the Sympy community. But to make Sympy a real success we need to make more and more end users who use sympy to supply a proper input and get proper output only because many a time an end-user does not want to understand the internal detail, the user just want a proper environment to work where the window pops up and everything comes on the screen he just need to click options and get his work done by getting output and generate/export a report in various formats. The application will not use any web hosting space. The application just use the device space to save the userdata and exported documents and projects.

Basic Idea

I am a Python Flask developer and know Javascript very well. Therefore I can develop an hybrid application that works on both Computer's and Mobile/Smartphones/Tablets. Therefore we can have a clear picture of the supported devices for our application.

Additional Softwares and Modules required

Python Flask:The Application require Python Flask which is a micro-web framework. The benefit of using Python Flask is that it is open source and now a days it's community is expanding thus they would provide better support to develop.

AngularJS: AngularJS is Javascript Library that deals with the Model View Controller systems well and give results in the real time using AJAX features and fully readable and clean built in function. The project is supported by Google so here also we can get good support from the community while we get stuck.

Bootstrap 3: Bootstrap 3 is a HTML, CSS and Javascript framework to develope the responsive web applications. SO you can start building your hybrid apps straight a way by using Bootstrap Library. (After Making a Web App we can also think of developing a Proper Mobile App for Android and iOS platforms).

Sympy: The App uses Sympy for Symbolic computations and intuitive user friendly results to the users.

numpy: Numpy to perform various operations which can not be performed by using the general Python programming.

scipy: Scientific functions would be necessary to extend the application's ability to perform difficult and peculiar operations and that can be easily done using scipy.

Timeline

I will have my exams till the 3rd week of April, thereafter I will start right away. Meanwhile I have a hobby of playing Guitar. So I would just tak 1-2 hours daily for playing my Instrument.

Community Bonding Period & Week 1

  • Discuss my plans with the Sympy community and keep into notice the valuable suggestions.
  • Start My Python Flask app along with Bootstrap and AngularJS and complete the front end design.

Week 2, 3 & 4

Work on

  • Creating a realtime prompt on the UI that takes Input and generates output.
  • The very first realtime prompt consists of the simple python only.

Week 5

  • After that I would add up modules like sympy, numpy and scipy after discussing with the mentors.

Any Plans/Commitment (During GSoC)

  • I have no major commitments for this summer and I am positive that I will be able to contribute for about 40-50 hours a week for the project. This project at will form the core of all my working and learning throughout the Summer.
  • I will be maintaining a Blog(weekly) at trackleech.blogspot.in, to keep track of my progress & also to get feedback from the community.

Future Plans (After GSoC)

  • Sympy is pretty close to my Interests as well as my Academics, I am looking forward for a long term association with Sympy Community.
  • I plan to actively maintain my code and do Bug-fixing/Reviewing in SymPy even after my GSoC time period is over.
  • I want to be the active memeber of the community even my application gets rejected.

References