Skip to content

Google Summer of Code 2017 Ideas

Pankaj Nathani edited this page Mar 22, 2017 · 16 revisions

BuildmLearn would be applying to participate in Google Summer of Code 2017 program. This page lists some ideas for adding features to our flagship BuildmLearn Toolkit, existing applications as well as developing new 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 or sending in PRs should read the general instructions on this page: Guidance for Students.

The ideas are listed below. Each idea lists the details, difficulty level, skills required and expected outcomes. Probable mentors and their contact information are also mentioned for each of the ideas in the sections which are elaborated below.

  1. Adding new templates to BuildmLearn Toolkit Android app
  2. BuildmLearn Toolkit Support for iOS apps
  3. Android application for University Campus Portal
  4. Accessibility framework for Android apps
  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. Also posting in the mailing list allows other active contributors

##1. Adding new templates to BuildmLearn Toolkit Android app

Probable Mentor: Neha Dhanwani, Anupam Das

Difficulty Level: Intermediate

###Summary: The Android version of BuildmLearn Toolkit currently supports eight mobile application templates. This task involves developing new templates (see details) and integrating them with the current application. Additionally, this task also involves adding some small gamification aspects to all the existing templates. The current version of the application is host in Google Play store here: https://play.google.com/store/apps/details?id=org.buildmlearn.toolkit

###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 eight types of applications 1) Basic mLearning 2) Quiz 3) Flash cards collection and 4) Learn Spellings application 5)Video Collection 6) Comprehension 7) Dictation and 8) Match the Following. 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 templates, and integrating them with the BuildmLearn Toolkit application. Along with the new templates, there would also be some minor UI fixes to the existing template and hygiene fixes for the overall application.

  • All-in-one Quiz - This template allows the user to create a All-in-one (image, video, audio and text) quiz template. For example, the quiz may include showing an image / video or audio and asking a question about the media. We currently have a quiz template that allows multiple choice questions - there should be reusable components that the student can reuse from this template.

  • Fill in the blanks - Specially targeted at primary school students, this template allows the user to create an application where students can chapter-wise go through a series of questions where they can fill in the answers. For example: The capital of India is _______ The free-text answer should be checked for spelling and accuracy.

  • True or False - Alike the above template, this template is also targetted at primary school students. Every question would pose a statement and need a true or false answer. It would be great to have a modern UI for this template, so the students can may be use swipe gestures to indicate if the statement is true and false.

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 two new template applications by the midterm evaluation period. Ie expect the student to complete the development of the third template and integrating all the three templates with the existing BuildmLearn Toolkit app 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 new templates by the end of GSoC.

###Where do I start? Being well familiar with the current 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. BuildmLearn Toolkit Support for iOS apps

Probable Mentor: Pankaj Nathani

Difficulty Level: Easy

###Summary: Currently, the BuildmLearn Toolkit is supported on Android platform. This task is about creating the first version of the app on iOS platform.

###Skills: Since this is the first version of the toolkit on iOS, we don't expect this task to involve complex functionality to begin with. If you wish to apply for this project, you must have a basic knowledge of iOS application development. We prefer that the app be developed using Obj-C, so you should have basic knowledge of this language or willingness to learn.

###Details: BuildmLearn Toolkit app allows teachers (and parents) to create mobile apps of different flavours for their students (or kids). The toolkit app offers various templates using which the user can create educational apps for students. We already have this application in Google Play store for Android devices, so we suggest that you try this app to get an idea of what needs to be developed.

This effort would mainly contain the following to dos:

  • Developing the User Interface - The overall user experience of the app would be very similar Android version of the app. The UI would of course differ in minor aspects, where platform changes are required - for example, iOS devices do not have the back button - so every screen of the toolkit needs to have a back button. Other similar changes need to be incorporated in the iOS app.

  • Developing the Business Logic of the - This is the phase where the functionality of the app and the templates would have to be developed. Since this is the first version of the application, we would just like to limit the scope of work for GSoC to four templates. This phase involves writing the XML parsing logic for the templates - we suggest that you have a look at the XML format of the templates on Android version.

