Google Summer of Code 2015 Ideas

Ibrahim Eid edited this page Mar 27, 2015 · 13 revisions

BuildmLearn would be applying to participate in Google Summer of Code 2015 program. This page lists some the ideas for enhancing the BuildmLearn Toolkit as well as developing educational mobile apps. We suggest the students to submit proposals based on the ideas listed below. While we are also open to new ideas, the ones listed below fit in our roadmap and future development.

Note: Students interested in submitting a proposal to our organisation should read the general instructions on this page: Guidance for Students.

Broadly, the ideas listed below consists of the following. Probable mentors are mentioned for each of the ideas in the sections which are elaborated below.

  1. BuildmLearn Toolkit on Android
  2. New Templates for BuildmLearn Toolkit
  3. BuildmLearn App Store on Windows Phone or iOS
  4. Educational mobile applications

Please feel free to connect with the mentors listed about the ideas. We encourage you to post in our BuildmLearn Google group; the mentors are active in the group.

##1. BuildmLearn Toolkit on Android

Probable Mentor: Pankaj Nathani

Difficulty Level: Intermediate

###Summary: The BuildmLearn Toolkit is currently a desktop application supporting Linux, Windows and Mac OS platforms. We have been exploring possibilities of developing a version of the toolkit for mobile devices (starting with Android). This task involves developing the BuildmLearn Toolkit application for Android mobile devices.

###Skills: Basic knowledge of developing mobile applications on Android is required. Preference would be given to students who have previously developed and published android applications in Google Play store. Bonus points for having worked on other popular mobile platforms like Windows Phone or iOS, in addition to Android.

###Details: With the current desktop version of BuildmLearn Toolkit, teachers can create mobile applications from the templates available and have option to either generate an android application (.apk) or publish the application to BuildmLearn Store. We would like to create the same experience on Android devices (including tablet devices).

This effort would mainly contain the following todos:

  • Developing the basic UI - The UI of the application should be designed and developed keeping in mind different screen sizes (phone and tablet resolutions). This would involve writing two sets of user interface - one for the phone (portrait) and another for the large screen tablet (landscape) devices. The interface would involve the general UI of the toolkit, plus screens flow for each template. The interface should be minimalistic yet easy to use. Placing the right components at the right place for various templates is the key to this task.

  • Port the business logic / engine - Second up, would be to implement the functionality of the toolkit on Android. This would involve writing logic for decompiling and recompiling android applications on the phone. This task would also include writing functionality to publish (upload) applications to the BuildmLearn store using REST APIs. The APIs for performing store operations will be provided.

  • Developing the simulator part - The desktop version of BuildmLearn toolkit comes with a built-in simulator to test applications. We would love to add the simulator experience to the mobile version of the toolkit. The source code for template mobile applications is available and ready to be integrated, so this would rather be straight forward to implement.

###Expected result: We expect that the student is able to deliver the application in two stages: The first version of the application is something that we would like to see the midterm evaluation period. This version of the application should have minimalist UI with most of the functionality in place. We will make this version of the application available to limited users and developer community to get some feedback.

The second version of the version is expected close to final evaluation period. This version of the application would have the simulator logic developed and integrated. Moreover, this version of the application is expected to be complete in all aspects of UI and functionality. The application should be well tested and the student should try to fix reported bugs and issues. We would also like the student to work on the design and code level documentation, which should be in good shape for final evaluation.

The final goal of this project is to publish the BuildmLearn Toolkit Android application to Google Play store by the end of GSoC.

###Where do I start? Being well familiar with the desktop version of BuildmLearn toolkit is important if you wish to take up this task. We suggest that you install the desktop version of the toolkit and explore all the functionality that needs to be implemented on mobile devices. It would be best if you work out wireframes for the user interface of the application as a whole, including templates.

##2. New Templates for BuildmLearn Toolkit

Probable Mentor: Rahul Ahuja, Mridula Benjamin

Difficulty Level: Intermediate

###Summary: BuildmLearn Toolkit currently supports four mobile application templates (viz. Basic mLearning, Quiz, Flashcards and Learn Spellings). This task involves writing 3 to 4 new templates (listed below) and integrating them with the toolkit.

###Skills: Basic knowledge of C++ is required. Knowledge and experience of working with Qt projects are desirable. Experience of working on any Debian Linux distro and Mac OS is a plus. Beyond programming knowledge, preference would be given to students who have already explored the toolkit code base. Bonus points to students who can write a sample template to prove their experience with the toolkit source code.

