Skip to content

Google Summer of Code 2016 Ideas

Yask Srivastava edited this page Mar 7, 2016 · 11 revisions

BuildmLearn would be applying to participate in Google Summer of Code 2016 program. This page lists some ideas for adding features to BuildmLearn Toolkit as well as developing Educational mobile apps and frameworks. 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 consist of the following. Probable mentors are mentioned for each of the ideas in the sections which are elaborated below.

  1. Adding new templates to BuildmLearn Toolkit Android app
  2. mConference Framework
  3. University Campus Portal (UCP)
  4. Indic Language Input Tool (ILIT) for Android
  5. 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. Adding new templates to BuildmLearn Toolkit Android app

Probable Mentor: Pankaj Nathani

Difficulty Level: Intermediate

###Summary: The android version of BuildmLearn Toolkit currently supports four mobile application templates (viz. Basic mLearning, Quiz, Flashcards and Learn Spellings). This task involves developing new templates (see details) and integrating them with the current application.

###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.

###Details: The current version of BuildmLearn Toolkit application allows the users to create four types of applications 1) Basic mLearning 2) Quiz 3) Flash cards collection and 4) Learn Spellings application. For the next version of the application, we would like to have following templates incorporated. In this task, the student would be involved in developing android application for the following four templates, and integrating them with the BuildmLearn Toolkit application.

  • 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.

This effort would mainly contain the following todos:

  • Developing the template applications - The UI of the template applications should be in sync with the preview of the app shown in the simulator of BuildmLearn Toolkit. We strongly recommend using the material design guidelines for application design.

  • Integrating the mobile apps with the toolkit - Next step of this task would be to integrate the new templates with the BuildmLearn Toolkit application. The developer would have to work on the UI for accepting user input (forms) as well as the simulator for these templates. After this integration, the toolkit should successfully generate apps created with the above four templates.

###Expected result: We expect that the student is able to complete the development of the new template applications by the midterm evaluation period. Integrating the new template apps with BuildmLearn Toolkit app should be completed by final evaluation period. Additionally, we expect that the design and code level documentation should be in good shape for final evaluation.

The final goal of this project is to release a new version of BuildmLearn Toolkit with the above four templates by the end of GSoC.

###Where do I start? Being well familiar with the BuildmLearn toolkit application is important if you wish to take up this task. We suggest that students install the application (available in Google Play store) and explore the functionality of the exiting templates. Moreover, you may also try to fork the existing source code of the application, compile it and try fixing any open issues on GitHub for the application.

##2. mConference Framework

Probable Mentor: Rahul Ahuja

Difficulty Level: Easy

###Summary: This project aims at developing an Android Framework which allows to create apps for conferences and events. Using this Framework, the organizers can create apps for any event, conference or meet-up by just creating a configuration file and adding their data.

###Skills: If you wish to apply for this project, you must have a basic knowledge of Android application development. You should also know how popular data formats viz. XML and JSON are structured. Bonus points for having worked on data driven apps using XML or JSON data format.

###Details: Mobile Conference (mConference) Framework would allow organizers of a conference (event or meet-up) to create an application for their conference. Working on this project would involve developing a data driven mobile application with functionality of a typical conference.

The intended features of the application include the following:

  • Details about the conference / What is the conference about?
  • Register for the conference
  • Venue and Time section
  • Schedule of Talks

(If you have suggestions for additional features or functionality, we can definitely discuss them)

Since this would be a Framework rather than a mobile app, the next step would be to provide an interface for generating a configuration file (XML or JSON) where the organizer can customize content (Text, Images, Schedule of Talks, Registration Google Form Link, etc). All the data and images within the app should reflect the data configured in the configuration file.

This effort would mainly contain the following to dos:

  • Developing the Business Logic - The data to be rendered on the application has to be read from the configuration XML file. Modules need to be developed to read this data from the file 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 User Interface - The UI of the application should be designed and developed keeping in mind different screen sizes (phone and tablet resolutions). We would strongly recommend following the Android Material Design Guidelines by Google while developing the UI. The interface would involve the above listed features of the application.

