Proposed Projects and Theses

For greenDAO, we have several project ideas. Unlike the issues in the tracker, those ideas are bigger chunks of work that suitable for a thesis, for example.

Project: Client/Server Data Synchronisation

Synchronize data from a server database into SQLite databases on Android clients. Also, clients may change data which has to be synchronized back to the server. The synchronization should be efficient, for example only changed data (deltas) should be transmitted. The server interface to the database should be implemented in Java using JDBC or another generic interface that allows using a wide rage of databses like MySQL, Oracle, Postgres, etc.
Prerequisites: Advanced knowledge of Java and SQL-based databases.

Project: Client/Cloud Data Synchronisation

Synchronize data from Google AppEngine datastore into SQLite databases on Android clients. Also, clients may change data which has to synchronized back to the cloud. The synchronization should be efficient, for example only changed data (deltas) should be transmitted.
Prerequisites: Advanced knowledge of Java. Good knowledge of SQL, networking protocols. AppEngine is a plus.

Project: Advanced Code generators

greenDAO generates code for entities and DAOs. Using greenDAO’s existing meta model, it is possible to generate a lot of new useful code artifacts:

  • Implementation of the Parcelable interface to allow efficient object serialization
  • Apapter classes for ListViews and other UI elements
  • CRUD applications (compare to Rails)
  • Efficient conversion of entities from/to JSON and XML
  • ContentProviders to share data with other applications

Prerequisites: Solid knowledge of Java and Android. Having worked with a template engine like FreeMarker, Velocity or JSP is a plus.

Project: Dig deep into Database Performance

Performance is king. Look under the hood. Profile greenDAO, the Android SQLite Java API and maybe even SQLite itself to find out how the three layers relate in terms of performance. Perform tests how the file system influences performance. Find out why an update to Android 4.0 affects performance significantly. This project will involve working Android source code. Maybe we will find some bottlenecks here and contribute patches back to Android.
Prerequisites: Advanced knowledge of Java. Profiling and C experience is a plus.

Project: Database Security

Some applications require advanced security for data storage. For Android, SQLCipher seems a promising approach. Combine greenDAO with encrypted databases. This will require adjusting greenDAO code and templates for code generation.
Prerequisites: Solid knowledge of Java, and at least basic C knowledge. Having worked with a template engine like FreeMarker, Velocity or JSP is a plus.

Project: Dynamic Code Generation

For a specific future extension, greenDAO could use DEX code that is generated dynamically. This extension would require a lot of reflection else wise, and we want to avoid that!
Prerequisites: Advanced knowledge of Java including Reflection. Not afraid to generate DEX.