###Details: Writing a new template for the toolkit involves two tasks:

Developing the toolkit editor - This involves providing the necessary fields for accepting user input. The user input may vary across different templates. The developer should identify which user inputs need to be implemented and accordingly design and implement the UI of the toolkit editor. We suggest that you refer to the code and design of existing templates before working on the new templates.

Developing the simulator logic - The BuildmLearn Toolkit comes with an inbuilt simulator, which allows users to test mobile applications before generating or publishing them. Each template implements a simulator logic of its own, in addition to the UI. Please check the simulator of existing templates to get a better idea of how the simulator works.

Following are the new templates that need to be developed for this task.

  • Video collection - This template allows the user to create a video collection application. The application generated from this template would list videos added by the user and allow them to be played back - basically providing easy access to a bunch of useful videos on a topic. After choosing this template, the user can add videos urls from various providers like (Youtube, Dailymotion, Vimeo, etc.). The mobile application would then render the videos (with title and description) and provide options for playback and access.

  • Comprehension - Applications generated by this template, provide a passage to read in given time. Once the passage is read, the application poses some multiple choice questions to answer. The student would be graded based on how he answers the questions.

  • Match the following - Applications generated by this template would provide two set of topics. The students needs to match each topic in the first set with one topic in another set. The student would be graded based on how many topics he can match correctly.

  • Dictation - The student would be asked to use their headphones and listen to a small passage from their textbooks. As the student listens each sentence they would be required to type it in the space provided. The student can adjust the speed of spoken text. Once the passage is written it would be checked for errors such as spellings, punctuations and the user would be graded accordingly. The developer needs to take care about punctuations being pronounced by the TTS engine.

Note: This task doesn't involve developing mobile applications for these templates. The mobile applications would be provided to be integrated with the toolkit. Please note that the simulator that is implemented for these templates should mimic the UI and functionality of the provided applications.

###Expected result: Ideally, we expect that the student who is accepted for this task is able to finish writing all four templates for the toolkit as an end product.

By mid-term evaluations, we expect the student to be well familiar with the code base of the toolkit and finish writing two templates. The templates written should be well tested and integrated into the toolkit source code. By final evaluation, we expect the student to work on the other two templates. The student should also fix any reported bugs regarding the features implemented by him/her.

The final goal of this task is to develop the aforementioned 4 templates, deliver code and release builds of BuildmLearn Toolkit for Windows, Linux (and Mac OS, if possible) platforms. We would also like the student to work on the design and code level documentation for the new templates, which should be in good shape by final evaluation.

###Where do I start? To be able to work on this task the developer needs to be well familiar with the source code of BuildmLearn Toolkit. We suggest that everyone who wishes to apply for this idea, try to compile the source code and explore the source code. Students should at least go through the source code of existing templates in the toolkit to get a good idea of how much work would each template involve. If you have more time, try to develop a sample template for the toolkit (along with the simulator logic). Developing a sample template successfully for the toolkit would add bonus points to your proposal.

##3. BuildmLearn App Store on Windows Phone or iOS

Probable Mentor: Neha Dhanwani

Difficulty Level: Easy

###Summary: BuildmLearn store is a app store where teachers can submit mobile applications created using BuildmLearn Toolkit. Anyone using the the BuildmLearn store has access to all published applications. Thus, the store is a distribution medium for apps created using the BuildmLearn Toolkit. We already have an alpha version of BuildmLearn store ready on Android. This task involves creating BuildmLearn store on Windows Phone or iOS mobile platforms.

###Skills: Basic knowledge of developing mobile applications on Android is required. Preference would be given to students who have previously developed and published android applications in Google Play store. Bonus points for having worked on other popular mobile platforms like Windows Phone or iOS, in addition to Android.

###Details: BuildmLearn store would be a mobile application which would have the features of an app store. Users of BuildmLearn store would be able to a) see the list of applications available b) browse various apps on the store by categories and c) install applications from the store.

This effort would mainly contain the following to dos:

  • Fetch data using REST APIs - The data to be rendered on the store would be made available by REST APIs in XML format. Modules need to be developed to fetch this XML data via HTTP GET requests and XML parsing logic needs to be written. The parsing should be done on another thread and not block the UI of the application.

  • Developing the UI - The UI of the application should be designed and developed keeping in mind different screen sizes (phone and tablet resolutions). This would involve writing two sets of user interface - one for the phone (portrait) and another for the large screen tablet (landscape) devices.

The interface would involve screens for a) listing apps with a thumbnail images b) checking out details of an application c) listing apps of installed applications d) browsing the categories on the store.