###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 publish this Framework and make it available to conference organizers by the end of GSoC. It would be great allow a couple of interesting conferences to use this framework and get feedback over the course of GSoC as well.

###Where do I start? Familiarize yourself with the basics of Android application development. If you already know the basics of Android application development, you may start by preparing wireframes for the application. We suggest that you familiarize yourself with the Android Material Design Guidelines by Google as you work on the wireframes. Students may research on various aspects of the application and come up with a plan of action to develop them. Including technical details of APIs, 3rd party libraries and wireframes in your proposals is strongly recommended.

##3. University Campus Portal (UCP)

Probable Mentor: Avnee Nathani

Difficulty Level: Intermediate

###Summary: This project is about developing a Free & Open source Web application for Universities. Any university would be able to deploy this web application on their server. This platform when hosted by a university would be a one stop place for students to discuss topics, get to know news and events, recruitment drives, upcoming exam schedule, etc.

###Skills: We have chosen to develop this project in Python, using Django web framework. Basic knowledge of Python scripting language is necessary if you wish to work on this project. Bonus points for having explored and developed basic web application using Django Framework. The front-end of this web application would be written using HTML, CSS and Javascript, most likely using Bootstrap Framework. Thus basic knowledge of front-end development with the above languages is necessary.

###Details: With an initial research amongst universities, we have sensed a need of a free and open source web platform which can be hosted by the universities. The purpose of this web platform would be to provide a common forum for students and teachers of the university.

Each student or teacher in a university would be entitled to one registered account on the portal. The features available on the portal include:

  • Discussions
  • News and Events Dashboard
  • Recruitment Drives
  • Upcoming Exams Schedule
  • Results

We would like to build this web application using Python's Django Framework and Bootstrap framework for the front-end.

The tasks for implementing this project are:

  • Working on the Design, Data Schema and APIs - This phase would include designing the schema for the SQL database, finalizing models to be used and finally implementing APIs for the above mentioned functionalities. While defining the data schema, user roles need to be taken into account - for example, student, teacher, moderator and administrator roles.

  • Developing on the frontend - This phase would include writing HTML pages for different features of the application. We would suggest using Bootstrap framwork for designing a responsive frontend. The pages should render well on different browsers (primarily Chrome, Safari and Firefox) as well as mobile browsers. It would be great to have a couple of configurable designs (themes) available for the users.

###Expected result: We would expect the student to finish working on the Design, Data Schema and APIs (along with the documentation) by midterm evaluation period. By final evaluations, we expect the student to finish implementing the front-end with atleast two themes.

The final goal for this project is to make this web application available to some universities and get some feedback by the end of GSoC.

###Where do I start?

  • Start by studying basic Python and Django tutorials
  • Familiarize yourself with Twitter's Bootstrap framework: http://startbootstrap.com
  • Next, try to create a basic web application using Django and Bootstrap framework. If you've already done this, spend time on working on a responsive design for the web application and get some feedback from the mentors on your draft proposal.

##4. Indic Language Input Tool (ILIT) for Android

Probable Mentor: Neha Dhanwani

Difficulty Level: Intermediate to Advanced

###Summary: Today, the available keypads for Indic language input are limited. Besides, using existing solutions for typing in one's native language is tedious. We are looking to develop an easy-to-use Android keypad which makes typing in Indic languages really easy.

###Skills: Understanding how languages are structured (vowels, consonants, consonant conjuncts) is important if you wish to apply for this project. Knowledge about fonts, typefaces and rendering engines is good to have. Deep understanding of mobile application development on Android. Preference would be given to students who have previously developed and published android applications in Google Play store. Bonus points for having worked on a virtual keyboard on Android.

###Details:

The primary goal of this task is to create a virtual keypad for Indian languages. Indic Language Input Tool (ILIT) would help users type in the selected Indian language easily. We are looking to develop an easy-to-use and innovative keypad layouts that represent the complex indian languages on small screen devices.

