Challenge Overview
Challenge Objectives
-
Server targeting Raspberry Pi 3 with BLE
-
Client targeting Android 8+
-
This challenge will extend an existing bluetooth configuration service to allow for setting a server’s (rPi) wifi settings via a mobile app (Android). This challenge will add wpa_supplicant support to the existing configuration service and will build a simple mobile app for testing.
Project Background
-
This is the first of a few challenges to help build out the server configuration app. The configuration app will eventually be put into embedded devices in user’s home and will allow for setup via a mobile app.
-
This challenge will prove out that setting wifi settings over bluetooth will work successfully.
-
Future challenges will add more features to the server and client, including building out formal client libraries for use in numerous Android and iOS apps.
Technology Stack
-
C / C++ on the server side, targeting Raspberry Pi 3
-
Android / Java on the client side, targeting Android 8+, with BLE required
Code access
The code can be found here: https://github.com/jmgasper/bleconfd
Individual requirements
These tickets comprise the requirements for this challenge:
Note: You should provide a simple Android app that allows for:
-
Connecting to the server running on an rPi 3
-
Setting wifi settings on the server
-
Showing a success message when the rPi connects to the wifi network
Deployment guide and validation documen
Make sure to require two separate documents for validation.
A README.md that covers:
-
How to apply the patch to the existing codebase
-
How to deploy the codebase to a raspberry pi 3. Make sure to cover the OS and dependency requirements for the rPi.
-
How to build, deploy, connect, and test the Android app.
A Validation.md that covers:
-
How to use the Android app to send wifi settings to the rPi. Make sure that we can test this without having the rPi on a wifi network first.
-
Make sure to also include how to clear out the wifi settings. This will allow for multiple tests.
Validation video / screencast
-
No video is required
What To Submit
-
Patch file against the HEAD of the master branch in the git repo mentioned above
-
Source code for a simple Android app that allows for setting wifi settings on the client
-
README.md that covers the items above
-
Validation.md that covers the items above