###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. In terms of templates, the student should finish atleast one template before midterm. We will this version of the application available to limited users and developer community to get some feedback on the iOS version.

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, functionality and templates. 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 this app to Apple app store.

###Where do I start? Familiarise yourself with the basics of iOS application development. If you already know the basics of iOS application development, you may start by preparing wireframes for the app on iOS. We would like to follow Apple Human Interface Guidelines, so you may want to familiarise yourself with these and try to build some sample screens. 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. Android application for University Campus Portal

Probable Mentor: Pankaj Nathani

Difficulty Level: Easy to Intermediate

###Summary: University Campus Portal (UCP) is a Free & Open source Web application for Universities. Universities are able to deploy this web application on their university server and make it available to use for their students and professors. This task is about developing an open source mobile application on Android platform which makes UCP more accesible to it's users.

###Skills: The mobile application is to be developed using native Android technologies. 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. UCP web application is developed in Python, using Django web framework. Bonus points for if you are familiar with Python.

###Details: Last year, we developed University Campus Portal (UCP) - which is 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. The current version of the web application has features like Discussions, News and Events Dashboard and Exam schedule .

The web application is developed in Python, using the Django web framework. It exposes APIs for the various functionalities listed above. This task is to create a mobile application using these APIs.

The tasks for implementing this project are:

  • Working on the Design and User Interface - This phase would include designing the wireframes of the application and implementing the user interface of the app. The app is being developed for university students and professors - so the design must factor in the target audience.

  • Integrating APIs and business logic - This phase includes writing the business logic to interface with the UCP APIs. The APIs that need to be integrated are registration, login, forgot password, discussions (post, comment), get news and events.

  • Support for Push notifications - The app needs to support push notifications for multiple purposes, e.g. comments on discussions, news and events.

###Expected result: We would expect the student to finish working on the Design and user interface by the midterm evaluation period. By final evaluations, we expect the student to finish implementing the business logic of the app.

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

###Where do I start?

  • If you are already familiar with Android development, start by downloading UCP and run it on a localhost machine.We have a swagger documentation for the APIs that UCP web application exposes. Familiarise yourself with these APIs.
  • Spend time on working out the wireframes of the application. You may refer to Google's Material Design guidelines for reference and designs on dribble for inspiration. Once you have the wireframes in a good shape, some feedback from the mentors on your designs and draft proposal.

##4. Accessibility framework for Android apps for Education purposes

Probable Mentor: Pankaj Nathani

Difficulty Level: Intermediate to Advanced

###Summary: Accessibility is an important part of any app. By integrating accessible components and services, you can improve your app's usability for all users, including those with disabilities. This task is to develop an accessibility framework which can be used for Educational purposes for Android apps.

###Details:

Android allows developers to design apps to support accessibility needs. Moreover, Android also has libraries that allow floating windows on any screen (example, Truecaller application, Facebook chat heads). The primary goal of this task is to create a re-usable framework for educational purposes.

Features of this framework would be:

  • Read out the characters pressed on a keyboard. Detect gestures on a keypad and read out nearby keys.
  • Showing a top window while the user is typing through the keypad. Use the top window to show contextual information like definitions from wikipedia, dictionary, etc.
  • Read out the options for the tapped widget. For example if the user clicks on a message - read out options like "Google this", "Wikipedia this", "Ask question about this?"
  • Allow easy navigations to frequently used functions of a phone.

These features need to be developed as a framework (SDK) that other developers can use in their apps.

###Expected result: We expect that the student is able to deliver the task in two stages: The first version of the framework 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 make this framework available for educational app developers.

###Where do I start? Familiarise 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: 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) 'Interactive periodic table (Android)

Difficulty Level: Intermediate

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

The idea is to build an amazingly interactive periodic table with dynamic layouts showing names, electrons, oxidation, trend visualization, orbitals, isotopes, and compound search. Each element on the table can be interacted with and will have a detail page. Details about the element and additional dynamic information fetched from Science Daily (or other similar source) would be available on this screen. It would be great to explore exisiting animation frameworks, specially the recently released open source animation library Lottie (https://github.com/airbnb/lottie-android) by Airbnb.

(ii) 'Planetarium' application (Android)

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.

(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 familiarise 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.