Android allows to develop custom keypad (virtual keyboards) layouts and install them. The user is allowed to switch between the available input options as per his need. This project would be about creating one such input keypad (probably with multiple layout designs) for Indic input. Since we are targeting multiple languages with this keypad, the layout design should be scalable for multiple indian languages. To start with we are targeting the following Indian languages:

  • Assamese (অসমীয়া)
  • Bengali (বাংলা)
  • Gujarati (ગુજરાતી)
  • Hindi (हिंदी)
  • Kannada (ಕನ್ನಡ)
  • Malayalam (മലയാളം)
  • Marathi (मराठी)
  • Odia (ଓଡ଼ିଆ)
  • Punjabi (ਪੰਜਾਬੀ)
  • Tamil (தமிழ்)
  • Telugu (తెలుగు)

We would prefer the language mapping i.e. the vowels, consonants and consonant conjuncts to be read from an XML or JSON file and then rendered onto the keypad.

###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 Indic Language Input Tool (ILIT) to Google Play Store by the end of GSoC.

###Where do I start? Familiarize yourself with the basics of Android application development. If you already know the basics of Android application development, you may start by preparing wireframes for the application. We suggest that you familiarize yourself with the Android Material Design Guidelines by Google as you work on the wireframes. Students may research on various aspects of the application and come up with a plan of action to develop them. Including technical details of APIs, 3rd party libraries and wireframes in your proposals is strongly recommended.

##5. Educational Mobile Applications

Probable Mentor: Aditi Sharma, Pankaj Nathani, Neha Dhanwani

Difficulty Level: Mentioned against each mobile application

###Summary: We are looking to develop several Educational Android applications and make them available on Google Play Store. 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) 'Planetarium' application

Difficulty Level: Advanced

With this mobile application, we aim to help students to get the best mobile screen experience of outer space.

The idea is to develop an application that provides a planetarium experience on the phone or tablet device. The application should give an audio-visual experience to the user as he navigates through the space. Important stars, moons and planets are highlighted and brief historic relevance is narrated. Space missions are highlighted as the user navigates through different planets. Details about important comets, meteorites and life-cyle of a star are explained. The application should give an ‘immersive feel’ to the user who is exploring various aspects of space.

We will be looking at developing creative user interfaces that would engage the user to explore various aspects of the application. Indigenously developed 3D animations and visualizations are great to have in this application.

(ii) 'Physics Simulations' application (Android)

Difficulty Level: Intermediate to Advanced

This mobile application is targeted at school and university students studying Physics.

The application would present various physics simulations to choose from. These simulations will range from basic simulations like spring and pendulum simulation to complex simulations like collisions. Once the user selects a simulation, they will see the simulation animating in real time. The user can also interact with the simulations by providing touch input, dragging objects or changing parameters like gravity, length (of pendulum, string), etc.

As studies indicate, students are more interested to learn the concepts of Physics by actually seeing them in a tangible form in a lab, than studying the concepts in a classroom.

(iii) Wikipedia Mobile Editor (Android)

Difficulty Level: Easy

The primary aim of this application is to allow users create or edit Wikipedia pages from their mobile devices. The application would of course allow the users to read, search existing Wikipedia pages.

Wikipedia is a free-access, free-content Internet encyclopedia. Anyone with a Wikipedia account can contribute new content to this free encyclopedia by editing existing pages or creating pages about new topics.

Wikipedia is based on the Media Wiki engine (https://www.mediawiki.org/). To edit and create pages, the users have to follow a specific syntax (Media Wiki syntax) and formatting. Not all potential wikipedia contributors are familiar with the media wiki syntax. This application would therefore create a similar mechanism by which potential contributors can contribute content to Wikipedia.

The application should have a simple interface for users to provide new content for a page. Once the user has input the content, the application would process the content to convert Media Wiki compliant. This content will then be submitted to Wikipedia as new or edited content.

To work on this project, you should be well familiar with the process of creating and editing Wikipedia pages. You should familiarize yourself with the basic Media Wiki formatting and syntax (https://www.mediawiki.org/wiki/Help:Formatting). It would be great if you have worked with Wikipedia APIs or are familiar with how they work (https://en.wikipedia.org/w/api.php).

###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 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 for Android platform. Including technical details of APIs, 3rd party libraries and wireframes in your proposals is strongly recommended.