###Expected result: We expect that the student is able to deliver the application in two stages: The first version of the application is something that we would like to see by midterm evaluation period. This version of the application should have minimilist UI with most of the functionality in place. We will make this version of the application available to limited users and developer community to get some feedback.

The second version of the version is expected close to final evaluation period. This version of the application is expected to be complete in all aspects of UI and functionality. The application should be well tested and the student should try to fix reported bugs and issues. We would also like the student to work on the design and code level documentation, which should be in good shape by final evaluation.

The final goal for this project is to publish the BuildmLearn App store WP/iOS application to App store by the end of GSoC.

###Where do I start? Being well familiar with the desktop version of BuildmLearn toolkit is important if you wish to take up this task. We suggest that you install the desktop version of the toolkit and explore all the functionality that needs to be implemented on mobile devices. It would be best if you work out wireframes for the user interface of the application as a whole, including templates.

##4. Educational Mobile Applications

Probable Mentor: Aditi Sharma, Avnee Nathani

Difficulty Level: Mentioned against each mobile application

###Summary: We are looking to develop several educational mobile applications on various platforms and make them available on various mobile app stores. Some of these ideas are listed below. We are also looking for some interesting ideas to create mLearning applications, if students have ideas of their own and wish to submit their own proposals, we would welcome this as well.

###Skills: To get selected for this, it is good to have some knowledge of mobile application development in one or more of these platforms: Android, Windows Phone, iPhone, or HTML5 web platform.

###Details:

(i) 'Label the diagram' application

Difficulty Level: Advanced

With this mobile application, we aim to help students to study ‘diagrams' from various subjects like Science, Physics and Biology.

The idea is to have an application that presents diagrams to the user on various subject topics. There would be a box containing set of words. The user needs to drag and drop the words to the right place in the diagram, so as to label part diagram. Score would be incremented when labelled correctly; also a short info regarding the label would be displayed.

We will be looking at creative user interfaces that easily solve the purpose of labelling the diagrams. The application would be preloaded with several diagrams to start with. Possibilities of allowing adding more diagrams through an update should be implemented.

(ii) ‘Practice handwriting’ application

Difficulty Level: Intermediate to Advanced

This mobile application is helpful to children who are learning how to write, by allowing them to practice their handwriting skills.

The application would present letters & words, and allow the kids to trace them. Voice/ Speech warnings would be given instantaneously when the trace is wrong. The kids would be able to restart the trace once they receive the warnings.

As studies indicate, kids are more likely to spend more time practicing this on smartphone / tablets when compared to pen and paper.

To start with, we would use english literals (small, capitals, numerics) and words in this application. However, we would like the application framework to be scalable to other languages as well in future. Developers thus need to work on a handwriting trace engine that would work for most of the languages, given the boundaries of the shape of the letter / words are known.

(iii) Application to measure sensor data and various parameters - elevation, noise and sound, distance, magnetic field and seismic waves

Difficulty Level: Easy

In this mobile application, we aim to visualize data from various mobile sensors.

The idea is to have an application which shows a list of all the sensors available in the device. Not only sensors, the list would also show various parameters that can be interpreted from these sensors. For example, elevation, noise and sound, magnetic field and seismic waves.

When the user chooses a sensor / parameter from the available - the live data from the sensor (or the calculated parameter value) would be shown to the user. Various visualisations for representing this data would available. The simplest real time visualisation would be various types of 2-D graphs on which the value of sensor data / computed parameter could be plotted against time.

###Expected result: We expect that the student is able to deliver the selected application in two stages: The first version of the application is something that we would like to see by midterm evaluation period. This version of the application should have minimalist UI with most of the functionality in place. We will make this version of the application available to limited users and developer community to get some feedback.

The second version of the version is expected close to final evaluation period. This version of the application is expected to be complete in all aspects of UI and functionality. The application should be well tested and the student should try to fix reported bugs and issues. We would also like the student to work on the design and code level documentation, which should be in good shape by final evaluation.

The final goal for this project is to publish the selected mobile application to Google Play /App store by the end of GSoC.

###Where do I start?

We recommend that students should first choose one of the applications (from the above list) that interests them the most. Once the students have selected an application, the next step would be to create wireframes / mockups for them. Students may also want to research on various aspects of the application and come up with a plan of action to develop them. It is also recommended that students go through the application development guidelines of the platform they wish to develop the application for. Including technical details of APIs, 3rd party libraries and wireframes in your proposals is strongly recommended.###

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.