Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
257 changes: 201 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,231 @@
# Google Summer of Code 2016 – BuildmLearn Toolkit

![Google Summer of Code 2016](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/gsco_banner.png "Google Summer of Code 2016")

My proposal for **Improve existing BuildmLearn Toolkit app and add new templates to it** was selected for **Google Summer of Code 2016**. I worked with the organisation [BuildmLearn](https://github.com/BuildmLearn/) under the awesome mentor-ship of *Pankaj Nathani* ([@croozeus](https://github.com/croozeus)) and *Neha Dhanwani* ([@NehaDhanwani](https://github.com/NehaDhanwani)).
My proposal for **Improve existing BuildmLearn Toolkit app and add new templates to it** was selected for **Google Summer of Code 2016**.
I worked with the organisation [BuildmLearn](https://github.com/BuildmLearn/) under the mentorship of *Pankaj Nathani* ([@croozeus](https://github.com/croozeus)) and *Neha Dhanwani* ([@NehaDhanwani](https://github.com/NehaDhanwani)).

---

## About BuildmLearn Toolkit

BuildmLearn Toolkit is an easy-to-use Android based system that allows users to create mobile learning applications without knowledge of Android development.
Teachers can provide educational content and automatically generate customized learning applications.

Instead of manually coding apps, the toolkit converts structured educational content into a functional Android application.

---

## System Architecture

The BuildmLearn Toolkit functions as a **template-driven application generator platform**, not a single mobile application.

**Workflow pipeline:**

```
Teacher Content → Template Engine → Android Project Generation → Gradle Build → APK
```

### Workflow Explanation

1. Teacher enters learning material (questions, spelling words, videos, dictation audio).
2. The template engine processes the structured content.
3. An Android project is automatically created.
4. Resources and layouts are injected into the project.
5. The project is compiled into a distributable APK file.

This allows non-programmers to produce deployable Android educational applications.

---

## Template Engine Design

The core of the toolkit is the template engine.

Templates define **behavioral learning interactions**, not just UI layouts.

Each template represents a learning model:

| Template | Interaction Model |
| ---------------- | -------------------------------------------- |
| Quiz | Question-answer state machine with scoring |
| Match | Pair-mapping validation logic |
| Dictation | Audio playback with text accuracy comparison |
| Flashcards | Sequential memory reinforcement |
| Video Collection | Structured multimedia learning module |
| Comprehension | Passage-based assessment logic |

The engine maps:

```
content fields → interaction logic → UI components
```

Therefore, the toolkit is effectively a **learning-interaction framework** rather than a static application.

---

## APK Generation Workflow

A major contribution of this project was enabling automatic Android application creation.

The toolkit programmatically generates a complete Android project:

1. Creates Android project directory
2. Assigns unique package name
3. Inserts resources:

* images → /res/drawable
* audio → /res/raw
* text → strings.xml
4. Updates Android Manifest
5. Runs Gradle build

```
content → resources → project files → compile → signed APK
```

This turns the toolkit into a **no-code mobile app compiler**, allowing teachers to create and distribute Android apps without Android Studio or programming knowledge.

---

## Continuous Integration and Code Quality

### Problem Before

* Manual builds
* Late detection of template errors
* Unstable releases

### Implemented Solutions

* **Travis CI** for automated builds
* **Codacy** for static code analysis and quality monitoring

### Effect

Every commit is automatically built and validated.
Template failures and code issues are detected early, improving long-term maintainability and project stability beyond the GSoC period.

---

## Impact of the Contribution

The contribution changed the toolkit from a prototype into a platform.

**Before:**

* Teachers required an Android developer to create an educational app.

**After:**

* Teachers can independently generate learning apps.

Key outcomes:

* Reduced technical barrier to educational app creation
* Faster deployment of learning applications
* Reusable templates enabling unlimited apps
* Improved scalability of the project
* Sustainable open-source maintenance through CI

---

## Task Goals Completed

* Addition of new Comprehension Template and its app
* Addition of new VideoCollection Template and its app
* Addition of new Dictation Template and its app
* Addition of new Match Template and its app
* Improving design of InfoTemplate simulator and app
* Improving design of Learn Spelling Template simulator and app
* Improving design of Flash Card Template simulator and app
* Improving design of Quiz Template simulator and app
* Creation of APK generation system for all templates
* Integration of Travis CI automated build system
* Integration of Codacy automated code quality monitoring
* Bug fixing and code improvement
* Documentation improvements

---

## Key Technical Contributions

* Extended template-based app generation platform
* Enabled automatic APK generation
* Introduced CI pipeline for build stability
* Improved maintainability of toolkit codebase

---

## Repositories Contributed To

* https://github.com/BuildmLearn/BuildmLearn-Toolkit-Android
* https://github.com/BuildmLearn/Toolkit-mobile-templates

---

## Commits

Toolkit Repository Contributions
https://github.com/BuildmLearn/BuildmLearn-Toolkit-Android/commits?author=opticod

First of all I would like to explain what BuildmLearn Toolkit app is:
![Contributions](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/commit_toolkit.png)

Its is an easy-to-use android app that helps the users make another mobile apps without any knowledge of android application development. It helps creating mobile application with various functionality and allows teachers to input their custom content. Targeted at teachers, this toolkit helps them make learning fun and engaging through mobile apps.
Templates Repository Contributions
https://github.com/BuildmLearn/Toolkit-mobile-templates/commits?author=opticod

###Task Goals Completed ::
![Template Contributions](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/commit_template_app.png)

- Addition of new Comprehension Template and its app.
- Addition of new VideoCollection Template and its app.
- Addition of new Dictation Template and its app.
- Addition of new Match Template and its app.
- Improving design of InfoTemplate ‘s simulator and its app.
- Improving design of Learn Spelling Template ‘s simulator and its app.
- Improving design of Flash Card Template ‘s simulator and its app.
- Improving design of Quiz Template ‘s simulator and its app.
- Adding the feature of creation of APK with unique android app for all the templates.
- Adding of automated build system – Travis CI.
- Adding of automated code reviews and monitoring code quality system over time – Codacy.
- Improvement of existing code.
- Fixing Bugs.
- Adding Documentations.
---

## Releases

###Repositories contributed to ::
Toolkit:
https://github.com/BuildmLearn/BuildmLearn-Toolkit-Android/releases

- [BuildmLearn/BuildmLearn-Toolkit-Android](https://github.com/BuildmLearn/BuildmLearn-Toolkit-Android)
- [BuildmLearn/Toolkit-mobile-templates](https://github.com/BuildmLearn/Toolkit-mobile-templates)
Templates:
https://github.com/BuildmLearn/Toolkit-mobile-templates/releases

###Link to list of commits ::
---

- [BuildmLearn/BuildmLearn-Toolkit-Android/commits?author=opticod](https://github.com/BuildmLearn/BuildmLearn-Toolkit-Android/commits?author=opticod)
![Contributions in BuildmLearn-Toolkit-Android repo](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/commit_toolkit.png "Contributions in BuildmLearn-Toolkit-Android repo")
- [BuildmLearn/Toolkit-mobile-templates/commits?author=opticod](https://github.com/BuildmLearn/Toolkit-mobile-templates/commits?author=opticod)
![Contributions in Toolkit-mobile-templates repo](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/commit_template_app.png "Contributions in Toolkit-mobile-templates repo")
## UI Designs and Generated Apps

###Releases::
(Existing screenshots retained as visual proof of generated applications)

- *v1.5.0* & *v2.0.0* [BuildmLearn/BuildmLearn-Toolkit-Android/releases](https://github.com/BuildmLearn/BuildmLearn-Toolkit-Android/releases)
- *v2.5* & *v3.0* [BuildmLearn/Toolkit-mobile-templates/releases](https://github.com/BuildmLearn/Toolkit-mobile-templates/releases)
### Comprehension Template

###UI-Designs::
![Comprehension Template](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/comprehension.png)

###Comprehension Template
![Comprehension Template](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/comprehension.png "Comprehension Template")
### Comprehension App

###Comprehension Apps
![Comprehension Apps](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/comprehension_app.png "Comprehension Apps")
![Comprehension App](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/comprehension_app.png)

###Video Collection Template::
![Video Collection Template](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/video.png "Video Collection Template")
### Video Collection

###Video Collection Apps::
![Video Collection Apps](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/video_app.png "Video Collection Apps")
![Video](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/video.png)

###Dictation Template
![Dictation Template](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/dictation.png "Dictation Template")
### Dictation

###Dictation Apps
![Dictation Apps](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/dictation_app.png "Dictation Apps")
![Dictation](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/dictation.png)

###Match the following template
![Match the following template](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/match.png "Match the following template")
### Match Template

###Match the following Apps
![Match the following Apps](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/match_app.png "Match the following Apps")
![Match](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/match.png)

###Basic mLearning Apps
![Basic mLearning Apps](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/info_app.png "Basic mLearning Apps")
### Flashcards

###FlashCards Apps
![FlashCards Apps](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/flash_app.png "FlashCards Apps")
![Flashcards](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/flash_app.png)

###Quiz Apps
![Quiz Apps](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/quiz_app.png "Quiz Apps")
### Quiz

###Spelling Apps
![Spelling Apps](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/spelling_app.png "Spelling Apps")
![Quiz](https://github.com/opticod/GSoC-16-Work-Report/blob/master/src/quiz_app.png)

###Conclusion
---

It was a great experience working for four months in my GSoC project under *BuildmLearn*. I sincerely thank my mentor *Pankaj Nathani* ([@croozeus](https://github.com/croozeus)) and co-mentor *Neha Dhanwani* ([@NehaDhanwani](https://github.com/NehaDhanwani)) for their support. Thanks [Google](https://summerofcode.withgoogle.com/) and [BuildmLearn](https://github.com/BuildmLearn/) for giving us this opportunity. :smile:
## Conclusion

This project demonstrates how a template-driven architecture can convert structured educational content into fully deployable Android applications.
The BuildmLearn Toolkit now functions as a scalable platform for generating customized learning apps and continues to support future contributions from the open-source community.

I thank my mentors and the Google Summer of Code program for the opportunity and guidance.