# GSoC 2020: Some ideas about the Skunkworks-Crow Project

**URL:** <https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338>\
**Category:** Community\
**Created:** [January 18, 2020, 3:22am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338 "2020-01-18T03:22:43Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mickys0918](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/mickys0918/32/8305_2.png) [@Mickys0918](https://forum.getodk.org/u/Mickys0918)\
**Post date:** [January 18, 2020, 3:22am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/1 "2020-01-18T03:22:43Z")

</div>

Hi All,

After discussing about the GSoC'20 for [Skunkworks-Crow](https://github.com/opendatakit/skunkworks-crow) with @dexter21 and @LN, we now have some initial ideas and goals.

1. Adapt the changes according to ODK Collect and fix the issues to make Skunkworks-Crow work. See [Collect will need to stop using /sdcard/odk for files](https://forum.getodk.org/t/collect-will-need-to-stop-using-sdcard-odk-for-files/24159). And make the hotspot feature works in Android 9 (android 10) devices.

2. Unit tests for the whole project, including the core features like hotspot and bluetooth transmitting. Since we don’t have enough people who reviews code and tests the app on daily basis, we should have some unit tests on core features to verify the behavior.

3. Add some features: Scanning QR Code to connect for bluetooth (be consistent with hotspot); Build a user feedback system (inside the app, user can report crash and upload suggestions to developers).

4. Refactoring the code base. Last year, I added a new data transmitting method using bluetooth. But bluetooth feature has many similar code as hotspot feature even duplicate code. We should refactor the code base using some design patterns to make it easier to read and maintain.

5. UI/UX improvements: Try to make this app easier to get start with a better design and workflow.

We supposed to release Skunkworks-Crow this summer and collect user feedback after that, so the topic of this year should be something like: Complete unit testing; Improve program robustness; Release and collect feedback.

Please give some suggestions and indicate what are missing.

**[Note]** Dear forks, thanks for your contributions, if you are new to this project, please read these before posting there for a better communication, thanks.

- [Internship project: Device to Device Transfer Android App](https://forum.getodk.org/t/internship-project-device-to-device-transfer-android-app/11753)
- [https://github.com/opendatakit/skunkworks-crow](https://github.com/opendatakit/skunkworks-crow)

---

<div class="post-metadata">

**Author:** ![devanshi7799](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/devanshi7799/32/9205_2.png) [@devanshi7799](https://forum.getodk.org/u/devanshi7799)\
**Post date:** [January 22, 2020, 11:57am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/2 "2020-01-22T11:57:45Z")

</div>

I think 1st, 2nd and 5th points should be the main things we should focus upon.  
Can we also include building a website as @Mickys0918 mentioned in the issue section?  
Please share your views regarding this 🙂

---

<div class="post-metadata">

**Author:** ![Mickys0918](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/mickys0918/32/8305_2.png) [@Mickys0918](https://forum.getodk.org/u/Mickys0918)\
**Post date:** [January 22, 2020, 12:20pm UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/3 "2020-01-22T12:20:01Z")

</div>

> Can we also include building a website as @Mickys0918 mentioned in the issue section?

Thanks for your reply @devanshi7799. I think this is not in a hight priority, besides, we can use [Github Pages](https://pages.github.com/) to build one in several minutes. It seems @chromicle has some other ideas, it would be great that you can share here.

---

<div class="post-metadata">

**Author:** ![chromicle](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/chromicle/32/6033_2.png) [@chromicle](https://forum.getodk.org/u/chromicle)\
**Post date:** [January 23, 2020, 7:32am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/4 "2020-01-23T07:32:56Z")

</div>

Yeah, I have one cool idea I explained everything in detail in this [Doc](https://docs.google.com/document/d/1QL_wZbshoasJDtiW6m7lMBjdss4xXtC-dToWEWg95sg/edit?usp=sharing)  
@dexter21 @Shobhit_Agarwal @Mickys0918 @LN please give your opinions on this 😄  
If you feel this is good please add it into there

---

<div class="post-metadata">

**Author:** ![dexter21](https://getodk.b-cdn.net/letter_avatar_proxy/v4/letter/d/e274bd/32.png) [@dexter21](https://forum.getodk.org/u/dexter21)\
**Post date:** [January 23, 2020, 6:10pm UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/5 "2020-01-23T18:10:28Z")

</div>

> [@chromicle](#):
>
> Yeah, I have one cool idea I explained everything in detail in this [Doc](https://docs.google.com/document/d/1QL_wZbshoasJDtiW6m7lMBjdss4xXtC-dToWEWg95sg/edit?usp=sharing)

Hi @chromicle I've commented out few things in doc, you've suggested to use firebase for form related activities, but skunkworks-crow is based on entirely different thing we wanted to solve a problem without actually connecting an Internet and introducing Firebase will basically involve Internet connection at some point in time for any form transfer (upload/download). This year we're more focused on building it more stable and reliable and less focused on building new features until and unless its really required.

---

<div class="post-metadata">

**Author:** ![rheo](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/rheo/32/10136_2.png) [@rheo](https://forum.getodk.org/u/rheo)\
**Post date:** [January 23, 2020, 10:13pm UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/6 "2020-01-23T22:13:46Z")

</div>

Hi @Mickys0918  
I think 3rd point will be a nice thing for the app,as the feedback system is really important.  
For the 2nd point what are the main core features should one include in unit tests?

---

<div class="post-metadata">

**Author:** ![Mickys0918](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/mickys0918/32/8305_2.png) [@Mickys0918](https://forum.getodk.org/u/Mickys0918)\
**Post date:** [January 24, 2020, 2:43am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/7 "2020-01-24T02:43:08Z")

</div>

> For the 2nd point what are the main core features should one include in unit tests?

You can go through the code then you will know, we don’t have any tests for the transmission methods for now.

---

<div class="post-metadata">

**Author:** ![rheo](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/rheo/32/10136_2.png) [@rheo](https://forum.getodk.org/u/rheo)\
**Post date:** [January 24, 2020, 8:23am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/8 "2020-01-24T08:23:39Z")

</div>

On which platform is organization planning to do unit testing?  
Travis,Junit,Jenkins....

---

<div class="post-metadata">

**Author:** ![Mickys0918](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/mickys0918/32/8305_2.png) [@Mickys0918](https://forum.getodk.org/u/Mickys0918)\
**Post date:** [January 24, 2020, 8:44am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/9 "2020-01-24T08:44:36Z")

</div>

I think you misunderstood the CI and unit tests. We use Travis to hold the tests. You can have a look at our codebase.

---

<div class="post-metadata">

**Author:** ![rheo](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/rheo/32/10136_2.png) [@rheo](https://forum.getodk.org/u/rheo)\
**Post date:** [January 26, 2020, 5:09pm UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/10 "2020-01-26T17:09:00Z")

</div>

I looked at the codebase and got some understanding,I would really like to work on the 2nd point (if possible) mentioned,can you help me getting started 🙂

---

<div class="post-metadata">

**Author:** ![Mickys0918](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/mickys0918/32/8305_2.png) [@Mickys0918](https://forum.getodk.org/u/Mickys0918)\
**Post date:** [January 27, 2020, 1:07am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/11 "2020-01-27T01:07:09Z")

</div>

Yes, the best way to get familiar with the code and show your ability is picking an issue and filing a PR to address that. You can get start with the issue list both ODK Collect or Skunkworks-crow @rheo.

---

<div class="post-metadata">

**Author:** ![rheo](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/rheo/32/10136_2.png) [@rheo](https://forum.getodk.org/u/rheo)\
**Post date:** [February 21, 2020, 8:15am UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/12 "2020-02-21T08:15:35Z")

</div>

Is ODK not participating in GSOC 2020,I checked the organizations list and it's name wasn't there

---

<div class="post-metadata">

**Author:** ![yanokwa](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/yanokwa/32/1695_2.png) [@yanokwa](https://forum.getodk.org/u/yanokwa)\
**Post date:** [February 21, 2020, 6:05pm UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/13 "2020-02-21T18:05:26Z")

</div>

ODK is participating under the DIAL OSC umbrella. See [https://hub.osc.dial.community/t/google-summer-of-code-2020-open-source-center/1025#open-data-kit](https://hub.osc.dial.community/t/google-summer-of-code-2020-open-source-center/1025#open-data-kit) for more.

---

<div class="post-metadata">

**Author:** ![lucifer](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/lucifer/32/10522_2.png) [@lucifer](https://forum.getodk.org/u/lucifer)\
**Post date:** [February 25, 2020, 1:47pm UTC](https://forum.getodk.org/t/gsoc-2020-some-ideas-about-the-skunkworks-crow-project/24338/14 "2020-02-25T13:47:13Z")

</div>

Hi! I am interested in working on this project as a part of GSoC 2020. Where should I begin ?
