As young women, we all know someone who has or we ourselves have participated in the Girl Scouts. We’ve loved their delicious cookies during Spring season and look forward to the great charitable work they do for our communities. Besides the delicious cookies, we have all seen or have been to some Girl Scouts Cookie booth, where the girls can experience teamwork, planning and social networking. However, finding a booth can be challenging as the girls do not post their boothing schedule and location publically. Instead, the girls’ parents usually send out emails to invite their colleagues and friends to buy their girls’ cookies. With this traditional and non-efficient way of advertisement, the girls’ networks are all dependent on their parents' workplace. From our personal experiences, we have been to booths where we have seen one girl selling cookies vs a whole group of girls selling cookies together. This is an issue that needs a solution. Girls can’t only depend on their personal networks to sell their cookies. This not only brings an unfair environment for the participating girls but also does not train the girls enough to learn from this social event. By using some great features in the Snap Kit, Lyft and Leap Motion, we aim to build an advertising app for Girl Scout Cookie participants with an equal opportunity environment so girls in different troops have an equal chance to sell to the public. We want to build a tool that will allow young girls to collaborate together and help each other in building themselves up when selling their cookies. The whole process of selling cookies allows young girls to learn valuable skills in communication, marketing, and supporting charities that will benefit from their sales.

What it does

This App has two main types of users: the girls and cookie buyers. The girls can input their boothing location, troop information, charities their troop supports, and how many boxes of cookies they have available at their individual booth into our system. This information will be published to all potential cookie buyers on a Map. The girl scout troops will be represented as green dots on the map, and the potential buyers can click on the dots to learn more about the specific troops and the charity groups they may plan to donate to. The girls can collaborate with girls in other troops through a chatting mechanism, allowing them to form a group to help each other form a stronger community as well. This ends up creating an equal opportunity for everyone selling cookies in one community. If the buyers see a booth near them with a specific type of cookie they want to buy (ex. Samoas), then they can find out the cost, time, and distance of a Lyft ride. After talking with the representatives at the Lyft booth, we want to incentivize people to go to these booths by providing a Lyft code which will discount their ride. There is also a Leap Motion sensor that allows the girls to use different hand gestures to keep track of the sale amount of different types of cookies. For example, if they point their hand over the sensor, it will decrease the Samoa count by 1 in the system.

How we built it

We built the software part on both React Native and iOS XCode, using Javascript and Swift. For Leap Motion, we worked with Python. We made our database in Firebase. We utilized multiple APIs: Lyft: find cost, distance, and time of the trip to Girl Scout Booth Google Geocoding: We ask for a girl scout booth in terms of its address. This API takes an address and converts it into Latitude and Longitude coordinates. We can then use these coordinates to make a Map View Marker on our google map representation of all the booths near you. Navigator.geolocation: React Native allows you to find the user’s current location. We stored this current location in our state and referenced it when making a request to the Lyft API. Charity: Let’s say one girl scout troop supports charities related to Girls in STEM. This API retrieves all charities related to Girls in STEM from a large database. We list all these charities in our app, include URLs to the charity and to a donation site allowing the customer to support the charity directly as well. SnapKit: in order to have a better advertisement for their troop and cookies, SnapKit allows them to share their stories on SnapChat with families and friends. We also create a special sticker for Girl Scout booths so users can show they’re supporting them in their stories. Hardware: The Leap Motion sensor is built on the Leap Motion V2 Skeletal Tracking SDK and python.

Challenges I ran into

For SnapKit, it is was difficult to start because of the configuration. Also, there are not many tutorials online, so it is also challenging to learn how to use it. Since SnapKit is only supported by traditional iOS mobile development platforms using Swift, it is also challenging to combine it with the react native framework. We wanted to build a cohesive app where we combined our react native iOS application with our custom camera used in SnapKit. We wish we had more time to keep building on our UX and to make it more user-friendly. We were able to implement a lot of functionality, but an effective UX is as important as the functionality.

For the Leap Motion sensor, there are not many up-to-date resources online as the developer SDK keeps getting updated and some features are removed from the SDK. Several approaches were taken, but having a steady connection between the Leap Motion Controller and the laptop was difficult as there were lots of compatibility problems. In the end, an older version of the SDK is installed and connected with the python. The next challenge is to have the Software App work along with the Leap Motion sensor. As these two are running in very different environments, the combining process is a big challenge.

For our database, we used Firebase. We had trouble in planning our database and then passing our data to the individual troop pages when you click on a specific troop’s marker location on the map. Another challenge we had was integrating the Lyft API in our app. We learned we needed to initially make a POST request to the API passing the client_username:client_password as our authorization. Then, we had to make a GET request to retrieve the ‘best’ ride in terms of distance, cost, and time from our current location to the booth location using another access token.

Accomplishments that we're proud of

We are proud that we actually implemented most features that we had planned, and we are also proud that we had a chance to look into the Leap Motion Controller and have it as a part of our project. We really wanted to be open to making this more than app development and implement different types of features that would get girl scouts themselves really excited to use this. We think the Leap Motion sensor will make it easier for girls to quickly update the app in real-time instead of having to login to the app each time they sell a box. We really think this app will decrease # of emails to colleagues and provide a better means for young girls to grow in their communication + marketing skills.

What we learned

We definitely got more experience in app development and understood how to retrieve data from different types of APIs and Kits. Through this project, we got a glimpse on how to utilize the built-in functionality of motion recognition and analyzation to create meaningful and unique gestures for different purposes. Our entire team definitely grew from this experience as we learned how to work together in a team while having the opportunity to try out new things individually. It was really awesome to think about workarounds together as we faced issues in downloading SDKs and thinking about how to create a personal model from user input when developing our app.

What's next for S'moresCookies

The next step is to integrate the react native app to the iOS app. Also, we need to combine the Software App with the Leap Motion sensor so that the App can get the cookie status from the Leap Motion sensor. We want to build a more effective UI for our users. We discussed with the representative at the Lyft booth and would love to potentially implement a delivery service allowing cookies to be delivered to people’s houses. We think we could do this if DoorDash or GrubHub agreed to accept Girl Scout cookies as a potential restaurant option. We also really want to keep improving our community forum. We currently have a chat app semi-working, but we really want to better channels of communication between different girl scout troops.

Share this project: